购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第一节
医学文本数据及文本挖掘概述

一、非结构化文本数据的概念

文本数据是由多个存在逻辑关系的词组成的文字表述,不能直接作为变量进行统计分析。按照结构化程度可将文本分为结构化、半结构化和非结构化三类。结构化文本指逻辑上以表格或其他严格统一形式存储的文本,如csv文件、dsv文件等,具有相当强的格式性,其中的文本含义很容易由事先的定义得出,这类文本一般很容易处理。半结构化文本是结构与内容混合在一起的文本,兼具格式性和可扩展性,常见的半结构化文本有超文本标记语言(hypertext markup language,HTML)文档、JS对象标记(JavaScript object notation,JSON)文档等。非结构化文本指完全没有结构或只含有语义结构的一类文本,是以文本(如字符、数字、标点符号、各种可打印的符号等)作为数据形式的非结构化数据,其典型代表如图书馆数据库中的文档,其中包含大量非结构化文本成分,如摘要和正文内容。这类文本扩展性很强,难以通过统一的规则进行处理,因此提取文档中的信息时,需要利用机器学习方法。对于海量非结构化文本数据,一般使用文本挖掘技术进行信息的提取。

二、医学文本数据的特点

医学文本(以电子病历为代表)包括大量非结构化的自由文本信息,数据形式非常丰富,可包含有关临床病历的各种信息,例如病案首页信息、病程记录信息、物理检查结果、化验与实验室检查结果、病理分析信息、医生诊断记录以及相关的患者症状、主诉等数据信息。医学文本中虽然蕴藏着丰富的医疗知识,但由于医生自行输入文本信息(与之相对的是下拉菜单选择某信息),可能存在文本拼写错误、医学名词简写及不同医生不同地区的用语习惯存在差异等问题的特殊性,非结构化的医疗信息难以采用普通的方法进行分析。医学文本数据的特点如下:

1.数据多源复杂

临床医学具有极其复杂的特性,故描述疾病的发生发展、病情程度等情况的手段及形式多种多样,其数据形式也千差万别,医学实体(医学文本的基本信息单位)分布密集且类别丰富,包括疾病、症状、检查、检验、诊断、药品、手术等类别,医疗知识高度密集而且存在复杂的关系。

2.信息存在缺陷

临床病历和病案的有限性,使其所包含的医疗信息数据不可能全面反映某患者疾病的所有特征,文本信息描述疾病的客观不完整性和描述的主观不确切性,都导致了医学文本数据记录的信息存在缺陷。

3.多点时空掺杂

临床文本中可能包含患者在不同时间点和/或不同地点的事件,也包括其当前的就诊情况,这些事件可能具有时间依赖关系,可能存在相互关联,患者在不同时间和空间的信息可能非常相似而难以区分。

4.专业词汇繁多

医学是一门极其复杂且专业的学科,具有大量专业词汇。医学文本中,受不同卫生机构规范、不同医生和不同地区用语习惯等因素的影响,专业词汇的书写不一致现象多有发生,存在大量专业术语缩写,存在缺乏主语、边界模糊、语义模糊等问题。

5.逻辑关系特殊

医学文本与日常交流的普通语言和文章不同,描述的词语大多是医学专业词汇,词语间的逻辑关系和表达方式特殊,形成了一套往往只有医学专业人员才能理解的特殊体系。

三、文本挖掘的基本概念和原理

文本挖掘(text mining,TM)是数据挖掘的一种,近年来文本挖掘发展迅速,被用于销售报告的自动分析、生物医学领域的文献挖掘、开放式调查问卷的文本数据分析等。从技术上说,文本挖掘结合了数据挖掘和信息检索两门学科的内容。相对于传统数据挖掘,其特别之处在于所处理的数据是非结构化文本数据,比如医学文本数据。本书对其定义如下:文本挖掘是以计算机语言学、统计数理分析为理论基础,结合机器学习和信息检索技术,在大规模文本集合中发现并提取隐含的、未知的、潜在有用的信息的过程。其优势在于可以自动化处理大规模的文本集合,从文本信息描述到选取提取模式,最终形成用户可理解的信息知识,挖掘出隐藏在大量文本中的潜在的有价值的信息。

