king-yyf/CMeKG_tools
king-yyf/CMeKG_tools has 1,507 GitHub stars and 503 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-06 07:20 UTC. Last push 2023-11-03.
中文医学知识图谱CMeKG CMeKG(Chinese Medical Knowledge Graph)是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱。
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalCMeKG 工具 代码及模型
Index
cmekg工具
中文医学知识图谱CMeKG CMeKG(Chinese Medical Knowledge Graph)是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱。
CMeKG 中主要模型工具包括 医学文本分词,医学实体识别和医学关系抽取。这里是三种工具的代码、模型和使用方法。
模型下载
由于依赖和训练好的的模型较大,将模型放到了百度网盘中,链接如下,按需下载。
RE:链接:https://pan.baidu.com/s/1cIse6JO2H78heXu7DNewmg 密码:4s6k
NER: 链接:https://pan.baidu.com/s/16TPSMtHean3u9dJSXF9mTw 密码:shwh
分词:链接:https://pan.baidu.com/s/1bU3QoaGs2IxI34WBx7ibMQ 密码:yhek
依赖库
- json
- random
- numpy
- torch
- transformers
- gc
- re
- time
- tqdm
模型使用
医学关系抽取
依赖文件
- pytorch_model.bin : 医学文本预训练的 BERT-base model
- vocab.txt
- config.json
- model_re.pkl: 训练好的关系抽取模型文件,包含了模型参数、优化器参数等
- predicate.json
使用方法
配置参数在medical_re.py的class config里,首先在medical_re.py的class config里修改各个文件路径
- 训练
import medical_re
medical_re.load_schema()
medical_re.run_train()
model_re/train_example.json 是训练文件示例
- 使用
import medical_re
medical_re.load_schema()
model4s, model4po = medical_re.load_model()
text = '据报道称,新冠肺炎患者经常会发热、咳嗽,少部分患者会胸闷、乏力,其病因包括: 1.自身免疫系统缺陷\n2.人传人。' # content是输入的一段文字
res = medical_re.get_triples(text, model4s, model4po)
print(json.dumps(res, ensure_ascii=False, indent=True))
- 执行结果
[
{
"text": "据报道称,新冠肺炎患者经常会发热、咳嗽,少部分患者会胸闷、=乏力,其病因包括: 1.自身免疫系统缺陷\n2.人传人",
"triples": [
[
"新冠肺炎",
"临床表现",
"肺炎"
],
[
"新冠肺炎",
"临床表现",
"发热"
],
[
"新冠肺炎",
"临床表现",
"咳嗽"
],
[
"新冠肺炎",
"临床表现",
"胸闷"
],
[
"新冠肺炎",
"临床表现",
"乏力"
],
[
"新冠肺炎",
"病因",
"自身免疫系统缺陷"
],
[
"新冠肺炎",
"病因",
"人传人"
]
]
}
]
医学实体识别
调整的参数和模型在ner_constant.py中
训练
python3 train_ner.py
使用示例
medical_ner 类提供两个接口测试函数
- predict_sentence(sentence): 测试单个句子,返回:{"实体类别":“实体”},不同实体以逗号隔开
- predict_file(input_file, output_file): 测试整个文件 文件格式每行待提取实体的句子和提取出的实体{"实体类别":“实体”},不同实体以逗号隔开
from run import medical_ner
#使用工具运行
my_pred=medical_ner()
#根据提示输入单句:“高血压病人不可食用阿莫西林等药物”
sentence=input("输入需要测试的句子:")
my_pred.predict_sentence("".join(sentence.split()))
#输入文件(测试文件,输出文件)
my_pred.predict_file("my_test.txt","outt.txt")
医学文本分词
调整的参数和模型在cws_constant.py中
训练
python3 train_cws.py
使用示例
medical_cws 类提供两个接口测试函数
- predict_sentence(sentence): 测试单个句子,返回:{"实体类别":“实体”},不同实体以逗号隔开
- predict_file(input_file, output_file): 测试整个文件 文件格式每行待提取实体的句子和提取出的实体{"实体类别":“实体”},不同实体以逗号隔开
from run import medical_cws
#使用工具运行
my_pred=medical_cws()
#根据提示输入单句:“高血压病人不可食用阿莫西林等药物”
sentence=input("输入需要测试的句子:")
my_pred.predict_sentence("".join(sentence.split()))
#输入文件(测试文件,输出文件)
my_pred.predict_file("my_test.txt","outt.txt")
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,452 starspublic-apis/public-apis
A collective list of free APIs
496,767 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
438,168 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,078 stars