一种中医病情文本相似度的计算方法与流程

文档序号:15636727发布日期:2018-10-12 21:34阅读:357来源:国知局

本发明属于自然语言处理技术领域,具体涉及一种中医病情文本相似度的计算方法。



背景技术:

中医辩证辨病常采用援物比类、试探与反证的方法,对于病情的描述多是通过望、闻、问、切所得,通过望神、望面色、望形态、望局部、望排泄物、望舌;听声音、嗅气味;问寒热、问汗、问疼痛、问饮食与口味、问睡眠、问二便、问经带、问小儿;脉诊、按诊等方法得到病人身体状况描述,并记录为病情特点。

中医病情描述文本通常具备以下几个特征:

1)描述文本较长。中医对病情的描述包含身体症状表现和日常起居等多方面信息,其描述文本常有几百字以上,属于较长的文本;

2)包含多个病位症状。中医辩证通过望、闻、问、切的方式了解患者的疾病情况,对病情的描述包含身体各个部位的症状表现;

3)十分依赖语义信息。中医病情文本中包含许多对身体部位症状是否存在的描述语句,这些语句十分依赖语义信息,例如“眼睑浮肿”和“眼睑无浮肿”,相差一个字,语义却完全相反;

4)文本中夹杂一些检验数据。随着科技的发展,中医也开始借助一些仪器对患者进行体格检查,例如体温、心率等,这些检查结果以数字的形式混合在病情文本中。

传统的文本相似度计算方法,或是采用词袋模型、tf-idf特征,或是采用领域语义、主题词特征等,要么丢失了文本语义信息,要么语义信息过于简单。

公开号为cn103617157a的专利文献公开了一种基于语义的文本相似度计算方法,涉及面向文本的智能信息处理技术领域。其目的在于解决常规的文本向量空间模型及余弦相似度无法进行语义相关判断的问题。基于语义的文本相似度计算包括以下步骤:对文本集进行预处理,提取出初始特征词,将其表示成由关键词和概念两部分组成的向量模型;然后分别计算关键词部分的语义相似度和概念部分的语义相似度,通过对两部分进行求和最终得到文本的语义相似度。



技术实现要素:

本发明的目的在于提出一种中医病情文本相似度的计算方法,以文本语义分块为最小粒度来表示病情文本特征,通过计算两篇中医病情文本中相同病位的文本语义分块向量夹角的余弦值并做加权来计算两篇病情文本的相似度。

一种中医病情文本相似度的计算方法,包括以下步骤:

(1)基于规则和统计的短语识别,从原始中医病情文本得到文本块:加载中医术语表到分词工具包,使用分词工具对原始中医病情文本分词;采用停用词词库去除分词结果中的停用词;进行词语共现概率计算,当两个词语词性符合中文短语规则且共现概率大于给定阈值,则将这两个词语合并成短语,得到文本块;

(2)文本块划分,得到文本语义分块:对步骤(1)中的文本块进行短语识别和短语标记,得到病位短语和描述短语,两者合并得到文本语义分块;

(3)计算文本语义分块的权值;

(4)计算文本语义分块向量;

(5)组合步骤(3)和(4)分别得到的文本语义分块的权值和文本语义分块向量得到文本语义分块特征,组合若干个文本语义分块特征,得到病情文档特征;

(6)根据病情文档特征,计算文本相似度。

所述文本语义分块是指描述同一事物、病位或症状的相邻的多个短语或句子组成的块,其粒度大于短语小于段;所述粒度是指包含的汉字的个数。

所述文本语义分块包括一个或多个短语或者句子;所述文本语义分块中短语或句子描述的是同一病位、症状或者事物;所述文本语义分块中短语或句子在文本中的位置相邻。

所述步骤(1)中词语共现概率计算的方法为:

假设{t1,t2,t3,...tn}为所有文本分词后的结果,其中ti、ti+1为词语,n为分词结果中词语总数,ti由一个或多个字组成,表示为w1w2..wm,算法步骤如下:

按照相邻词语两两划分为一组的方式,将分词后的文本划分为二元组,其中每个二元组形如:titi+1;

统计分词结果中每个词语出现的频率p(t),并统计各个二元组titi+1出现的频率p(titi+1);

计算在词语ti(i∈1,2,...n)出现的情况下各个词出现的概率。

所述步骤(1)中合并短语的方法为:遍历分词结果,将符合中文短语词性搭配规则且p(ti+1|ti)大于给定阈值α的词语串合并成短语。

所述步骤(2)中短语识别和短语标记的方法为:将短语中的词与病位词词库中的词进行匹配,若匹配成功则标记该短语为病位短语(positionphrase,pp),否则,标记该短语为描述短语;所述描述短语是指病位症状描述短语(descriptionphrase,dp)。