文本挖掘的对象可以是中文文本和英文文本,分词也包括中文分词和英文分词。两种文本的区别在于英文单词是空格隔开的,可以直接用最简单的空格和标点符号完成分词;而中文文本词与词之间没有空格,再加上语言的复杂性导致中文分词的难度增加,故需要用分词算法来完成分词。英文文本挖掘预处理时需要进行词干提取(stemming)和词形还原(lemmatization)。词形还原是把不同时态形式的词汇还原为一般形式,比如is-are-been可还原成be,它可以完整地表达语义。词干提取则指抽取词的词干或词根形式,比如playplaying-played,提取词干play,不一定可以完整地表达语义。简单理解,词形还原是基于词典,将单词的复杂形态转变成最基础的形态,通常提取后的单词是词典中的单词;而词干提取是去除单词的前后缀得到词根的过程,提取后的单词不一定出现在词典中。相同的是两者都是对词汇进行规范化从而找到词的原始形式。英文分词可通过Python中的自然语言处理工具包(natural language toolkit,NLTK)实现。相对于中文,对英文的文本挖掘相对容易且步骤类似,本章主要介绍中文文本挖掘方法,下面详细介绍中文分词方法。

分词是指对中文中的各个词进行分隔,且一般以语句为单位对各个词进行分离。例如“研究生需要经常阅读文献”分词后,变成“研究生/需要/经常/阅读/文献”,分词方法可分为有词典分词和无词典分词。

(一)有词典分词

也称基于规则的分词,是指分词系统利用系统内预先收集存储的词进行分词,这样能提高分词效率。根据字符串扫描方向的不同,将有词典分词分为正向匹配和逆向匹配;依据优先匹配的词长不同,分为最大匹配和最小匹配。常使用正向最大匹配分词和反向最大匹配分词。

1.正向最大匹配分词

当对一个句子进行分词时,从句子中指定的某个字开始往后寻找最长匹配词,找到后再接着找出下一个最长匹配词,以此循环,直到找到最后一个词,才算完成对整个句子的分词。

2.反向最大匹配分词

当对一个句子进行分词时,从句子中指定的某个字开始往前寻找最长匹配词,找到后再接着找出下一个最长匹配词,以此循环,直到找到最后一个词。

可以看出,与正向最大匹配分词不同,反向最大匹配分词是从句末至句首进行匹配,相当于对字符串反向查询。根据大量分词数据试验评价,反向最大匹配分词的精确率比正向最大匹配分词精确率高。当然不可否认的是两者都存在切分歧义的问题。

(二)无词典分词

也称基于统计的分词,是指分词系统在分词时系统内没有预先收集存储的词。基于统计的分词法是利用相邻字的共同出现的频率(共现率)作为分词标准的一种方法。其基本思想是根据两个字相邻出现的概率体现词的可信程度来判别。常见的统计分词模型有隐马尔可夫模型(hidden Markov model,HMM)、最大熵模型和N-gram模型等。基于统计的分词不需要相应词典的支持,对输入文本也不需要过多预先了解,但实际的应用中经常会提取出一些虚词,因此需要使用通用词典来匹配分词,同时利用统计的方法识别一些新词。本节将详细介绍N-gram统计分词技术。

1.基于词网格的N-gram统计分词技术

词网格(word lattices)指描述一个需要被分词的语句和其所形成的候选词共同形成的路径的方法。图4-1是“研究生需要经常阅读文献”所对应的词网格。

图4-1 词网格示意图

根据词网格,一个句子可能存在多种划分方法且对应不同的路径。所以构造好词网格后,分词问题就转变为寻找众多路径中最佳路径的问题。如何评价各个路径并找出最佳路径是基于词网格分词的主要任务。

2.N-gram模型

统计语言模型中,将自然语言看作一个随机过程,其中每一个语言单位包括字、词、句、段落和篇章等都被看作有一定概率分布的随机变量。为计算一个自然语言句子 S 的概率值 P S ),假定 S 由最小的结构单位词 w 1 w 2 ,…, w n 组成,直接计算 P S )较为困难,所以将其分解为条件概率的乘积(式4-1)。

(式4-1)

式中, h i ={ w 1 w 2 w i -1 w i +1 ,…, w n -1 w n },称为 w i 的上下文。N-gram模型实质是 N -1阶马尔可夫模型(式4-2)。

(式4-2)

常使用的N-gram模型是Bi-gram模型及Tri-gram模型。Bi-gram模型即一阶马尔可夫模型,其在计算路径评价值时,假设当前词 w i 的转换概率计算只受到前一个词的影响(式4-3)。

(式4-3)

式中, w 0 为一个虚拟的头部“#shead#”, w 1 S 切分的第一个词; n S 切分的词的总数。考虑到计算机程序计算时的准确性,将两侧取对数log() (式4-4)。

(式4-4)

对所有可能的候选路径按照式4-4计算后,对各个候选切分方式进行排序,挑选具有最大路径切分概率(或其对数)所对应的切分就是最佳切分。

类似的,Tri-gram模型即二阶马尔可夫模型,假设当前词 w i 的转换概率计算受到前两个词的影响(式4-5)。

(式4-5) GzPhVIXZyh94k8YTL/oGNVEa7SAL8wJnaCsd/dMEq0fmYHobERF6BNKuujU/fdMT

点击中间区域
呼出菜单
上一章
目录
下一章
×