A fault diagnosis method for a numerical control machine tool comprising: sending, by a fault diagnosis apparatus, a fault symptom list to a user terminal, wherein the fault symptom list contains at least one fault symptom; receiving, by a fault diagnosis apparatus, a fault symptom to be diagnosed from a user of the user terminal; determining, by a fault diagnosis apparatus, whether the fault symptom is selected from the fault symptom list by the user; if the fault symptom is selected by the user from the fault symptom list, diagnosing the fault for the fault symptom to be diagnosed based on a fault diagnosis information database, wherein the diagnosis information database contains at least one fault symptom and an association between each fault symptom and at least one possible fault causing the fault symptom, or if the fault symptom to be diagnosed is a semantic description of the fault symptom to be diagnosed entered by the user of the user terminal, sending, by the fault diagnosis apparatus, the fault symptom to be diagnosed to a fault diagnosis expert and receiving, by the fault diagnosis apparatus, a diagnosis result of the fault diagnosis expert on the fault symptom to be diagnosed; returning, by a fault diagnosis apparatus, the fault diagnosis result to the user terminal; receiving, by a fault diagnosis apparatus, feedback on the fault diagnosis result from the user of the user terminal; adjusting, by a fault diagnosis apparatus, a diagnosis policy for the fault symptom to be diagnosed according to the fault diagnosis result if the feedback of the user on the fault diagnosis result indicates that the fault has been cleared. sending, by a fault diagnosis apparatus, a fault symptom list to a user terminal, wherein the fault symptom list contains at least one fault symptom; receiving, by a fault diagnosis apparatus, a fault symptom to be diagnosed from a user of the user terminal; determining, by a fault diagnosis apparatus, whether the fault symptom is selected from the fault symptom list by the user; if the fault symptom is selected by the user from the fault symptom list, diagnosing the fault for the fault symptom to be diagnosed based on a fault diagnosis information database, wherein the diagnosis information database contains at least one fault symptom and an association between each fault symptom and at least one possible fault causing the fault symptom, or if the fault symptom to be diagnosed is a semantic description of the fault symptom to be diagnosed entered by the user of the user terminal, sending, by the fault diagnosis apparatus, the fault symptom to be diagnosed to a fault diagnosis expert and receiving, by the fault diagnosis apparatus, a diagnosis result of the fault diagnosis expert on the fault symptom to be diagnosed; returning, by a fault diagnosis apparatus, the fault diagnosis result to the user terminal; receiving, by a fault diagnosis apparatus, feedback on the fault diagnosis result from the user of the user terminal; adjusting, by a fault diagnosis apparatus, a diagnosis policy for the fault symptom to be diagnosed according to the fault diagnosis result if the feedback of the user on the fault diagnosis result indicates that the fault has been cleared.