Ao criar um gráfico de conhecimento médico e perguntas e respostas automáticas, consulte o Item 1 . As seguintes otimizações foram feitas na construção de um gráfico de conhecimento médico e um sistema de perguntas e respostas:
Depois de construir o gráfico do conhecimento e o sistema de perguntas e respostas, a interação front-end e a tela KG são adicionados, usando o mapa guiado por força dos ECHARTS. Projeto de referência de implementação 4 .
neo4j-community-4.1.4 % bin/neo4j start
medical_knowledge_graph_app-master % python med_kg/manage.py runserver
Diagrama de interface da função IMG
KG/prepare_data Arquivo Crawler
kg/data/médico_rebuild.json Os dados finais processados
kg/build_medicalgraph.py cria um banco de dados de gráficos neo4j
Modelo de link da entidade Med_kg/el_model
Med_kg/el_model/incorporação de palavras que incorporam a representação de doenças de doença/droga/sintoma
med_kg/el_model/entity_linking.py entidade script
Med_KG/Med_KG Django Framework Visualizações e arquivos de configuração
MED_KG/MODELOS MODELOS DE DJANGO Framework
Med_kg/arquivo estático de bootstrap
MED_KG/NER_MODEL Modelo de reconhecimento de entidade nomeado
Med_KG/NER_MODEL/MODELOS CAMPO DE MODELO DE MODELO DE RECONHECIMENTO DE ENTIDADE
Med_KG/NER_MODEL/DATA DADA PARA MODELO DE TREINAMENTO
Med_kg/ner_model/Perdas Função para Modelo de Treinamento
Med_KG/NER_MODEL/outpus/1101MedSelfner-FineTune Model Finemente Tuned (treinado)
med_kg/ner_model/prev_trared_model modelo pré -terenciado para pytorch
Ferramenta Med_kg/Util, Start Cold
Script Med_kg/Modelo para interagir com o banco de dados de gráficos NEO4J
Med_KG/Medmodel Pergunta e resposta automáticas
med_kg/medmodel/question_classifier.py script de reconhecimento de intenção
Med_kg/medmodel/question_parser.py script que converte as palavras e intenções de mencionação identificadas em declarações de consulta
Med_KG/MedModel/Answer_Search.py Query Batch Database para retornar a resposta
Med_KG/Medmodel/Dict Domin Dictionary
O número '*' indica o item que muda com base no projeto original
| Tipo de entidade | Significado chinês | Número de entidades | Dê um exemplo |
|---|---|---|---|
| Verificar | Itens de exame de diagnóstico | 3.353 | Broncografia; Artroscopia |
| Departamento | Assuntos médicos | 54 | Departamento de Cirurgia Plástica; Departamento de queima |
| Doença | doença | 8.807 | Vasculite tromboocítica; Aneurisma aórtico descendente do peito |
| Medicamento | medicamento | 3.828 | Creme de hemorróidas de Jingwanhong; Elass de Brintzoamine |
| Comida | comida | 4.870 | Sopa de bola de carne de tomate e vegetais; brotos de bambu cozidos com cordeiro |
| Produtor | Principais categorias de medicamentos | 17.201 | Penicilina farmacêutica de Tongyao comprimidos de potássio; Comprimidos de acetato de dexametasona qingyang |
| Sintoma* | Sintomas da doença | 4.377 | Hipertrofia do tecido mamário; Sangramento profundo no parênquima cerebral |
| Total | total | 44.111 | Cerca de 44.000 entidades |
O número '*' indica o item que muda com base no projeto original
| Tipo de relacionamento de entidade | Significado chinês | Número de relacionamentos | Dê um exemplo |
|---|---|---|---|
| pertence_to | pertencer | 8.844 | <Ginecologia, pertencente a, obstetrícia e ginecologia> |
| Common_drug | Medicamentos comuns para doenças | 14.649 | <Yangqiang, comumente usado, comprimidos dispersos de metanossulfonato de fentolamina>> |
| do_eat | Coma comida quando estiver doente | 22.238 | <Fratura da flexibilidade, adequada para comer, peixe preto> |
| drogas_of | Drogas à venda | 17.315 | <Penicilina V comprimidos de potássio, à venda, Tongyao Pharmaceutical Penicilina V comprimidos de potássio> |
| Need_check | Testes de doença | 39.422 | <enfisema unilateral, exame necessário, bronchografia> |
| não_eat | Evite comer alimentos em doenças | 22.247 | <Doença dos lábios, evite comer, amêndoas> |
| Recomendado_drug | Medicamentos recomendados para doenças | 59.467 | <Hemorróidas mistas, medicamentos recomendados, Jingwanhong Hemorrhoid Cream> |
| recomendado_eat | Receitas recomendadas para doenças | 40.221 | <Halvesting, receita recomendada, sopa de tomate e bola de carne> |
| Has_symptom* | Sintomas da doença | 99.492 | <Câncer de mama precoce, sintomas da doença, hipertrofia do tecido mamário>> |
| acompany_with | Doenças e doenças | 12.029 | <Insuficiência do fechamento da válvula dos membros inferiores da veia do tráfego, complicações de doenças, vasculite tromboocítica>> |
| Total | total | 294.149 | Cerca de 300.000 magnitude de relacionamento |
| Tipo de atributo | Significado chinês | Dê um exemplo |
|---|---|---|
| nome | Nome da doença | Bronquite chiando |
| Desc | Introdução à doença | Também conhecido como bronquite de asma ... |
| Causa | Causas da doença | Os comuns incluem vírus sinciciais ... |
| evitar | Medidas preventivas | Preste atenção à história da família e das alergias infantis ... |
| cure_lastTime | Ciclo de tratamento | 6 a 12 meses |
| cure_way | Método de tratamento | "Tratamento da medicina", "tratamento de apoio" |
| CURED_PROB | Probabilidade de cura | 95% |
| easy_get | Pessoas com suscetibilidade a doenças | Nenhuma multidão específica |
| Tipo de pergunta | Significado chinês | Pergunte um exemplo | ilustrar |
|---|---|---|---|
| doença_symptom | Sintomas da doença | Quais são os sintomas do câncer de mama? | Relacionamentos entre diferentes entidades |
| sintoma_disease | Encontre possíveis doenças com sintomas conhecidos | Qual é o problema de um nariz escorrendo? | Relacionamentos entre diferentes entidades |
| doença_cause | Causas da doença | Por que algumas pessoas sofrem de insônia? | Propriedades da entidade |
| doença_acompany | Complicações da doença | Quais são as complicações da insônia? | Relacionamentos entre entidades semelhantes |
| doença_not_food | Alimentos que exigem comida para evitar alimentos | O que as pessoas com insônia não devem comer? | Relacionamentos entre diferentes entidades |
| doença_do_food | Quais alimentos são recomendados para doenças | O que devo comer se tiver zumbido? | Relacionamentos entre diferentes entidades |
| Food_Not_Disease | Que doença é melhor não comer algo | Quem é a melhor pessoa para comer mel? | Relacionamentos entre diferentes entidades |
| Food_do_disease | Que doença é boa para comida | Quais são os benefícios da carne de ganso? | Relacionamentos entre diferentes entidades |
| doença_drug | Que remédio devo tomar para qualquer doença | Que remédio devo tomar para a doença hepática? | Relacionamentos entre diferentes entidades |
| Drug_disease | Quais doenças podem curar os medicamentos | Que doenças podem curar os grânulos de raiz Isatis? | Relacionamentos entre diferentes entidades |
| doença_check | Que testes são necessários para a doença | Como a meningite pode ser detectada? | Relacionamentos entre diferentes entidades |
| check_disease | Que doença pode ser detectada no exame | O que pode ser detectado por uma contagem completa de células sanguíneas? | Relacionamentos entre diferentes entidades |
| doença_prevent | Medidas preventivas | Como evitar a deficiência de rim? | Propriedades da entidade |
| doença_lasttime | Ciclo de tratamento | Quanto tempo leva para ficar resfriado? | Propriedades da entidade |
| doença_cureway | Método de tratamento | Como tratar a hipertensão? | Propriedades da entidade |
| doença_cureprob | Probabilidade de cura | A leucemia pode ser curada? | Propriedades da entidade |
| doença_easyget | Pessoas com suscetibilidade a doenças | Quem é propenso a hipertensão? | Propriedades da entidade |
| doença_desc | Descrição da doença | O que é diabetes? | Propriedades da entidade |
| doença_getprob (TODO) | Probabilidade de doença | Qual é a alta prevalência de diabetes? | Propriedades da entidade |
(1) Reconhecimento de referência: Matching + NER baseado em dicionário com base no BERT_CRF, leve mais tempo como as palavras de menção.
(2) Link da entidade: Com base na correspondência semântica de Sbert, a incorporação do dicionário é armazenada, a correspondência do dicionário entre as palavras de menção e o dicionário de domínio. A entidade candidata com a similaridade TOP20 combina palavras sobrepostas, e a entidade candidata com a similaridade TOP20 e as palavras sobrepostas com os tempos de menção são maiores ou iguais à metade do comprimento da palavra de menção, que é considerada a entidade -alvo.
(3) Reconhecimento de intenções: com base em palavras de perguntas + dicionário de domínio. Por exemplo, na pergunta "O que são os olhos secos?", A palavra mencionada "Sintoma: Olhos Seco" e a doença da doença "Doença". Acredita -se que a intenção de fazer a pergunta seja sintoma_disease: encontre possíveis doenças com sintomas conhecidos.

Combinando os métodos de correspondência de Bert e Dicionário de Domínio para obter os sintomas na consulta mencionar "inchaço da mucosa do nariz".

A correspondência da entidade -alvo "Darize Mucosa Inchau" com a frase de Sbert é usada para combinar com a entidade alvo "inchaço da mucosa do nariz".




Identifique uma ou mais palavras de referência na pergunta, link para as entidades correspondentes de uma ou mais kg e retorne a resposta da consulta em combinação com os resultados do reconhecimento de intenção.

Este bug ocorre:
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
Consulte 5 , def load(f, map_location=None, pickle_module=pickle, **pickle_load_args): def load(f, map_location='cpu', pickle_module=pickle, **pickle_load_args): def
https://github.com/liuhuanyong/qasystemonmedicalkg ↩
https://github.com/lonepatient/bert-ner-pytorch ↩
https://github.com/ukplab/sentence-transformers ↩
https://github.com/jiangnanboy/movie_knowledge_graph_app ↩
https://stackoverflow.com/questions/56369030/runtimeerror-attempting-to-deserialize-object-on-a-cuda-device ↩