生物医学文本挖掘:步骤与工具
2017-01-27
生物医学文本挖掘已经从概念介绍与前景展望进入到实际应用阶段,越来越多的生物医学领域的专业人员开始应用文本挖掘工具来解决实际的生物学乃至临床问题。
简单地说,文本挖掘(Text Mining,TM)就是自动分析和处理文本。比较流行的定义是指利用计算机,通过自动抽取和关联来自不同文本资源的信息,发现新的、以往未知的信息,显示其隐含的意义。文本挖掘所发现的事实和形成的假说还要通过实验加以验证[1]。本文介绍文本挖掘的主要步骤及相应的工具,包括信息检索、命名实体识别、信息抽取、知识发现和可视化表达。
1 信息检索(Information Retrieval,IR)
文本挖掘的第一步是检索与某一特定主题相关的文本资源,一般采用对书目文献数据库关键词或主题词查询的方法。在生物医学领域开展文本挖掘最常用的文献数据库是PubMed,这是因为MEDLINE数据库免费、提供丰富的编程接口并用MeSH主题词标引。利用MEDLINE数据库进行文本挖掘的工具软件目前层出不穷,已经成为信息检索领域里的重要资源。文本挖掘的工具软件也增强和优化了这些数据库检索功能,比如利用受控词表将同义词等映射到统一的概念上,同时对检索结果中的文献记录进行进一步的分析和分类,抽取含有检索概念的句子等。除了科研论文,还应当注意到专利、医疗记录、药品管理机构的报告、流行病学监测报告、与健康有关的博客和网站中的文本都可以作为文本挖掘的样本[2-5]。
2 命名实体识别(Named entity recognition,NER)
所谓命名实体就是文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体也可以说是明确表述一个事物或者概念的一个或者一组关键词。命名实体识别就是把在文本中找到的关键词与文中所指的特定概念对应起来,因此命名实体识别不仅要完成识别出这些实体的任务,还要把表述同一个生物学概念的实体名称统一起来。如在某一个文本中不仅能通过基因符号(gene symbol)识别出这个基因,也可以通过其同义词或者以往的名称识别出该基因,同样,也可以识别出文本中不同常用名、商品名及同义词的同一种药物。文本挖掘的工具或者数据库一般是把识别出来的术语高亮显示出来并且提供这些术语与原始概念的链接,如IHOP服务器就识别出蛋白质的名称和MeSH词并将其在从文本中抽出的句子中高亮表达[6]。目前,命名实体识别的主要方法包括基于词表的、基于本体的和基于机器学习的3种算法。
2.1 基于词表的识别方法
多数的文本挖掘系统都是基于受控词表的,词表中按照主题或者分类组织关键词。如Whatizit利用预先从各个数据库中搜集到的基因、蛋白质、通路、药物和疾病的术语预制出词典,可以对任何文本进行命名实体识别[7]。CoPub则专门制作了一个肝脏病理术语词表,用于毒理学研究中对基因表达实验所涉及到的药物进行注释[8]。
2.2 基于本体的识别方法
本体(ontology)可以理解为一种更为高级的受控词表。本体与词表最大的区别就是概念及描述这些概念的关键词定义的更加正式,并且对概念间的关系和规则做出了特殊的规定。由于本体使用正式的结构并且将领域特有的信息进行了分类,如生物学通路或者疾病,因此可以用于文本挖掘。Younesi等开发了一个专门用于从文献中检索生物标记物知识的生物标记物本体,本体中的概念涉及到生物标记物研究的各个类别,如临床管理、诊断和预后及其统计[9]。他们利用这个本体检索非小细胞肺癌和神经退行性疾病的生物标记物。本体可以帮助扩展和重建关键词检索的策略,通过使用MeSH主题词的树状结构信息,显著改善了图像检索系统[10]。很多专门的本体可以免费获取,BioPortal for Biomedical Ontologies[11]搜集了大量的此类本体供下载和浏览。很多文本挖掘软件将本体安装在自己的系统内来构建检索策略和可视化表现及分类检索结果。
2.3 基于机器学习的识别方法
具体算法包括隐马尔科夫模型(hidden Markov models ,HMM)、最大熵马尔科夫模型(maximum entropy Markov models,MEMM)、条件随机场(conditional random fields,CRF)以及支持向量机(support vector machines,SVM) 。在开始真正的命名实体识别之前,首先要在能代表实际数据集的结构化注释的训练数据集里进行严格训练,利用机器学习的文本挖掘系统可识别文本中的化学实体[12],或与规则和词典算法结合识别文本中的生物名称[13],抽取健康档案中的癌症分期信息以辅助临床决策[14]。
3 信息抽取(Information Extraction,IE)
信息检索和命名实体识别之后,就要用到特殊的算法来发现文本中概念之间的关系。通过将概念链接起来,给概念添加了额外的信息,产生了可以在随后进行分析的有价值的知识。当前,从文本中抽取这些知识的主要方法包括共现分析法和自然语言处理方法(Natural language processing,NLP)。
3.1 共现分析法
共现分析法的理论基础是:如果两个概念经常一起在同一文本中出现,那么这两个概念之间就有语义上的相关。如视黄醇结合蛋白4(retinol-binding protein 4,RBP4)和胰岛素抵抗经常在MEDLINE文摘中共现,表明基因与疾病之间有着功能上的联系。实际上,很多文本中共现的关键词并没有功能上联系。为了修正这种误差,共现分析方法利用两个关键词各自出现的频数进行评分,来表现关键词之间关系的重要程度,以此筛选出重要的功能上的联系[15]。共现分析法在命名实体识别中很容易实施,但是不能指出概念间的关系具体是什么关系。因此与自然和语言处理方法相比,其查全率很高但是查准率很低。
3.2 自然语言处理方法
自然语言处理利用计算机处理自然语言(即人类语言)。自然语言处理方法的基础是有关语言结构的先验知识和文献中生物学信息表达方式的专门知识。自然语言方法可以发现文本中的主谓宾三元结构,如基因A抑制基因B,或者基因C与疾病G有关等等,其与共现分析法的不同是提供了两个概念间具体的关系信息。因此,以词组为基础的自然语言处理方法与共现分析法相比,往往有较高的精确度但是抽取出的往往是预先定义好的概念关系。一般自然语言处理方法要比共现分析法更消耗计算机资源。另外,通过训练集获得的特定关系往往受到训练集数据的规模和质量的限制,如果需要发现更多的关系就可能力所不及。另一方面,开放式信息抽取方法不依赖于特定的动词和名词,而是注重在文本中关系是如何定义的,因此可以抽取出无限多的关系。
在实际研究中往往采用混合的方法,即采用共现分析法发现概念间存在关系,然后采用自然语言处理方法发现具体关系的性质。MEDLINE就使用自然语言方法发现概念之间的关系,用户可以在界面输入来源或者目标概念,定义想要了解的相互作用,如阻滞、结合、调节等。该系统返回给用户MEDLINE文摘中有关概念之间的描述,可以帮助用户获得药物(来源)和药物靶标(目标)之间是否存在相互作用,如“what binds to IP-10?”,但是也可以使用很多更为通用的术语,如“what causes rheumatoid arthritis?”[16]。
4 知识发现(Knowledge Discovery,KD)
如果遵循文本挖掘的定义,严格地说大多数文本挖掘系统只能算作为信息抽取系统,即抽取已经发表的概念之间的关系并对其进行排序。尽管如此,这些系统把已知的事实系统地搜集在一起,如果按照反复迭代的方式使用这些系统,也能根据从文献中获得的已知事实推导出关键词之间的新关系。
基于文献的知识发现(Literature-Based Knowledge Discovery,LBD)由D. Swanson于1986年提出,其主要原理称为ABC模式:如果A和C分别是两个从来没有在同一文本中同时出现的关键词,但是它们又分别都提及到同一组关键词B,那么A和C就有着间接联系。Swanson自1986年首次提出食用鱼油可能对雷诺氏病病人有益处之后,他又开展了一系列研究证明ABC规则的有效性,如偏头痛与镁缺乏、摄取精氨酸与血中生长调节素水平有关[17-19]。
ABC模式在概念上比较简单易懂,但是实施中要求比较严格,要通过严格的统计才能发现有效的预测,并估计预测的假阳性率。
利用ABC模式进行基于文献知识发现的相关工具可以分为开放式和闭合式两种。最早的工具遵循Swanson的思想,采用的是闭合模式,用户首先要确定关键词A和C,探索发现是否能找到能把A和C联系起来的概念B。最早Swanson等开发的Arrowsmith就是采用该方式[20]。ChemoText根据MEDLINE文摘将化学物质与疾病链接起来[21],有学者利用这个大型数据库发现与新的偏头痛有关的化合物[22]。
在采用开放模式的工具中,用户先确定一个目标概念A,以及可能的中介概念B,系统会自动返回所有可能有关的概念C。Bitola则是采用了开放与闭合并存的模式[23],CoPub则采用的是开放式的发现模式。
ABC发现模式进一步深入发展后,出现了关键词概念谱(keyword concept profiling)的方法。如对于某一个基因,统计出在文献中发现的所有与该基因有某种关系(如共现关系)的关键词,列表后就如同绘制出了该基因的概念谱。根据基因的概念谱,利用普通聚类技术就可以把相关的概念聚成类。例如,如果一种药物与一种疾病有相似的概念谱,那么它们之间可能有生物学关关系;如果被聚类到一起的相关概念从没有在一篇文本中出现过,可能代表着新的知识,应当特殊关注。Anni软件就采用概念谱的理念使用微阵列数据成功地预测了细胞类型和信号传导通路[24-27]。
5 可视化(Visualization)
文本挖掘的最后步骤是对抽取到的知识进行可视化表达,用可视化表达快速和正确地解释挖掘结果,并指导研究人员构建新的假说开始下一步实验研究。
大多数检索系统可以把文本中通过命名实体识别出来的概念高亮显示出来,有的还提供概念与来源文献间的链接进而提供更多的相关信息。概念之间的关系可以用表格表现出来,表格中概念按照评分过滤和排序,可以用于开展深入实验的基因、药物或者疾病[28-30]。
5.1 文献网络(Literature Network)
大多数文本挖掘工具的目标是显示文本中发现的概念间的链接,因此人们首先想到用文献网络表示挖掘结果。String、CoPub、PubViz及PubNet都可以生成网络,网络中的节点是概念,而边则是通过文献建立起来的。一般网络中的边可以链接到把两个概念连接起来的文献,节点则可以链接到提供该概念信息的数据库。这里要特别提到一种语义网络技术,即将其他科研数据整合到网络中来富集文献网络[31]。 OpenPhacts就把临床、生物学和化学数据整合到药学实体中,为药物发现提供帮助[32]。Leach等开发出Hanalyzer系统预设了来自8 000多鼠基因的生物学网络,利用本体术语定义将文献中的发现与之匹配起来,并连接到多个基因表达数据库[33]。利用这个网络他们分析来自鼠颌面部发育的转录组数据集。
文献网络可以把两个概念间的链接绘制在一个空间,可视化表示概念间的多种联系,由此可以显现概念间非直接的联系,有助于了解基因间的新的关系以及未知的基因与疾病之间的联系,此外还可以通过查询基于网络的聚类工具发现这些文献网络中生物学相关的基因类群。
5.2 词云(Word Cloud)
词云主要用于显示在文本中频繁出现的单词,词云图中,出现频次高的单词字号就大一些。该技术对于了解文本中会出现哪些概念特别有用。如在MEDLINE中检索所有有关嗜热链球菌、沙眼衣原体和结核分支杆菌等3种微生物的文摘,去掉常用词,保留有意义的单词并计数,利用词云表示最常见的单词[34]。3种微生物文献的词云显示了这些微生物的生物学属性以及它们的应用。如在嗜热链球菌的词云中,显示出“酸奶”“意大利干酪”“产胞外多糖”,精确地表明嗜热链球菌在奶制品生产中的重要作用;而沙眼衣原体的词云则表明沙眼衣原体与可以导致“不育”和“输卵管炎”的衣原体感染有关,并提示衣原体传播途径,如“性”“接触”以及预防方法“安全套”。
因为没有采用预设好的概念集或者本体, 词云技术不会产生偏移;也因为来自于比较粗糙的原始文本,可以显示出新理念并了解特定概念,可以在开始更专门研究之前用词云初步了解领域概况[35]。
综上所述,文本挖掘的主要步骤包括信息检索、命名实体识别、信息抽取、知识发现和可视化表达,研究人员针对每一步骤都开发出了相应的数据库与软件工具,并免费提供使用,为同行开展研究提供了良好的条件。在使用中需要注意的问题包括了解数据的性质以及适用的分析方法,掌握具体算法的基本原理,牢记数据挖掘分析的疆界,充分与专业人员沟通,小心提出结论和假说。