黄文博,燕 杨,李 博
(1.长春师范大学 计算机科学与技术学院,长春 130032; 2.吉林大学 通信工程学院,长春 130012;3.深圳电信研究院,广东 深圳 518048)
文本病历是医务人员通过文字处理软件对患者医疗活动过程的记录,合理并有效地利用文本病历可为医务人员提供较客观的诊断依据及辅助诊疗信息,也可为探索疾病规律提供重要依据[1].面对“海量”的文本病历,如何全面、 准确和快速地进行语义提取、 标注与检索已成为学术界的研究热点之一.文献[2]提出利用“面向标引”的关键词语义树模型对文本进行语义分析,利用该模型可实现浅层语义文本的检索;文献[3]提出将PLSA(probability latent semantic analysis,概率潜语义分析)模型用于中文信息检索,相对于传统的LSA(latent semantic analysis,潜语义分析)模型提高了检索的平均精度;文献[4]提出了LSA-tree(latent semantic analysis-tree,潜语义分析树)模型,将其应用于医学文本的自动批注,提高了批注的准确率.
树模型、 PLSA模型和LSA-tree模型是目前在文本语义分析领域内较主流的研究方向.通过树模型进行语义分析可挖掘出语义元素的关联性,如空间分布、 语义相关及相对位置等; 通过PLSA模型进行语义分析可从统计学的角度挖掘文本词汇间存在的潜在关联性; LSA-tree模型可较好地完成文本的自动批注.但在对医学文本数据进行语义分析时,以上语义建模方法存在如下不足:树模型缺乏从隐含语义的角度对文本数据进行分析; PLSA模型在建模过程中忽略了文本数据中语义元素的结构、 位置和层次等浅层语义特征; LSA-tree模型仅能满足小规模的医学文本处理.为了解决医学文本语义分析技术存在的问题,本文设计一种融合PLSA模型与树模型的PLSA-tree模型,利用该模型可实现对文本病历从字面语义到隐含语义的综合提取并检索.PLSA-tree模型建模步骤如下:
1) 利用语义窗口对文本进行分割(分词);
2) 利用树模型将窗口中的词划分为若干子树,确定核心词与相关词;
3) 计算子树中核心词与相关词间的浅层语义参数;
4) 利用PLSA模型计算核心词之间的关联性.
本文通过对150份文本病历语义分解和检索实验表明,所设计的PLSA-tree模型可更准确和全面地表达医学文本数据的语义信息,降低了原LSA模型和LSA-tree模型的复杂度,解决了医学文本语义消歧问题,提高了检索匹配率和检索精度.
文本病历是由医务人员自主编写的叙述性文字,属半结构化文本,有一定的约束格式,但不完全符合自然语言的语法规则.为便于理解,本文将文本病例中命名实体和描述主体的医学术语在语义上定义为“核心词”,将与“核心词”共同构成完整语义的词语定义为“相关词”[5].根据核心词与相关词的语义关系,一段包含完整语义的文本可视为核心词wc与相关词wRi(i=1,2,…,N)组成的可变阶Markov链信源[6],语义函数可定义为核心词与相关词之间Corr(wc,wRi)的集合,即S(wc)=(Corr(wc,wRi))i=1,2,…,N.
文本病历中的语法结构通常是由多个短分句构成复句的格式,复句中的分句在语义上存在逻辑关联,但分句与复句均不能作为单独的语义被处理,所以在建模前必须利用“语义窗口”对文本进行分割(分词),分割前需进行如下假设:每个短分句中只包含一个核心词,且各短分句间的核心词没有语义关联.语义窗口确定的前提是核心词的筛选,本文采用信息熵算法进行筛选.病历文本中第i个词的信息熵为
其中:kit表示词wi在文本中出现的次数;T表示文本病历的总数.ρ(i)越大词wi的信息熵越大,根据信息熵原理[7]:一个医学术语在一个文本病例中出现次数越多且该医学术语在多个文本病例中出现次数越平均,则该医学术语的信息熵越大,其能提供的信息量也就越少,所以利用病历文本中词信息熵ρ(i)阈值的方法进行核心词筛选.
文本病历具有高维性和异质性的特点[8],主要表现为文本的复杂度(维数)高,且对某一固定概念表述的非标准化,即不同医务人员对同一医学数据可能会使用不同术语及不同的语法进行表述,不利于文本病历的分析、 检索和利用.
PLSA模型可在一定程度上解决文本病历中的高维性和异质性问题,PLSA模型是LSA模型的改进,PLSA模型隐含的Multi-nomial分布假设更符合文本特性,通过降低文本维度获取文本病历和词之间及文本病历之间的相似度在低维潜在语义空间中的可靠估计[9],有良好的语义消歧作用.
利用PLSA建立“文本-潜在语义-词”概率模型,“文本-词”同现的联合概率模型如下[10]:
其中:p(di)表示从文本集中选择第i篇文本的概率;p(zk|di)表示在确定文本di的条件下属于潜在语义zk的概率;p(wj|zk)表示潜在语义zk在词wj上的分布概率.
实验表明,随着医学文本集合的增加,PLSA模型语义分析效率明显下降,所以需要引入并构建概率潜在专业词典以提高语义分析效率[11].专业词典用矩阵D表示:D=(D1,D2,…,DW),其中:
式中P(wx|wy)是词wx对词wy的概率,每个词的概率都用PLSA模型概率计算:
其中Z为文档中所有核心词的集合.
针对树模型和PLSA模型在医学文本病历语义分析中的缺点,本文提出融合两种模型进行建模,利用概率隐含语义函数表达核心词之间的语义关联,表示为
其中: Dist表示模型中两行或两列的距离;n表示行或列的维数;η表示修正参数.
多层次的语义建模思想应充分结合文档的结构信息、 构成文档词的信息和词与词之间的语义关联信息,所以融合PLSA的语义树建模思想应该为:句子由在语法层次得到的树模型表示; 浅层的语义关联由字面语义信息表示; 深层的语义关联由PLSA模型表示.
该模型可将文本病例中的语法结构、 字面语义和隐含语义有机融合,通过语义计算文本病例之间、 文本病历与医学专业术语及医学专业术语之间的语义关联,从而可准确、 全面地的表述文本病历的语义特征信息.在该模型中,子树中任意词之间的语义相关函数Corr(wx,wy)可表示为
其中: 式(1)为两个词都在同一子树的情况; 式(2)为两个词都是核心词的情况; 式(3)为核心词与相关词不属于同一子树的情况; 式(4)为两个相关词不属于同一子树的情况.
实验使用的操作系统环境为Windows XP,开发软件为ActivePerl 5.14.2.1402和Matlab7.14; 辅助工具为Notepad++6.2.3.
实验对象由80位不同的医务人员编写的150份文本病历组成,病历的文件格式为TXT文件,每次实验随机抽取15个文本病历进行语义计算.
实验分别根据语义树模型和PLSA-tree模型(增加专业词典)对文本病历进行语义分解.词典含词量为通用词词典185 769词,专业词词典625词,停止词词典50词,核心词词典65词.对15个文本病历进行的分词对比实验如图1所示.实验结果表明,采用PLSA-tree模型的语义分解精度明显提高.
此外,语义分解所需的时间是衡量语义模型的一个重要指标,比较PLSA-tree模型和全文PLSA模型两种方法在分解时间上的区别,结果列于表1.由表1可见,随着文本病历数的不断增加,利用PLSA模型进行语义分解的时间迅速增加,这是因为在语义分解过程中需要分解的词过多,直接导致矩阵运算的复杂度增加.而利用本文设计的PLSA-tree模型,由于将医学专业术语的核心词构成了专业词典,降低了矩阵运算的复杂度,所以语义分解所用时间和增长幅度都低于PLSA模型.
语义检索实验建立在语义分解实验的基础上,实验分别利用PLSA模型和PLSA-tree模型对已经形成文本病历的语义数据库进行检索.PLSA-tree模型的检索流程如图2所示.
图1 分词精度Fig.1 Accuracy of words segmentation
图2 文本病历语义检索流程Fig.2 Semantic retrieval processes of text medical records
查准率和查全率是衡量语义检索的重要指标:
其中“匹配正确的病例数”和“应该匹配到的病例数”由专业医务人员参考检索文字与匹配的结果给出.根据文献[12]中衡量语义匹配度需要设定评估指标F1测试值:
利用PLSA模型和PLSA-tree模型检索匹配度结果列于表2.
表1 语义分解时间对比(s)Table 1 Time comparison of semantics segmentation by PLSA and PLSA-tree models (s)
表2 检索匹配率对比(%)Table 2 Comparison of retrieval matching rate by PLSA and PLSA-tree models (%)
基于PLSA-tree模型检索的匹配度分散性较高,主要原因是PLSA-tree模型检索匹配的复杂度和难度随着输入检索文本的长度、 分解子树数量和替换隐含语义子树时间等因素的变化而变化,但PLSA-tree模型检索的匹配度明显高于当前较主流的PLSA模型的检索匹配度.
综上所述,基于文本病历的语言特点,本文将语义树模型和PLSA模型融合,解决了文本病历语义分析过程中存在“多词一义”的情况,降低了语义维度,简化了窗口语义树的结构.通过语义分解和语义检索实验进一步验证了采用PLSA-tree模型的优越性.
[1] 刘全喜.医疗文书规范与管理 [M].郑州:河南科学技术出版社,2003: 1-2.
[2] ZHAO Jun,JIN Qian-li,XU Bo.Semantic Computation for Text Retrieval [J].Chinese Journal of Computers,2005,28(12):2068-2078.(赵军,金千里,徐波.面向文本检索的语义计算 [J].计算机学报,2005,28(12):2068-2078.)
[3] LUO Jing,TU Xin-hui.Chinese Information Retrieval Based on Probabilistic Latent Semantic Analysis [J].Computer Engineering,2008,34(2):199-201.(罗景,涂新辉.基于概率潜在语义分析的中文信息检索 [J].计算机工程,2008,34(2):199-201.)
[4] LI Bo,WEN Dun-wei,WANG Ke,et al.Automatic Annotation for Medical Texts Based on Hidden Topic and Semantic Tree [J].Journal of Jilin University: Engineering and Technology Edition,2012,42(1):234-239.(李博,文敦伟,王珂,等.基于隐含主题和语义树的医学文本自动批注 [J].吉林大学学报: 工学版,2012,42(1):234-239.)
[5] Nelson S,James T,Dan-Sung C,et al.Medical Subject Headings(MeSH) [EB/OL].2011-06-22.http://www.nlm.nih.gov/mesh/.
[6] Ginter F,Suominen H,Pyysalo S,et al.Combining Hidden Markov Models and Latent Semantic Analysis for Topic Segmentation and Labeling:Method and Clinical Application [J].International Journal of Medical Informatics,2009,78(12):e1-e6.
[7] WU Jun,WANG Zuo-ying.The Entropy of Chinese and the Perplexity of the Language Models [J].Acta Electronica Sinica,1996,24(10):69-71.(吴军,王作英.汉语信息熵和语言模型的复杂度 [J].电子学报,1996,24(10):69-71.)
[8] ZHANG Hao,CUI Lei.Research Advances on Biomedical Knowledge Discovery in Text [J].Journal of Medical Informatics,2008,29(9):5-9.(张浩,崔雷.生物医学文本知识发现的研究进展 [J].医学信息学杂志,2008,29(9):5-9.)
[9] Dumais S.Latent Semantic Indexing [C]//The 2nd Text Retrieval Conference.[S.l.]: Department of Commerce,National Institute of Standards and Technology,1994:105-116.
[10] HU Wen-jing.Research of Text Sentiment Classification Based on Semantic Comprehension and PLSA [D].Tianjin:Tianjin Normal University,2012.(胡文静.基于语义理解与PLSA的文本情感分类研究 [D].天津:天津师范大学,2012.)
[11] LI Sheng,HU He-ping.An Effective Retrieval Method Based on Probabilistic Latent Semantic Analysis [J].Journal of Huazhong University of Science and Technology: Natural Science Edition,2010,38(11):48-50.(李胜,胡和平.一种基于PLSA的高效检索方法 [J].华中科技大学学报: 自然科学版,2010,38(11):48-50.)
[12] 崔雷.医学数据挖掘 [M].北京:高等教育出版社,2006:168.