所述病位词词库包含人体运动系统、消化系统、呼吸系统、泌尿系统、生殖系统、内分泌系统、免疫系统、神经系统、循环系统九大系统中各个病位词。

为了能正确标记那些不对任何病位症状做描述的句子,会将句号后面的第一个短语(即下一句话的第一个短语)标记为pp,最终,文本被标记成如下形式:

dk={pp1,dp11,dp12,...dp1mppi,dpi1,dpi2,...dpin}

其中,dk为第k篇文档,ppi为第i个病位短语,dpij为第i个病位短语后面的第j个描述短语。然后将ppi及其后面的病位短语dpij(j=1,2,...n)合并成块,即为所求的文本语义分块bi。

所述步骤(3)中的文本语义分块的权值是指文本语义分块在计算病情文档相似性中的权重,所述文本语义分块包括病位词;所述文本语义分块的权值由病位词的权值表示;所述病位词的权值通过计算语料集中病位词的文档频率df值得到。

一种疾病,其症状表现包括主要症状和次要症状,主要症状是指该种疾病一定会表现的症状,次要症状是指可能由该疾病引起的并发症。因此对于病情文本的相似性计算,需要考虑症状的主次地位,而不能一概而论。例如感冒主要症状是发热,而咳嗽则是次要症状,对于两个感冒患者的病情描述“发热,且咳嗽”和“发热,没有咳嗽”,在计算相似度时,如果不考虑主次性,则两个病情的描述相似性很低,但实际上,这两个病情都是感冒,是极为相似的。

例如训练语料集包含n篇原始中医病情文本,则可以计算各个病位词在这n篇文本中的文档频率df(documentfrequency)值,df值越高说明医生越倾向问该病位的症状,则该症状越可能是区分疾病类型的主要症状。权值wi计算公式如下:

wi=dfi+α

其中,ni为词语i语料集中出现的文本数量,α为基本权值:即,不包含任何病位词的文本语义分块的权值。

所述步骤(4)中的文本语义分块向量计算方法,包括以下步骤:

(4-1)对文本分词分块后,将一个文本语义分块作为doc2vec的一个完整输入,进行词向量训练,得到doc2vec模型;

(4-2)通过doc2vec模型,将文档的每一个文本语义分块转换为相应的向量,从而将整篇病情文档转换为块向量序列,令wm表示文本语义分块bm的权值,vec(bm)表示文本语义分块bm的特征向量,则病情文档dk特征f(dk)即为:

f(dk)=((w1,vec(b1)),(w2,vec(b2)),...(wm,vec(bm)))。

例如对于文档dk,假设dk包含m个文本语义分块,即dk={b1,b2,b3,...bm},其中bi为文本块i,bi由若干个句子或短语组成,bi对应的文本块特征记为f(bi),则有:

f(bi)=(wbi,vec(bi))

其中为文本语义分块bi的权值,vec(bi)为文本语义分块bi的特征向量;则病情文档dk的特征f(dk)可以记为:

f(dk)=(f(b1),f(b2),f(b3),...f(bm))。

所述步骤(6)中文本相似度的计算方法为通过计算文本语义分块向量的余弦相似性来衡量同一个病位的症状相似程度,并且采用权重进行加权得出中医病情文本的相似度。

所述余弦相似性的计算方法为:

其中,b1p为第一篇中医病情文本中编号为p的文本语义分块、b2q为第二篇中医病情文本中编号为q的文本语义分块;vec(b1p),vec(b2q)分别为b1p和b2q的块向量,w1p为b1p的权值;f(w1p,w2q)为sim(vec(b1p),vec(b2q))的权值;||vec(b1p)||和||vec(b2q)||为vec(b1p)和vec(b2q)的模。

f(w1p,w2q)的取值意义是:当块b1p和块b2q是对同一病位的描述,才计算块对应向量的余弦夹角;反之,当块b1p的权值w1p不等于块b2q的权值w2q时,则说明两个块不是对同一病位的描述,因此也没有计算相似性的价值。

所述采用权重进行加权得出中医病情文本的相似度的计算方法为:

sim(vec(b1p),vec(b2q))为块向量vec(b1p)和vec(b2q)的余弦相似性,m,n分别为第一篇和第二篇中医病情文本中文本语义分块的数量。

假设两个中医病情文本d1和d2,计算出的块向量特征f(d1)和f(d2)表示如下:

f(d1)=((w11,vec(b11)),(w12,vec(b12)),...(w1m,vec(b1m)))

f(d2)=((w21,vec(b21)),(w22,vec(b22)),...(w2n,vec(b2n)))

其中,bij为第i篇医病情文本编号为j文本语义分块,wij为文本语义分块bij的权值,vec(bij)为文本语义分块bij的块向量,m,n分别为中医病情文本1和2中文本语义分块的数量。

则中医病情文本d1和d2可通过计算语义分块向量的余弦相似性来衡量同一个病位的症状相似程度,并且采用权重进行加权得出中医病情文本的相似度。

