CN114530223B - 一种基于nlp的心血管疾病病历结构化系统 - Google Patents
一种基于nlp的心血管疾病病历结构化系统 Download PDFInfo
- Publication number
- CN114530223B CN114530223B CN202210056958.7A CN202210056958A CN114530223B CN 114530223 B CN114530223 B CN 114530223B CN 202210056958 A CN202210056958 A CN 202210056958A CN 114530223 B CN114530223 B CN 114530223B
- Authority
- CN
- China
- Prior art keywords
- text
- character
- training
- word
- medical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 208000024172 Cardiovascular disease Diseases 0.000 title claims abstract description 26
- 238000012549 training Methods 0.000 claims abstract description 72
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000002372 labelling Methods 0.000 claims abstract description 28
- 238000000605 extraction Methods 0.000 claims abstract description 21
- 238000003058 natural language processing Methods 0.000 claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 17
- 238000013135 deep learning Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 66
- 238000003745 diagnosis Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 230000000873 masking effect Effects 0.000 claims description 10
- 230000007704 transition Effects 0.000 claims description 10
- 230000006978 adaptation Effects 0.000 claims description 9
- 230000002457 bidirectional effect Effects 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000011282 treatment Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 238000010380 label transfer Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000002156 mixing Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims 1
- 201000010099 disease Diseases 0.000 description 13
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 13
- 206010002383 Angina Pectoris Diseases 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 210000004351 coronary vessel Anatomy 0.000 description 3
- 230000003902 lesion Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000002690 local anesthesia Methods 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 241000534414 Anotopterus nikparini Species 0.000 description 1
- 208000017667 Chronic Disease Diseases 0.000 description 1
- 208000002193 Pain Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000002526 effect on cardiovascular system Effects 0.000 description 1
- 208000019622 heart disease Diseases 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 208000031225 myocardial ischemia Diseases 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036407 pain Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Primary Health Care (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Animal Behavior & Ethology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Public Health (AREA)
- Medical Informatics (AREA)
- Epidemiology (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于NLP的心血管疾病病历结构化系统,包括:文本格式转换模块,用于将用户上传的心血管疾病相关的病历文件,按不同格式进行转换后输出为文本文件;规则抽取模块,用于定义文本抽取规则,对转换的文本文件进行初步结构化及粗粒度的信息抽取,并输出对应的结构化文本;命名实体识别模块,基于深度学习,结合自然语言处理方法训练预训练语言模型,使用预训练语言模型对结构化文本进行序列标注,预测结构化文本中各个字符实体标签的概率,根据所述概率确定实体的起止位置和类别信息,以此抽取细粒度心血管疾病相关的医学实体信息,将预测得到的实体位置及类别信息存储于最终的结构化文件中。
Description
技术领域
本发明涉及自然语言处理及深度学习领域,尤其涉及一种基于NLP的心血管疾病病历结构化系统。
背景技术
随着我国老龄化和城市化进程加快,各种先进的医疗器械和检查手段不断应用到临床中,降低了我国院内的心血管病患者死亡率,但心血管病(CVD)等慢性疾病的患病率仍处于持续上升期。同时随着互联网技术的迅速发展以及信息技术在医疗领域的广泛应用,医疗数据呈指数增长,心血管疾病病例数据也大量累积。医学文本在医疗数据中占据着重要地位,其包括如电子病历、医疗文献、医患对话等大多为非结构化的文本信息。大量的临床医学信息以非结构化(或半结构化)文本形式存在于病历文本中,因此需要进行病历结构化。通过自然语言处理(Natural Language Processing,NLP)将医学病历进行结构化,转化为包含重要医学信息的结构化数据,减轻医疗工作者在繁复文本工作上的负担,并从这些结构化的数据中发现有用医学信息,从而提高医疗系统的运行质量,减少运行成本,从而突破制约医院数字化的瓶颈,提升医院的信息化程度,为医疗大数据平台建立、临床科研、诊疗辅助等方面提供数据基础。
近年来,大数据及深度学习的迅猛发展,为自然语言处理在病历结构化的应用提供了许多新理论基础。一种以病人为中心的病历结构化存储设计方法(杜金莲,王安,苏航,金雪云,王丹.一种电子病历结构化数据组织方法及实现系统[P].北京市:CN113066546A,2021-07-02.),其细化了电子病历信息,并引入时间概念,但其只针对粗粒度信息进行结构化,不具有细粒度实体抽取的能力。实体识别模型训练、电子病历处理方法、系统及设备引入基于深度学习的命名实体识别方法(郑涛,陈珊黎,丁海明,司丹丹,孙孝坤,胡豪.实体识别模型训练、电子病历处理方法、系统及设备[P].上海市:CN113435200A,2021-09-24.),但其在实际工业医学病历结构化应用场景中,会面临如下问题:
1.方法或系统不可解耦,其主要原因是采用的方法或系统直接采用端到端处理,而非分模块处理,从输入到输出完全使用“黑盒”的机器学习或深度学习模型。由于医学领域的敏感性,需明确每一模块或环节的输出,对个别错误可追溯,不可解耦会极大降低方法或系统的可信度和普适性。
2.模型缺乏专有领域知识,泛化迁移能力不足,其主要原因是通用的预训练语言模型双向自注意力语义编码器(BERT)是在通用语料上进行预训练,而医学疾病领域,特别是心血管疾病领域专业术语较多,实体复杂,通用BERT在该领域的语义向量学习较差,会导致实体认知不全。除此之外,通用BERT基于单字符进行训练,缺乏词汇信息,对于中文词汇或实体的边界不敏感,容易导致边界错误。
3.医学文本数据人工标注成本昂贵,其主要原因是医学文本的复杂性及其对标注人员的专业知识要求较高。而为了保证模型微调训练的准确性,一定规模的有监督数据是必需的。
发明内容
为了克服现有医学病历结构化场景的常见问题,着眼于利用当前有限的医疗标注文本数据,解决通用语义表示模型在特定医学领域泛化迁移能力差、准确度低的问题,以及使用深度学习模型同时如何平衡系统可解耦性的问题,本发明提供了一种基于NLP的心血管疾病病历结构化系统。
本发明至少通过如下技术方案之一实现。
一种基于NLP的心血管疾病病历结构化系统,包括:
文本格式转换模块,用于将用户上传的心血管疾病相关的病历文件,按不同格式进行转换后输出为文本文件;
规则抽取模块,用于定义文本抽取规则,对转换的文本文件进行初步结构化及粗粒度的信息抽取,并输出对应的结构化文本;
命名实体识别模块,基于深度学习,结合自然语言处理方法训练预训练语言模型,使用预训练语言模型对结构化文本进行序列标注,预测结构化文本中各个字符实体标签的概率,根据所述概率确定实体的起止位置和类别信息,以此抽取细粒度心血管疾病相关的医学实体信息,将预测得到的实体位置及类别信息存储于最终的结构化文件中。
进一步地,文本格式转换模块对用户指定的病历文件先进行格式判别,并将文件的格式转换为后续可结构化的文本格式,具体为:
若用户指定的文件为Word文件,则利用Python中的第三方工具库docx2txt,对Word文件进行文字读取,将文件转换为Python中可操作的字符串,对提取得到的字符串进行预处理后保存至TXT文件中;
若用户指定文件为PDF文件,需让用户指定PDF文件内容为文字版或是图片版;若为文字版,则使用第三方工具库PDFPlumber对文字进行提取;若为图片版,则先使用第三方工具库Fitz将PDF文件每一页提取为PNG格式的图片,再调用OCR工具库Tesseract对图片中的文字进行提取,对提取得到的字符串进行预处理后保存至TXT文件中;
所述预处理包括去除多余空格、换行符及特殊符号。
进一步地,抽取出的结构化信息包括患者个人信息、现病史、各类诊断信息、治疗过程、各项生化指标等,将结构化信息通过字典的格式存储于json文件。
进一步地,命名实体识别模块抽取初步结构化及粗粒度的信息,具体过程为:
基于在医学领域预训练后的双向自注意力语义编码器,在经过数据增强的训练集Dda上结合医学领域词向量进行词汇增强调整训练,得到最后的NER抽取模型,使用最后的NER抽取模型对规则抽取模块输出的结构化文本进行编码,将编码得到的特征向量经过线性分类器,将得到的分类层向量输入到条件随机场(CRF)中计算每个字符的标签转移概率,最后通过Viterbi算法进行解码得到最终每个字符的标签信息,基于标签信息得到实体起止位置和实体类别。
进一步地,词汇增强微调训练包括以下步骤:
S1、构建字符-词汇对序列:即对于输入的中文句子sc={c1,c2,...,cn},对句子每个字符cn利用医学领域词向量的词典匹配出包含该字符的潜在词汇,将该字符和匹配得到的词汇组成词汇对scw,表示为:
scw={(c1,ws1),(c2,ws2),...,(cn,wsn)}
其中,cn表示句子中第n个字符,wsn表示包含该字符的词汇组成的集合;
S2、设计词汇适配层结构:对于句子第i个位置的字符,将医学领域双向自注意力语义编码器某一自注意力变换层编码的字符特征与该字符对应词汇的词向量集合,使用非线性变换与字符特征向量进行维度对齐后,利用注意力机制将集合中每个词向量进行融合,最后将字符特征与融合后的词向量相加并进行归一化,得到最后词汇适配层的特征输出,表示为,
S3、将词汇适配层输出的结合特征注入到医学领域双向自注意力语义编码器第k和第k+1层自注意力变换层之间。
进一步地,采用条件随机场计算每个字符的标签转移概率,具体过程为:
首先将NER抽取模型编码输出的n维特征向量H={h1,h2,...,hn},经过一个线性分类层,得到的分类层输出向量O,如下公式所示;
O=WOH+bO
其中,hn为特征向量H的第n维向量,WO为线性分类层的变换矩阵,bO为线性分类层的偏差;
然后使用CRF进行转移概率计算,即对于一个需进行标注的序列y={y1,y2,...,yn},其概率如下公式计算:
其中,yn表示待标注序列y的第n个字符,T表示CRF的转移分数矩阵,y′表示所有可能的标注序列,表示概率最大标注的序列在第i个位置的分类层向量,/>表示可能的序列在第i个位置的分类层向量,/>表示概率最大标注的序列在从第i-1到第i个位置的转移概率,/>表示可能的序列在从第i-1到第i个位置的转移概率;
最后使用Viterbi算法进行解码得到该标注序列的标签。
进一步地,命名实体识别模块中医学领域双向自注意力语义编码器的获取,具体过程为:
首先收集医学领域的医学文本,进行文本预处理,得到专有语料Wmedical;
然后将专有语料Wmedical的文本切割至适配于预训练语言模型训练的输入长度;
对切割后的文本使用整词遮蔽,即对在预训练词表中的中文词汇或词级别字符,随机进行遮蔽处理,经整词遮蔽处理后得到遮蔽语言模型预训练数据集;
最后在预训练数据集上对BERT模型进行预训练,遮蔽语言模型任务的目标是通过语句的上下文信息预测使用被遮蔽处理的词汇或字符,从而使得原始的BERT模型学习到文本的上下文双向信息,通过上述预训练得到Med-BERT模型。
进一步地,医学领域词向量的获取,具体过程为:
首先将专有语料Wmedical的文本切割至适配于词向量模型(Word2Vec)训练的输入长度;
然后使用Word2Vec模型中的跳字(Skip-gram)训练模式在切割好的文本上进行词向量训练,Skip-gram的训练目标是基于核心词w来预测核心词上下文context(w)里的所有词;
最后为了提高计算效率,采用负采样的优化方法,将多分类问题转化为二分类问题,只更新与当前样本相关的向量参数,经训练得到医学领域词向量。
进一步地,训练集Dda采用基于语言模型文本生成的数据增强方法),包括以下步骤:
S1、将原始人工标注好的NER训练数据Dori进行标签线性化:将文本的字符与原始的序列标注标签进行混合,把实体每个字符对应的标签放在字符前面,形成新的线性化标注数据,记该数据为Dman;
S2、从专有语料Wmedical中筛选出与心血管疾病相关的语料Wcardio,基于现有的医学实体词典,使用最大双向匹配法对Wcardio进行远程监督标注并进行标签线性化,得到数据Ddist;
S3、将数据Dman与数据Ddist合并为半监督线性化数据Dsemi,并将半监督线性化数据Dsemi输入至双向LSTM进行自回归的语言模型训练;
S4、使用训练好的自回归的语言模型生成带有序列标注标签的线性化文本数据Dgen;
S5、最后将线性化文本数据Dgen进行筛选得到数据Dfilter,将Dfilter的与线性化标注数据Dman合并,同时去线性化,即转化为与原始NER标注数据Dori相同的标注格式,将长度切割至适配于医学领域双向自注意力语义编码器的输入长度,得到经过数据增强的NER数据集Dda。
进一步地,所述命名实体识别中对Med-BERT进行微调训练,微调是在Med-BERT基础上添加面向下游任务的网络参数,并微调包括Med-BERT在内整个网络的参数,命名实体识别模块是在Med-BERT基础上,添加的网络参数包括词汇增强的Lexicon Adapter,以及最后输出拼接的一个线性分类层和一个CRF层,微调阶段中Med-BERT的网络参数使用预训练阶段保存的模型参数进行初始化。
与现有的技术相比,本发明的有益效果为:
1.本发明将规则抽取和命名实体识别模块进行独立拆分,保证问题的可回溯,为后续添加其他NLP模块提供空间,对比完全端到端的系统更具可解耦性。
2.本发明使用更丰富更专业的医学领域语料及WWM方法继续预训练BERT模型,得到在专有领域语义向量表示更加的预训练语言模型,对比以往通用的预训练语言模型具有更多的专业知识和更强的泛化迁移能力。
3.本发明采用的生成式数据增强方法,及基于动态Lexicon Enhanced的词汇增强方法,能在有限的人工标注数据的条件下,保证模型的高准确性,对比以往在有限数据上的数据增强方法,本发明的方法更适配于NER任务,对比以往的词汇增强方法,本发明的方法降低了引入词汇特征的信息损失,并提高了可迁移性及计算效率。
附图说明
图1为本发明一种基于NLP的心血管疾病病历结构化系统的工作流程图;
图2为本发明的文件转换模块的流程图;
图3为本发明的命名实体识别模块中模型的示意图;
图4为本发明的命名实体识别模块中数据增强的示意图;
图5为本发明的命名实体识别模块中词汇增强的Lexicon Adapter的示意图。
具体实施方式
下面将结合本发明实施例及附图,对本发明实施例中的技术方案进行清晰、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明提出了基于NLP的心血管疾病病历结构化系统,使用NLP相关技术,对非结构化的病历文件进行转化及抽取,得到结构化的文本文件,其包括:
文本格式转换模块,如图2所示,用于将用户上传的心血管疾病相关的病历文件,按需进行格式转换,支持Word或PDF文件,记转化后的输出文本文件为F;通过文件后缀名判断文件类别,若指定的文件为Word文件(文件后缀为.docx或.doc),则利用Python中的第三方工具库docx2txt,对Word文件中的文字进行解析,转换为Python中可操作的字符串;若指定文件为PDF文件(文件后缀为.pdf),需让用户指定PDF内容为文字版或是图片版,对文字版使用第三方工具库PDFPlumber对文字进行提取,对图片版则先使用第三方工具库Fitz将PDF每一页提取为PNG格式的图片,再调用OCR工具库Tesseract对图片中的文字进行提取。最后对提取得到的字符串进行预处理,以去除多余空格、换行符及特殊符号。
规则抽取模块,用于编写相应的正则表达式,即定义的文本抽取规则,对已转换的文本F进行初步结构化及粗粒度的信息抽取,记结构化输出json文件为J;本实施例中,抽取病历中相应的结构化信息,如患者个人信息、现病史、各类诊断信息、治疗过程、各项生化指标等,并将这些结构化文本信息保存为字典json格式文件J。
根据输出文本文件,编写相应的正则表达式,如下式所示,抽取病历中相应的结构化信息:
Info=Re.findall(pattern,text)
其中,Re表示Python中的正则表达式模块,pattern为不同类型的结构化信息对应的规则模板,text为待抽取的文本,findall为Re模块的查找函数,其可在text中查找出能够匹配pattern的所有文本。
命名实体识别(NER)模块:基于深度学习,结合自然语言处理(NLP)相关方法训练模型(Med-BERT),使用模型对结构化文本进行序列标注,预测结构化文本中各个字符实体标签的概率,根据所述概率确定实体的起止位置和类别信息,以此抽取细粒度心血管疾病相关的医学实体信息,将预测得到的实体位置及类别信息存储于最终的结构化json文件中。
如图3所示,获取领域预训练模型Med-BERT,并结合数据增强和词汇增强的方法进行微调训练,得到Med-BERT-LE模型,使用Med-BERT-LE模型对J的结构化文本进行语义编码,并用条件随机场(CRF)进行序列标注,预测结构化文本中各个字符实体标签的概率,根据此概率确定实体的起止位置和类别信息,以此抽取细粒度心血管疾病相关的医学实体信息。如对“诊断心绞痛,冠脉三支病变,局麻下行PCI术治疗”,可抽取的实体有心绞痛、冠脉三支病变及PCI术,前两个实体类别为疾病与诊断,第三个实体类别为手术。将预测得到的实体位置及类别信息,以[实体,实体类别,起始位置,结束位置]的形式,如[心绞痛,疾病与诊断,2,4],存储于最终的结构化json文件中。
在本实施例中,命名实体识别模块中得到医学领域预训练模型Med-BERT,具体包括以下步骤:
1)收集医学领域相关,特别是心血管疾病相关的医学文本,进行文本预处理(包括标点符号与特殊符号格式转换,去除空格,字母统一小写),得到专有语料Wmedical;
2)对Wmedical进行长度切割,将文本切割至适配于预训练语言模型(PretrainedLanguage Model)训练的输入长度;
3)对切割后的文本使用整词遮蔽(Whole Word Mask),即对在预训练词表中的中文词汇或词级别字符,以15%的选择概率随机进行遮蔽(mask)处理,为了减弱预训练和后续模型微调的不一致性,被mask的词汇或字符有80%的概率会被替换为[MASK],10%的概率会被替换成另一个随机的词汇或字符,10%的概率会保留原始词汇或字符,经整词遮蔽处理后得到遮蔽语言模型(MLM)预训练数据集;
4)在预训练数据集上对原始的通用BERT模型进行预训练,MLM任务的目标是通过语句的上下文信息预测使用被遮蔽处理的词汇或字符,从而使得模型学习到文本的上下文双向信息,通过上述MLM训练得到Med-BERT模型。
在本实施例中,对Med-BERT进行微调训练,微调是在Med-BERT基础上添加面向下游任务的网络参数,并微调包括Med-BERT在内整个网络的参数,命名实体识别模块是在Med-BERT基础上,添加的网络参数包括词汇增强的Lexicon Adapter,以及最后输出拼接的一个线性分类层和一个CRF层,微调阶段中Med-BERT的网络参数使用预训练阶段保存的模型参数进行初始化。
在本实施例中,所有带标签的NER数据集中,数据标签格式都采用BIOS标签,标签集合为L={B-xi,I-xi,S-xi,O},其中xi∈X,X为所有实体类别的集合,长度大于或等于2的实体,首个字符用B-xi标注,长度大于或等于2的实体第二个字符到最后一个字符用I-xi标注,单个字符即为实体的字符用S-xi标注,非实体的字符都用O标注。如“诊断心绞痛,冠脉三支病变,局麻下行PCI术治疗”,标签序列为“O O B-疾病与诊断I-疾病与诊断I-疾病与诊断O B-疾病与诊断I-疾病与诊断I-疾病与诊断I-疾病与诊断I-疾病与诊断I-疾病与诊断OO O O O B-手术I-手术I-手术I-手术O O”。
在本实施例中,命名实体识别中采用的条件随机场(CRF)序列标注具体为,
1)将微调训练后模型编码输出的特征向量H={h1,h2,...,hn},经过一个线性分类层,得到的分类层输出向量O,如下公式所示;
O=WOH+bO
其中,hn为特征向量H的第n维向量,WO为线性分类层的变换矩阵,bO为线性分类层的偏差。
2)使用CRF进行转移概率计算,即对于一个需进行标注的序列y={y1,y2,...,yn},其概率如下公式计算,
其中,yn表示待标注序列y的第n个元素(字符),T表示CRF的转移分数矩阵,y′表示所有可能的标注序列,表示概率最大标注的序列在第i个位置的分类层向量,/>表示可能的序列在第i个位置的分类层向量,/>表示概率最大标注的序列在从第i-1到第i个位置的转移概率,/>表示可能的序列在从第i-1到第i个位置的转移概率;
3)使用Viterbi算法进行解码得到该标注序列的标签。
实施例2
与实施例1不同的是,如图4所示,本实施例的命名实体识别中基于语言模型文本生成的数据增强方法(DAGA)的过程为:
1.1、将原始人工标注好的NER训练数据进行标签线性化,即将文本的字符与原始的序列标注标签进行混合,把实体每个字符对应的标签放在字符前面。如“诊断心绞痛”,经线性化后为,“诊断B-疾病与诊断心I-疾病与诊断绞I-疾病与诊断痛”。由此形成新的线性化标注数据,记该数据为Dman。
1.2、从专有语料Wmedical中重点筛选出与心血管疾病相关的语料Wcardio,基于现有的医学实体词典(包括疾病与诊断、手术、药物、解剖部位等实体类别),使用最大双向匹配法对Wcardio进行远程监督标注,并同上将其进行标签线性化,得到数据Ddist;
1.3、将数据Dman与数据Ddist合并为半监督线性化数据Dsemi,并将该数据输入至一层双向LSTM进行自回归的语言模型训练。
1.4、使用训练好的的语言模型生成带有序列标注标签的线性化文本数据Dgen。
1.5、将Dgen进行筛选后(筛选规则为生成文本不为空,且生成的标签不乱序,生成的文本字符不能为标签),与Dman合并,同时去线性化,即转化为与原始NER标注数据相同的标注格式,将长度切割至适配于医学领域双向自注意力语义编码器(Med-BERT)的输入长度,得到经过数据增强的NER数据集Dda。
实施例3
与实施例1、2不同的是,本实施例的命名实体识别中词汇增强方法(LexiconEnhanced)如图3和图5所示,具体过程为:
2.1、构建字符-词汇对序列,即对于给定的输入中文句子sc={c1,c2,...,cn},对于句子每个字符ci,利用医学领域词向量Med-WordVec的词典匹配出包含该字符的潜在词汇,将该字符和匹配得到的词汇组成词汇对,表示为,
scw={(c1,ws1),(c2,ws2),...,(cn,wsn)}
其中,ci表示句子中第i个字符,wsi表示包含该字符的词汇组成的集合。如“诊断心绞痛”中,对“心”这个字符,其字符词汇对序列为{(“心”,“心脏”),(“心”,“心脏病”),…,(“心”,“心肌缺血”)}。
2.2、为了将词汇特征嵌入到Med-BERT的中间层中,设计设计词汇适配层(LexiconAdapter,LA),如图5所示:对于句子第i个位置的字符,将医学领域双向自注意力语义编码器(Med-BERT)某一自注意力变换层(Transformer)编码的字符特征与该字符对应词汇的词向量集合,使用非线性变换与字符特征向量进行维度对齐后,利用注意力机制将集合中每个词向量进行融合,最后将字符特征与融合后的相加并进行归一化(LayerNormalization),得到最后LA的特征输出,过程可表示为,
2.3、将LA输出的结合特征注入到医学领域双向自注意力语义编码器(Med-BERT)第k和第k+1层自注意力变换层(Transformer)层之间(k的取值范围默认为1~12,取决于Med-BERT的总层数)。
本实施例中,医学领域词向量Med-WordVec的获取过程为:
1)对专有语料Wmedical进行长度切割,将文本切割至适配于词向量模型(Word2Vec)模型训练的输入长度;
2)使用Word2Vec模型中的跳字(Skip-gram)训练模式在切割好的文本上进行词向量训练,Skip-gram的训练目标是基于核心词w来预测其上下文context(w)里的所有词;
3)为了提高词向量的训练速度,采用负采样的优化方法,即在训练中以核心词为正样本,采样部分词频较高的其他词为负样本,而对词表中的所有词进行预测,由此将原来的Softmax多分类问题,转化为一个正样本和多个负样本的二分类问题,只更新当前样本(核心词w)相关的向量参数。
以上所述仅为本发明的优选实施例,并非因此限制本发明的范围,凡是在本发明的发明创造构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的保护范围内。
Claims (1)
1.一种基于NLP的心血管疾病病历结构化系统,其特征在于,包括:
文本格式转换模块,用于将用户上传的心血管疾病相关的病历文件,按不同格式进行转换后输出为文本文件;对用户指定的病历文件先进行格式判别,并将文件的格式转换为后续可结构化的文本格式,具体为:
若用户指定的文件为Word文件,则利用Python中的第三方工具库docx2txt,对Word文件进行文字读取,将文件转换为Python中可操作的字符串,对提取得到的字符串进行预处理后保存至TXT文件中;
若用户指定文件为PDF文件,需让用户指定PDF文件内容为文字版或是图片版;若为文字版,则使用第三方工具库PDFPlumber对文字进行提取;若为图片版,则先使用第三方工具库Fitz将PDF文件每一页提取为PNG格式的图片,再调用OCR工具库Tesseract对图片中的文字进行提取,对提取得到的字符串进行预处理后保存至TXT文件中;
所述预处理包括去除多余空格、换行符及特殊符号;
规则抽取模块,用于定义文本抽取规则,对转换的文本文件进行初步结构化及粗粒度的信息抽取,并输出对应的结构化文本;抽取出的结构化信息包括患者个人信息、现病史、各类诊断信息、治疗过程、各项生化指标,将结构化信息通过字典的格式存储于json文件;
根据输出文本文件,编写相应的正则表达式,如下式所示,抽取病历中相应的结构化信息:
Info=Re.findall(pattern,text)
其中,Re表示Python中的正则表达式模块,pattern为不同类型的结构化信息对应的规则模板,text为待抽取的文本,findall为Re模块的查找函数,在text中查找出能够匹配pattern的所有文本;
命名实体识别模块,基于深度学习,结合自然语言处理方法训练预训练语言模型,使用预训练语言模型对结构化文本进行序列标注,预测结构化文本中各个字符实体标签的概率,根据所述概率确定实体的起止位置和类别信息,以此抽取细粒度心血管疾病相关的医学实体信息,将预测得到的实体位置及类别信息存储于最终的结构化文件中;
命名实体识别模块抽取初步结构化及粗粒度的信息,具体过程为:
基于在医学领域预训练后的双向自注意力语义编码器,在经过数据增强的训练集Dda上结合医学领域词向量进行词汇增强调整训练,得到最后的NER抽取模型,使用最后的NER抽取模型对规则抽取模块输出的结构化文本进行编码,将编码得到的特征向量经过线性分类器,将得到的分类层向量输入到条件随机场中计算每个字符的标签转移概率,最后通过Viterbi算法进行解码得到最终每个字符的标签信息,基于标签信息得到实体起止位置和实体类别;
医学领域词向量的获取,具体过程为:
首先将专有语料Wmedical的文本切割至适配于词向量模型训练的输入长度;
然后使用Word2Vec模型中的跳字训练模式在切割好的文本上进行词向量训练,Skip-gram的训练目标是基于核心词w来预测核心词上下文context(w)里的所有词;
最后为了提高计算效率,采用负采样的优化方法,将多分类问题转化为二分类问题,只更新与当前样本相关的向量参数,经训练得到医学领域词向量;
采用条件随机场计算每个字符的标签转移概率,具体过程为:
首先将NER抽取模型编码输出的n维特征向量H={h1,h2,...,hn},经过一个线性分类层,得到的分类层输出向量O,如下公式所示;
O=WOH+bO
其中,hn为特征向量H的第n维向量,WO为线性分类层的变换矩阵,bO为线性分类层的偏差;
然后使用CRF进行转移概率计算,即对于一个需进行标注的序列y={y1,y2,...,yn},其概率如下公式计算:
其中,yn表示待标注序列y的第n个字符,T表示CRF的转移分数矩阵,y′表示所有可能的标注序列,表示概率最大标注的序列在第i个位置的分类层向量,/>表示可能的序列在第i个位置的分类层向量,/>表示概率最大标注的序列在从第i-1到第i个位置的转移概率,/>表示可能的序列在从第i-1到第i个位置的转移概率;
最后使用Viterbi算法进行解码得到该标注序列的标签;
词汇增强微调训练包括以下步骤:
S1、构建字符-词汇对序列:即对于输入的中文句子sc={c1,c2,...,cn},对句子每个字符cn利用医学领域词向量的词典匹配出包含该字符的潜在词汇,将该字符和匹配得到的词汇组成词汇对scw,表示为:
scw={(c1,ws1),(c2,ws2),...,(cn,wsn)}
其中,cn表示句子中第n个字符,wsn表示包含该字符的词汇组成的集合;
S2、设计词汇适配层结构:对于句子第i个位置的字符,将医学领域双向自注意力语义编码器某一自注意力变换层编码的字符特征与该字符对应词汇的词向量集合,使用非线性变换与字符特征向量进行维度对齐后,利用注意力机制将集合中每个词向量进行融合,最后将字符特征与融合后的词向量相加并进行归一化,得到最后词汇适配层的特征输出,表示为,
S3、将词汇适配层输出的结合特征注入到医学领域双向自注意力语义编码器第k和第k+1层自注意力变换层之间;
命名实体识别模块中医学领域双向自注意力语义编码器的获取,具体过程为:
首先收集医学领域的医学文本,进行文本预处理,得到专有语料Wmedical;
然后将专有语料Wmedical的文本切割至适配于预训练语言模型训练的输入长度;
对切割后的文本使用整词遮蔽,即对在预训练词表中的中文词汇或词级别字符,随机进行遮蔽处理,经整词遮蔽处理后得到遮蔽语言模型预训练数据集;
最后在预训练数据集上对BERT模型进行预训练,遮蔽语言模型任务的目标是通过语句的上下文信息预测使用被遮蔽处理的词汇或字符,从而使得原始的BERT模型学习到文本的上下文双向信息,通过上述预训练得到Med-BERT模型;
训练集Dda采用基于语言模型文本生成的数据增强方法,包括以下步骤:
1)、将原始人工标注好的NER训练数据Dori进行标签线性化:将文本的字符与原始的序列标注标签进行混合,把实体每个字符对应的标签放在字符前面,形成新的线性化标注数据,记该数据为Dman;
2)、从专有语料Wmedical中筛选出与心血管疾病相关的语料Wcardio,基于现有的医学实体词典,使用最大双向匹配法对Wcardio进行远程监督标注并进行标签线性化,得到数据Ddist;
3)、将数据Dman与数据Ddist合并为半监督线性化数据Dsemi,并将半监督线性化数据Dsemi输入至双向LSTM进行自回归的语言模型训练;
4)、使用训练好的自回归的语言模型生成带有序列标注标签的线性化文本数据Dgen;
5)、最后将线性化文本数据Dgen进行筛选得到数据Dfilter,将Dfilter的与线性化标注数据Dman合并,同时去线性化,即转化为与原始NER标注数据Dori相同的标注格式,将长度切割至适配于医学领域双向自注意力语义编码器的输入长度,得到经过数据增强的NER数据集Dda;
筛选规则为生成文本不为空,且生成的标签不乱序,生成的文本字符不能为标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056958.7A CN114530223B (zh) | 2022-01-18 | 2022-01-18 | 一种基于nlp的心血管疾病病历结构化系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056958.7A CN114530223B (zh) | 2022-01-18 | 2022-01-18 | 一种基于nlp的心血管疾病病历结构化系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114530223A CN114530223A (zh) | 2022-05-24 |
CN114530223B true CN114530223B (zh) | 2023-06-16 |
Family
ID=81621317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210056958.7A Active CN114530223B (zh) | 2022-01-18 | 2022-01-18 | 一种基于nlp的心血管疾病病历结构化系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114530223B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113435200A (zh) * | 2021-06-22 | 2021-09-24 | 上海交通大学医学院附属仁济医院 | 实体识别模型训练、电子病历处理方法、系统及设备 |
CN115019925A (zh) * | 2022-06-01 | 2022-09-06 | 科亚医疗科技股份有限公司 | 健康检查报告的自动分类方法及自动分类装置 |
CN115064255A (zh) * | 2022-06-27 | 2022-09-16 | 上海梅斯医药科技有限公司 | 一种就医费用预测方法、系统、设备及存储介质 |
CN114996213B (zh) * | 2022-07-01 | 2024-09-03 | 上海彬黎科技有限公司 | 一种文件系统图结构的构造方法 |
CN115171835B (zh) * | 2022-09-02 | 2022-12-23 | 北京智源人工智能研究院 | 病例结构化模型训练方法、装置和病例结构化方法 |
CN116259422B (zh) * | 2023-03-13 | 2024-02-06 | 暨南大学 | 基于虚拟数据增强的眼科疾病诊疗意见生成方法、系统、介质和设备 |
CN116719840A (zh) * | 2023-04-27 | 2023-09-08 | 百洋智能科技集团股份有限公司 | 一种基于病历后结构化处理的医疗信息推送方法 |
CN116631562B (zh) * | 2023-07-24 | 2024-02-27 | 北京惠每云科技有限公司 | 一种生成电子病历出院记录的方法、装置及电子设备 |
CN116631642B (zh) * | 2023-07-24 | 2023-11-03 | 北京惠每云科技有限公司 | 一种临床发现事件的抽取方法及装置 |
CN116994694B (zh) * | 2023-09-27 | 2024-01-09 | 之江实验室 | 基于信息提取的患者病历数据筛选方法、装置和介质 |
CN117095782B (zh) * | 2023-10-20 | 2024-02-06 | 上海森亿医疗科技有限公司 | 医学文本快速录入方法、系统、终端及编辑器 |
CN117253576B (zh) * | 2023-10-30 | 2024-03-05 | 来未来科技(浙江)有限公司 | 基于中文医疗大模型的门诊电子病历生成方法 |
CN117523593B (zh) * | 2024-01-02 | 2024-03-12 | 吉林大学 | 患者病历数据处理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111243699A (zh) * | 2020-01-14 | 2020-06-05 | 中南大学 | 基于字词信息融合的中文电子病历实体抽取方法 |
CN111783466A (zh) * | 2020-07-15 | 2020-10-16 | 电子科技大学 | 一种面向中文病历的命名实体识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705293A (zh) * | 2019-08-23 | 2020-01-17 | 中国科学院苏州生物医学工程技术研究所 | 基于预训练语言模型的电子病历文本命名实体识别方法 |
-
2022
- 2022-01-18 CN CN202210056958.7A patent/CN114530223B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111243699A (zh) * | 2020-01-14 | 2020-06-05 | 中南大学 | 基于字词信息融合的中文电子病历实体抽取方法 |
CN111783466A (zh) * | 2020-07-15 | 2020-10-16 | 电子科技大学 | 一种面向中文病历的命名实体识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114530223A (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114530223B (zh) | 一种基于nlp的心血管疾病病历结构化系统 | |
CN111274806B (zh) | 分词和词性识别方法、装置及电子病历的分析方法、装置 | |
CN110364234B (zh) | 电子病历智能存储分析检索系统及方法 | |
CN110335653B (zh) | 基于openEHR病历格式的非标准病历解析方法 | |
CN113806563B (zh) | 面向多源异构建筑人文史料的建筑师知识图谱构建方法 | |
CN112800766B (zh) | 基于主动学习的中文医疗实体识别标注方法及系统 | |
CN112151183A (zh) | 一种基于Lattice LSTM模型的中文电子病历的实体识别方法 | |
CN112784601B (zh) | 关键信息提取方法、装置、电子设备和存储介质 | |
CN112925918B (zh) | 一种基于疾病领域知识图谱的问答匹配系统 | |
CN116595195A (zh) | 一种知识图谱构建方法、装置及介质 | |
CN114417836A (zh) | 一种基于深度学习的中文电子病历文本语义分割方法 | |
Mukhamadiyev et al. | Development of language models for continuous Uzbek speech recognition system | |
Hsu et al. | Multi-label classification of ICD coding using deep learning | |
CN117954134A (zh) | 一种基于大语言模型的患者健康监测和干预系统 | |
CN116227594A (zh) | 面向多源数据的医疗行业高可信度知识图谱的构建方法 | |
CN114356990B (zh) | 基于迁移学习的基地命名实体识别系统及方法 | |
CN118035386A (zh) | 基于中文电子病历的主题分割方法 | |
CN117854715A (zh) | 基于问诊分析的智能助诊系统 | |
CN118016224A (zh) | 一种基于医疗大数据平台的智能病例分析辅助系统 | |
Satti et al. | A semantic sequence similarity based approach for extracting medical entities from clinical conversations | |
Duan et al. | Enhancement of question answering system accuracy via transfer learning and bert | |
CN113297851A (zh) | 一种针对易混淆运动损伤实体词的识别方法 | |
Ramachandran et al. | ArRaNER: A novel named entity recognition model for biomedical literature documents | |
CN116719840A (zh) | 一种基于病历后结构化处理的医疗信息推送方法 | |
CN115859978A (zh) | 基于Roberta部首增强适配器的命名实体识别模型及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |