เมื่อสร้างกราฟความรู้ทางการแพทย์และคำถามและคำตอบอัตโนมัติโปรดดูรายการ 1 การปรับให้เหมาะสมต่อไปนี้มีการสร้างกราฟความรู้ทางการแพทย์และระบบคำถามและคำตอบ:
หลังจากสร้างกราฟความรู้และระบบคำถามและคำตอบแล้วการมีปฏิสัมพันธ์ระหว่างส่วนหน้าและการแสดงผล KG จะถูกเพิ่มเข้ามาโดยใช้แผนที่ echarts โครงการอ้างอิงการใช้งาน 4 .
neo4j-community-4.1.4 % bin/neo4j start
medical_knowledge_graph_app-master % python med_kg/manage.py runserver
ไดอะแกรมอินเตอร์เฟสฟังก์ชัน IMG
kg/preple_data crawler ไฟล์
kg/data/medical_rebuild.json ข้อมูลที่ประมวลผลขั้นสุดท้าย
kg/build_medicalgraph.py สร้างฐานข้อมูลกราฟ neo4j
MED_KG/EL_MODEL Entity Link Model
MED_KG/EL_MODEL/EMBEDDING WORD การเป็นตัวแทนของการเป็นตัวแทนของโรค/ยา/อาการพจนานุกรม
med_kg/el_model/entity_linking.py entity link script
med_kg/med_kg django framework views และไฟล์การกำหนดค่า
med_kg/เทมเพลตเทมเพลตของเฟรมเวิร์ก Django
med_kg/ไฟล์ bootstrap front-end แบบคงที่
med_kg/ner_model ชื่อโมเดลการจดจำเอนทิตี
med_kg/ner_model/รุ่นชื่อรหัสโมเดลการจดจำเอนทิตี
med_kg/ner_model/ข้อมูลข้อมูลสำหรับรูปแบบการฝึกอบรม
MED_KG/NER_MODEL/การสูญเสียฟังก์ชั่นการสูญเสียสำหรับรูปแบบการฝึกอบรม
MED_KG/NER_MODEL/OUTPUS/1101MEDSELLSNER-FINETUNE รุ่นปรับแต่งอย่างประณีต (ได้รับการฝึกฝน)
med_kg/ner_model/prev_trained_model แบบจำลอง pretrained สำหรับ pytorch
เครื่องมือ med_kg/util เริ่มเย็น
med_kg/สคริปต์โมเดลเพื่อโต้ตอบกับฐานข้อมูลกราฟ neo4j
med_kg/medmodel คำถามและคำตอบ
med_kg/medmodel/question_classifier.py intent recognition script
med_kg/medmodel/question_parser.py สคริปต์ที่แปลงคำพูดและคำพูดที่ระบุไว้เป็นคำสั่งแบบสอบถามที่ระบุไว้
med_kg/medmodel/answer_search.py Query กราฟกราฟเพื่อส่งคืนคำตอบ
พจนานุกรม MED_KG/MEDMODEL/DICT
หมายเลข '*' ระบุรายการที่เปลี่ยนแปลงตามโครงการดั้งเดิม
| ประเภทเอนทิตี | ความหมายของจีน | จำนวนหน่วยงาน | ยกตัวอย่าง |
|---|---|---|---|
| ตรวจสอบ | รายการตรวจสอบวินิจฉัย | 3,353 | Bronchography; อาร์โธสโคป |
| แผนก | วิชาแพทย์ | 54 | แผนกศัลยกรรมพลาสติก; แผนกไฟไหม้ |
| โรค | โรค | 8,807 | thromboocytic vasculitis; หลอดเลือดโป่งพองของหน้าอก |
| ยา | ยา | 3,828 | ครีมริดสีดวงทวาร jingwanhong; ยาหยอดตาบรินซ์ซามีน |
| อาหาร | อาหาร | 4,870 | ซุปลูกมะเขือเทศและผัก หน่อไม้ตุ๋นด้วยเนื้อแกะ |
| ผู้ผลิต | ยาประเภทหลัก | 17,201 | แท็บเล็ตแท็บเล็ต penicillin v แท็บเล็ต painicillin v Qingyang dexamethasone acetate แท็บเล็ต |
| อาการ* | อาการของโรค | 4,377 | ยั่วยวนของเนื้อเยื่อเต้านม; เลือดออกลึกในเนื้อเยื่อสมอง |
| ทั้งหมด | ทั้งหมด | 44,111 | ประมาณ 44,000 หน่วยงาน |
หมายเลข '*' ระบุรายการที่เปลี่ยนแปลงตามโครงการดั้งเดิม
| ประเภทความสัมพันธ์เอนทิตี | ความหมายของจีน | จำนวนความสัมพันธ์ | ยกตัวอย่าง |
|---|---|---|---|
| เป็นของ | เป็นของ | 8,844 | <นรีเวชวิทยาเป็นของสูติศาสตร์และนรีเวชวิทยา> |
| Common_drug | ยาทั่วไปสำหรับโรค | 14,649 | <Yangqiang, ใช้กันทั่วไป, phentolamine methanesulfonate dispersed tablets> |
| do_eat | กินอาหารเมื่อคุณป่วย | 22,238 | <การแตกหักของความอ่อนนุ่มเหมาะสำหรับการกินปลาสีดำ> |
| ยาเสพติด _of | ยาลดราคา | 17,315 | <penicillin v potassium taglets, ลดราคา, Tongyao Pharmaceutical penicillin v แท็บเล็ตโพแทสเซียม> |
| need_check | การทดสอบโรค | 39,422 | <ถุงลมโป่งพองข้างเดียว, การตรวจสอบที่จำเป็น, การพิมพ์ดีด> |
| ไม่กิน | หลีกเลี่ยงการกินอาหารเป็นโรค | 22,247 | <โรคริมฝีปากหลีกเลี่ยงการกินอัลมอนด์> |
| แนะนำ _drug | ยาที่แนะนำสำหรับโรค | 59,467 | <ริดสีดวงทวารผสม, ยาแนะนำ, ครีมริดสีดวงทวาร jingwanhong> |
| แนะนำ _eat | สูตรที่แนะนำสำหรับโรค | 40,221 | <Halvesting, สูตรที่แนะนำ, มะเขือเทศและซุปบอลเนื้อ> |
| has_symptom* | อาการของโรค | 99,492 | <มะเร็งเต้านมก่อน, อาการของโรค, เนื้อเยื่อเต้านมยั่วยวน> |
| acompany_with | โรคและโรค | 12,029 | <ไม่เพียงพอของการปิดวาล์วของแขนขาที่ต่ำกว่าของหลอดเลือดดำการจราจร, ภาวะแทรกซ้อนของโรค, thromboocytic vasculitis> |
| ทั้งหมด | ทั้งหมด | 294,149 | ขนาดความสัมพันธ์ประมาณ 300,000 |
| ประเภทแอตทริบิวต์ | ความหมายของจีน | ยกตัวอย่าง |
|---|---|---|
| ชื่อ | ชื่อโรค | โรคหลอดลมอักเสบ |
| แยกออกจากกัน | การแนะนำโรค | ยังเป็นที่รู้จักกันในชื่อโรคหอบหืดโรคหลอดลมอักเสบ ... |
| สาเหตุ | สาเหตุของโรค | คนทั่วไปรวมถึงไวรัส syncytial ... |
| ป้องกัน | มาตรการป้องกัน | ให้ความสนใจกับประวัติความเป็นมาของครอบครัวและเด็ก ๆ ... |
| Cure_lasttime | วงจรการรักษา | 6-12 เดือน |
| Cure_way | วิธีการรักษา | "การรักษาด้วยยา", "การรักษาสนับสนุน" |
| หายไป | ความน่าจะเป็นของการรักษา | 95% |
| easy_get | ผู้ที่มีความอ่อนไหวต่อโรค | ไม่มีฝูงชนที่เฉพาะเจาะจง |
| ประเภทคำถาม | ความหมายของจีน | ถามตัวอย่าง | อธิบาย |
|---|---|---|---|
| โรค _symptom | อาการของโรค | โรคมะเร็งเต้านมคืออะไร? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| อาการ _disease | ค้นหาโรคที่เป็นไปได้ที่มีอาการที่รู้จัก | ปัญหาของน้ำมูกไหลคืออะไร? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| โรค _ause | สาเหตุของโรค | ทำไมบางคนถึงต้องทนทุกข์ทรมานจากการนอนไม่หลับ? | คุณสมบัติเอนทิตี |
| โรค _Acompany | ภาวะแทรกซ้อนของโรค | ภาวะแทรกซ้อนของโรคนอนไม่หลับคืออะไร? | ความสัมพันธ์ระหว่างหน่วยงานที่คล้ายกัน |
| โรค _not_food | อาหารที่ต้องการอาหารเพื่อหลีกเลี่ยงอาหาร | คนนอนไม่หลับควรกินอะไร? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| โรค _do_food | อาหารชนิดใดที่แนะนำสำหรับโรค | ฉันควรกินอะไรถ้าฉันมีหูอื้อ? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| food_not_disease | โรคอะไรดีที่สุดที่จะไม่กินอะไร | ใครคือคนที่ดีที่สุดในการกินน้ำผึ้ง? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| food_do_disease | โรคอะไรดีสำหรับอาหาร | เนื้อห่านมีประโยชน์อย่างไร? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| โรค _drug | ฉันควรใช้ยาอะไรสำหรับโรคใด ๆ | ฉันควรใช้ยาชนิดใดสำหรับโรคตับ? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| drug_disease | ยารักษาโรคอะไรได้บ้าง | โรคราก ISATIS สามารถรักษาโรคอะไรได้บ้าง? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| โรค _Check | การทดสอบใดที่จำเป็นสำหรับโรค | จะตรวจพบเยื่อหุ้มสมองอักเสบได้อย่างไร? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| check_disease | โรคใดที่สามารถตรวจพบได้ในการตรวจสอบ | สิ่งที่สามารถตรวจพบได้โดยจำนวนเซลล์เม็ดเลือดที่สมบูรณ์? | ความสัมพันธ์ระหว่างหน่วยงานต่าง ๆ |
| โรค _Revent | มาตรการป้องกัน | จะป้องกันการขาดไตได้อย่างไร? | คุณสมบัติเอนทิตี |
| โรค _lasttime | วงจรการรักษา | ต้องใช้เวลานานแค่ไหนในการเป็นหวัด? | คุณสมบัติเอนทิตี |
| โรค _cureway | วิธีการรักษา | วิธีรักษาความดันโลหิตสูง? | คุณสมบัติเอนทิตี |
| โรค _cureprob | ความน่าจะเป็นของการรักษา | มะเร็งเม็ดเลือดขาวสามารถหายได้หรือไม่? | คุณสมบัติเอนทิตี |
| โรค _easyget | ผู้ที่มีความอ่อนไหวต่อโรค | ใครมีแนวโน้มที่จะมีความดันโลหิตสูง? | คุณสมบัติเอนทิตี |
| โรค _desc | คำอธิบายโรค | โรคเบาหวานคืออะไร? | คุณสมบัติเอนทิตี |
| โรค _getprob (สิ่งที่ต้องทำ) | ความน่าจะเป็นของการเจ็บป่วย | ความชุกของโรคเบาหวานสูงแค่ไหน? | คุณสมบัติเอนทิตี |
(1) การจดจำอ้างอิง: การจับคู่ตามพจนานุกรม + ner ตาม bert_crf ใช้เวลานานขึ้นทั้งคำพูดที่กล่าวถึง
(2) Entity Link: ขึ้นอยู่กับการจับคู่ความหมายของ Sbert การฝังพจนานุกรมจะถูกเก็บไว้การจับคู่พจนานุกรมระหว่างคำพูดและพจนานุกรมโดเมน เอนทิตีของผู้สมัครที่มีความคล้ายคลึงกัน top20 รวมคำที่ทับซ้อนกันและเอนทิตีของผู้สมัครที่มีความคล้ายคลึงกัน top20 และคำที่ทับซ้อนกับเวลาที่กล่าวถึงมากกว่าหรือเท่ากับครึ่งหนึ่งของความยาวของคำพูดซึ่งถือว่าเป็นเอนทิตีเป้าหมาย
(3) การรับรู้เจตนา: ขึ้นอยู่กับคำคำถาม + พจนานุกรมโดเมน ตัวอย่างเช่นในคำถาม "ดวงตาแห้งคืออะไร" คำพูด "อาการ: ตาแห้ง" และคำถามโรค "ความเจ็บป่วย" มีความเชื่อกันว่าความตั้งใจที่จะถามคำถามคืออาการ _disease: ค้นหาโรคที่เป็นไปได้ที่มีอาการที่รู้จัก

การรวมวิธีการจับคู่พจนานุกรม Bert และโดเมนเพื่อให้ได้อาการในการสืบค้นกล่าวถึง "อาการบวมของเยื่อเมือกจมูก"

การจับคู่ของเอนทิตีเป้าหมาย "อาการบวมของเยื่อบุจมูก" กับประโยค Sbert นั้นใช้เพื่อให้ตรงกับเป้าหมาย "การบวมของเยื่อบุจมูก"




ระบุคำอ้างอิงอย่างน้อยหนึ่งคำในคำถามเชื่อมโยงไปยังเอนทิตีอย่างน้อยหนึ่งรายการหรือมากกว่าและส่งคืนคำตอบแบบสอบถามเมื่อรวมกับผลลัพธ์ของการรับรู้เจตนา

ข้อผิดพลาดนี้เกิดขึ้น:
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.
อ้างถึง 5 , ใช้ฟังก์ชั่นโหลด def ของ ./site-package/torch/serialization.py เพื่อใช้ def load(f, map_location='cpu', pickle_module=pickle, **pickle_load_args): แทนที่จะเป็น def load(f, map_location=None, pickle_module=pickle, **pickle_load_args):
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 ↩