在中医病情文本中,包含多个病位的症状描述,一个病位的症状描述多是对应于一个或多个短语或者句子,一篇病情文本可以看作是多个病位症状的文本语义分块描述语句组成的集合,本发明通过划分出各个病位症状的文本语义分块,并计算出各个文本语义分块的语义向量,通过计算病情文本中相同病位的文本语义分块向量的余弦夹角并做加权来计算两篇病情文本的相似度。

本发明提供的中医病情文本相似度的计算方法克服了传统文本相似度计算方法或丢失语义信息,或不能突出病因主次的缺点,以病位的文本语义分块为最小粒度来表示病情文本特征,通过计算两篇病情文本中相同病位的本语义分块向量夹角的余弦值并做加权来计算两篇病情文本的相似度。

附图说明

图1为本发明提供的计算方法的流程示意图;

图2为本发明提供的计算方法中得到文本语义分块的具体流程示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。

如图1所示,一种中医病情文本相似度的计算方法,包括以下步骤。

(1)基于规则和统计的短语识别,得到文本块。

具体流程如图2所示,加载中医术语表到分词工具包,使用分词工具对原始中医病情文本分词,采用停用词词库去除分词结果中的停用词;进行词语共现概率计算,当两个词语词性符合中文短语规则且共现概率大于给定阈值,则将这两个词语合并成短语,得到文本块。

(2)文本块划分,得到文本语义分块。

进行短语识别和短语标记,得到病位短语和描述短语,两者合并得到文本语义分块。

(3)计算文本语义分块的权值。

(4)计算文本语义分块向量。

(5)组合文本语义分块特征,得到病情文档特征。

(6)根据病情文档特征,计算文本相似度。

假设有两段病情文本,文本a和文本b,内容分别如下:

文本a:

颈静脉无怒张,咽红,扁桃体未见肿大,双肺呼吸音稍粗,未及明显干湿性啰音;腹软,无压痛及反跳痛,双肾无叩痛,双下肢不肿。

文本b:

热性面容,咽红充血,扁桃体未及明显肿大,两肺呼吸音粗,未及明显干湿啰音,纹理增多。

对文本a和文本b进行相似度计算。

1、经过步骤(1)中的分词和去停用词得到如下文本,其中采用ansj分词工具进行分词:

文本a:

颈静脉无怒张,咽红,扁桃体未见肿大,双肺呼吸音粗,未干湿性啰音;腹软,无压痛反跳痛,双肾无叩痛,双下肢不肿。

文本b:

热性面容,咽红充血,扁桃体未肿大,两肺呼吸音粗,未干湿啰音,纹理增多。

2、经过步骤(1)中的中文短语规则和词语共现概率计算,进行词语合并,得到结果如下:

文本a:

{颈静脉}{无怒张,}{咽红,}{扁桃体}{未见肿大,}{双肺}{呼吸音粗,}{未}{干湿性啰音;}{腹软,}{无压痛}{反跳痛,}{双肾}{无叩痛,}{双下肢}{不肿。}

文本b:

{热性面容,}{咽红}{充血,}{扁桃体}{未肿大,}{两肺}{呼吸音粗,}{未}{干湿啰音,}{纹理增多。}

3、经过步骤(2)中的短语识别和短语标记,得到病位短语和描述短语,两者合并得到文本语义分块,其中颈静脉、咽、扁桃体、肺、腹、肾、下肢都属于病位词,得到结果如下:

文本a:

{颈静脉无怒张,}{咽红,}{扁桃体未见肿大,}{双肺呼吸音粗,未干湿性啰音;}{腹软,无压痛反跳痛,}{双肾无叩痛,}{双下肢不肿。}

文本b:

{热性面容,}{咽红充血,}{扁桃体未肿大,}{两肺呼吸音粗,未干湿啰音,纹理增多。}

4、文本块划分后,文本a包含7个病位的文本语义分块,文本b包含4个病位的文本语义分块,假设语料库中只包含a和b两个文本,α取1,则各个块的编号,权值,向量如表1所示。其中,文本语义分块向量依赖于doc2vec训练模型的语料,需根据实际语料进行计算。

表1文本a和文本b中文本语义分块的权值和向量

5、组合表1中文本a和文本b中的文本语义分块特征,得到病情文档特征。

6、根据病情文档特征,计算文本相似度。

依据如下公式计算文本a和文本b的相似度。

其中,在文本a和文本b的文本语义分块中a2和b2为同一病位的文本语义分块,a3和b3为同一病位的文本语义分块,a4和b4为同一病位的文本语义分块。

其中:指文本语义分块a2和b2向量夹角的余弦值;指文本语义分块a2和b2的向量夹角的余弦值;指文本语义分块a2和b2的向量夹角的余弦值。

上述的对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1