对于不同的文本数据挖掘任务,其工作流程往往有所区别,但是其总体架构却是统一的。图1.1提供了一个文本数据挖掘的流程。每一个文本数据挖掘任务的开启,都应该从对业务问题的理解出发。这一步往往需要数据科学家通过调研获得第一手的资料,从问题的本身进行理解和推理,进而问出一个好的问题,来为科学探索或商业活动增值。
图1.1 文本数据挖掘的流程
在提出问题之后,根据定义问题,我们要提取目标文本数据。在数据科学工作流中,越是上游的任务就越是重要,它决定了后续工作流可达效果的上限。因此,第二步中的信息提取在整个工作流中的重要性仅次于问题的提出。在这个过程中,我们需要知道针对目标问题应该提取什么数据,而且需要用正确的手段来获得它们,并保证其数据质量。比如,医院会采集病人的电子病历信息用来做后续诊断的参考。但是不同医生的习惯不一样,用语规范也难以统一,这就给后续的文本数据挖掘带来挑战。为了能够更好地协助后续的文本数据挖掘,就应该制定规范并在医院内统一起来。提取了文本信息之后,这些数据往往处于非结构化的状态,不能够被直接使用。在这样的情况下,就需要对数据进行清洗和转化。典型的清洗任务包括去除标点、词义消歧、统一大小写等。这些工作非常烦琐,但是对后期的分析有着举足轻重的作用。数据清洗转化后,数据科学家往往还需要进一步对数据做特征工程,这样才能够对数据进行提炼。例如我们需要做的是情感分析,那么就需要对文本中的情感词进行提取,而其他词就可以排除在外。利用情感词典来提取情感词的过程,就属于特征工程的一部分。除了情感特征以外,有的时候我们只关心某一些关键词出现的位置和频次,那么我们就可以针对这些关键词进行定位定量分析。这些特征工程可以起到删繁就简、去粗取精的作用,能够极大地提高文本数据挖掘的效率。紧接着特征工程之后,就是分析挖掘的过程。这个过程中,数据科学家需要利用各种统计建模方法和机器学习手段来对数据进行深度挖掘,然后对得到的结果进行解读。这一步有时候可以一步到位(如汇总计数),有时候则需要尝试不同的方法(如多模型比较),对于特定的方法还要设置不同的参数进行调试,来看是否能够得到最佳的效果。在最后,我们需要把获得的结果通过一定的手段展示出来。这一步中,往往需要撰写一些总结性问题,并绘制图表来向其他人表达自己的成果。通常推荐使用可视化的方法,这样能够比较直观地与行内行外的人进行交流。同时,需要多举例子,多讲故事,这样才能让不了解数据的决策者能够正确认识问题。整个文本数据挖掘工作流并不是一个单向不可逆的流程,而是一个逐渐迭代的闭环。例如在最开始阶段,对问题的理解决定了要去提取什么信息,但是在信息提取的过程中可能会发现更多有价值的问题,反向引导问题的提出,进一步完善解决问题的框架。又例如,在分析挖掘的过程中,发现提取的现有特征不足以建立完善的模型,因此要重新对特征进行提取。只有反复迭代,才能够让每一个步骤都趋于完善,最终解决好初始提出的问题。
文本数据挖掘的技术非常多,要全面深入掌握各种技术是难以实现的。因此,在开展文本数据挖掘的时候,需要对文本分析任务有准确的把握和了解,这样才能在实践和学习中有的放矢,有针对性地对技术加以选择。下面,就对常见的文本数据挖掘任务进行介绍。
● 信息抽取:从文本语料库中对目标数据进行辨识并提取的过程称为信息抽取。这个过程从自然语言文本中对指定类型的实体、关系、事件等信息进行抽取,常见的应用包括命名实体识别、关系抽取等。例如有的分析需要从简历中提取求职者的电话号码和电子邮箱地址,因此需要利用正则表达式进行匹配,然后提取。例如,需要研究消费者对不同旅游地点的评价,那么就需要从评价中对旅游景点的文本进行识别和抽取,然后再分析其评价。
● 消除歧义:无论是中文文本还是英文文本,都存在一词多义或多词一义的情况,如何对这些词语进行有效的辨识,是文本处理中重要的课题,这就是清除歧义。一种简单的方法就是比较文本相似度。例如英文“time series”和“time series analysis”作为字符串具有很高的相似度,可以认为它们在描述同一个主题,因此应该进行归并。例如,“culture”这个词在人文科学中是“文化”的意思,但是在生物学中则往往表达为“培养”(如细胞培养,其英文为cell culture)。
● 词嵌入:自然语言处理中把文本单元映射到连续向量空间的过程称为词嵌入,这一过程能够对非结构化数据进行降维,以便于特征的学习和后续模型的构建。常用的词嵌入方法包括人工神经网络、概率模型等,往往需要高性能计算设备做支持。
● 文本分类:文本分类是利用计算机按照一定的规则对文本单元进行自动归类的过程。这个过程往往需要对大量的带标签的训练样本,对其文本特征进行抽取,并利用这些特征进行学习,构建关系模型来对新的样本进行自动区分。这不仅需要基于知识经验来构建文本特征,还需要统计方法和机器学习技术的辅助。
● 情感分析:情感分析是利用自然语言处理、数据挖掘等技术对文本材料的主观信息进行定性和定量化分析的过程。一个简单的例子就是对文本的两极情绪进行判断,如“我很高兴”可以识别为积极情绪,“我很悲伤”被识别为消极情绪。更进一步,还可以对这些情绪进行定量化打分。例如“我的情绪糟糕透了”的分数可能为-3,而“我很悲伤”则为“-1”,这种方法能够更加准确地对文本的情绪进行辨识,在舆情分析中非常有用。
● 文本可视化:可视化是对信息进行抽象,然后利用计算机图形展示的技术手段。常言道,“一图胜千言”,而对于文本数据也是如此。文本作为非结构化的数据,其对应的可视化技术还在迅速的发展中。常见的文本可视化方法包括词云、词频条形图、目标词出现位置可视化等。