艺术作品人物关系分析案例
发布时间:2019-05-10 浏览次数:42
作者:王努、夏丹琳、彭静怡
一、背景介绍
文本挖掘技术
1. 定义与发展
随着移动设备和互联网应用的高速发展,数据规模呈现出指数级别的增长,人们对获取海量电子化存储的数据中所蕴含的知识和信息的要求也越来越高,这对机器学习和数据挖掘研究者们来说是巨大的挑战。文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程。1998年底,国家重点研究发展规划首批实施项目中明确指出,文本挖掘是“图像、语言、自然语言理解与知识挖掘”中的重要内容。
文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘利用智能算法,如神经网络、基于案例的推理、可能性推理等,并结合文字处理技术,分析大量的非结构化文本源(如文档、电子表格、客户电子邮件、问题查询、网页等),抽取或标记关键字概念、文字间的关系,并按照内容对文档进行分类,获取有用的知识和信息。非结构化数据通常是从大容量的文件例如消费者调查、产品评论或者多媒体类型的文件中产生。非结构化数据的一个主要特点是它并没有按照一个预先定义的方式来组织和存储,这就给数据处理和分析带来了巨大的挑战。此外,因为从高度相关的有噪声的数据中提取重要的信息是十分困难的,这就使得潜在的统计问题就会变得十分复杂。在本文中,我们的实验引入了无监督的方法,自顶向下地发现和分词(TopWORDS),使得从大量的非结构化的中文文本中同时发现和分割单词和短语成为可能,并同时提出了发现单词的顺序和进行更高级的上下文分析的方法。
数据挖掘技术本身是当前数据技术发展的新领域,文本挖掘则发展历史更短。传统的信息检索技术对于海量数据的处理并不尽如人意,因此文本挖掘技术便日益重要起来,可见其是从信息抽取以及相关技术领域中慢慢演化而成的。随着网络时代的到来,用户可获得的信息包含了从技术资料、商业信息到新闻报道、娱乐资讯等多种类别和形式的文档,构成了一个异常庞大的具有异构性、开放性特点的分布式数据库,而这个数据库中存放的是非结构化的文本数据。文本挖掘作为一个新的数据挖掘领域,其目的在于把文本信息转化为人可利用的知识。
2. 文本挖掘的基本流程
文本挖掘是从数据挖掘发展而来,但并不意味着简单地将数据挖掘技术运用到大量文本的集合上就可以实现文本挖掘,还需要做很多准备工作。文本挖掘技术的基本流程由获取文本数据、对文本进行预处理、挖掘分析和数据可视化四个步骤组成。
(1)获取文本数据
需要挖掘的文本数据可能具有不同的类型,且分散在很多地方。需要寻找和检索那些所有被认为可能与当前工作相关的文本。一般地,系统用户都可以定义文本集,但是仍需要一个用来过滤相关文本的系统。
(2)对文本进行预处理
与数据库中的结构化数据相比,文本具有有限的结构,或者根本就没有结构;此外文档的内容是人类所使用的自然语言,计算机很难处理其语义。文本数据源的这些特殊性使得现有的数据挖掘技术无法直接应用于其上,需要对文本进行分析,利用正则表达式剔除一些无关信息或标点,然后利用分词工具进行分词,并对文本进行特征提取,其目的在于从文本中扫描并抽取所需要的事实。
(3)挖掘分析
经过特征修剪之后,可以开展核心的文本挖掘工作。从目前文本挖掘技术的研究和应用状况来看,从语义的角度来实现文本挖掘的还很少,目前研究和应用最多的几种文本挖掘技术有:文档聚类、文档分类、文本结构分析、关联分析和情感分析等等。
(4)数据可视化
借助于图形化手段,对挖掘分析出来的结果进行可视化展示,更清晰有效地传达与沟通信息。为了有效地传达文本挖掘的结果,通过直观地传达关键的方面与特征,实现对于相当稀疏而又复杂的文本数据集的深入洞察。
(二)现实层面问题
在现实生活中存在着多种多样的文本,例如,网络文本的写作方式自由,具有日常性、随意性和娱乐性,它包括了不同的体裁、形式和表现方式,流行词汇层出不穷;医疗文本中包含着许多晦涩难懂的专业词汇,医生在电子病历中的写作语言和方式与我们日常用语和新闻语言等都有非常大的差别,其医学专业性强且可读性差;汉字的历史跨越千年,古代文本的体裁形式多样,言文分离且行文简练,缺少标点符号更使得其佶屈聱牙……因此,待分析文本的多样性向文本挖掘技术提出了巨大的挑战。
(一)WDM(Word Dictionary Model)模型
语言的组成单位可以有很多,单词、短语、句子等等。我们常常以单个词语作为语言的组成单位,在WDM模型中,我们令代表目标文本的词库,
代表对应每个词语的概率,其中
。WDM模型将每句话S视作一系列词语的连接,其中词语
可以被看作以概率
从D中随机抽取。则由K个词组成的句子
的概率是:
在WDM模型的基础上,讨论生成一段文本的概率,令表示文本T在词典D下所有可能的划分的集合,则根据词典D和对应概率
值生成一段文本的概率为:
(二)TopWORDS算法
1. 利用AprioriAll序列模式挖掘方法生成超大词典
在无监督的文本分析中,如何通过一系列没有被分词的文本找到未知的词典是极大的挑战。以往的方法是从只有一个字的词典开始,然后不断往里面添加新的词语,直到没有新词语被发现时算法停止。TopWORDS算法则是从新的角度出发,利用“从上往下”的思路,先生成过完备的词典,再不断对其进行修剪,得到最终词典。生成过完备词典的过程利用了AprioriAll序列模式挖掘方法。
序列数据是一种非常重要的数据,在很多领域中都会频繁出现,文本数据也可以视作是一种序列数据。以往的相关研究可以大致将序列数据的挖掘分为两类:发现序列模式和挖掘周期模式。Agrawal等人首次提出了挖掘频繁序列模式,利用支持度的概念来发现频繁模式,AprioriALL算法也是一种基于Apriori性质的算法,采用逐层搜索的算法来挖掘模式。
ApriorAll算法中有几个概念需要明确一下:序列
记为,其中
是一个项集(itemset)。项集
则记为
,
是一个项(item)。
AprioriAll算法大致分为5个步骤:
(1)SortPhase:排序阶段,这个过程会在给定一段感兴趣的文本之后自动完成。
(2)LitemsetPhase:频繁项集挖掘阶段,这个过程相当于利用了一次Apriori算法,找出所有支持度大于给定阈值的频繁项集,为后面的转换成map阶段做准备工作。
(3)TransformationPhase:转化阶段,利用上面生成的频繁项集,扫描原文本序列数据,根据构造出的Map进行映射得到新的序列。
(4)SequencePhase:序列阶段,根据上一步得到的新序列数据集,再进行一次Apriori算法,得到新的“频繁项集”。
(5)MaximalPhase:最大化序列阶段,经过以上步骤后将得到所有满足条件的序列模式,然后找出“最大长度”的序列模式,即删除其父模式也在这个集合里的模式。
通过以上五个步骤,ApriorAll算法就构建出了初始的过完备词典。
2. EM算法对词典与词频进行迭代更新
在生成过完备的初始词典之后,至关重要的一步是更新词典与词典中词语相对应的概率值。这里用EM算法对进行迭代。
令是第
次迭代要估计的参数。EM算法的E步计算Q-函数:
再在第M步最大化以更新
:
其中是文本
所有可能划分的集合,
,
,
是词语
在S中出现的次数。EM算法的E步从理论上来说需要生成文本所有的划分情况,但是可以通过动态编程的方法实现,降低时间复杂度。
前文提到,TopWORDS算法的核心思想在于计算EM算法的E-step,即计算词典中每个词出现的期望值。通过前面的例子可以看出,通过生成所有划分然后统计每个词的期望值是一种可行的方法,但其在执行效率方面却不尽如人意。而动态编程的算法能够很好地解决计算词出现期望的问题,并且时间复杂度也降低到了
。
(1)式是一个很精简标准的递归式子,从头到尾可以得到一个文本所有划分的概率之和,换句话说就是生成这个文本的概率是多少;
(1)
(2)
之后(2)式又定义了一个变量,该变量的意义为给定文本T,一次划词之后所得到
种情况各自出现的概率。变量
是根据上式的两边同时除以
得到的,变量
在后面求解词出现期望值时起到了重要作用。
同样地,我们最关心的词出现的期望值也可以用一个递归的式子表示出来。但随之而来又一问题则是:学计算机的都知道一句话“递归是神,迭代是人”,为什么这么说呢?这是因为递归的式子看上去非常的简单明了、美观,但在编程的实现中,递归需要一步步地执行到最底层,然后在一步步地返回来,中间过程的变量就都必须储存起来,这对内存的要求很高,一不小心就容易造成堆栈溢出的问题。因此在实际操作中,往往都会选择将递归的式子转化为迭代的算法来实现。
以本文的TopWORDS算法为例,求解词出现的期望值可以由递归式子(3)得出,在实际编程实现时,从尾到头,计算长度为的文本中词出现的期望,仅需记录文本长度为
时该词出现的期望,然后代入计算式子即可。这样在存储的数据结构设计上我们也很明确地将其设置为一个长为
的list队列式地存储。
(3)
文字云图是一种基于词频来进行分析和呈现的文本可视化方法。借助文字云图生成工具能快速分析一段文本中词语的出现频率并以颇具美感的图形化方式呈现给用户,使用户可以不用通读全部文本,就能迅速了解文本概貌和不同文本间的关联程度。文字云图通过字体特征上的差异化(例如字体粗细、大小、颜色等)以及渐变的过渡效果,对文本词语的使用频次进行可视化展现,并按照一定方式进行排序,从而使用户能够方便且直观地从图中获得相关信息。本次实验利用运行TopWORDS方法后得到的豆瓣影评分词结果绘制文字云图,将词语按频率从图片中心位置往外降序排列并分配颜色,即频率大的词出现在中心位置,相同频率级别的词具有相同颜色。
1. 电影《寻梦环游记》
从图3-1可以看出,本次实验的分词算法成功地从该电影的豆瓣影评中分出了影片的名字“寻梦环游记”、影片的出品公司“皮克斯”、影片的导演“昂克里奇”等特有的词语,“亡灵节”、“米格”、“墨西哥”、“音乐”、“家庭”、“成长”、“死亡”、“梦想”等等与该影片内容有关的词语也均被分出并得到了明显的呈现。根据文字云图的结果可以总结出,电影《寻梦环游记》是一部由皮克斯动画工作室制作的影片,其灵感源于墨西哥亡灵节,讲述了热爱音乐的主人公米格和落魄乐手埃克托在神秘的亡灵世界开启了一段奇妙冒险旅程的故事。
图3-1电影《寻梦环游记》影评分词文字云图
2.电影《芳华》
从图3-2可以看出,本次实验的分词算法同样成功地从该电影的豆瓣影评中分出了影片的名字“芳华”、影片的主人公“刘峰”“何小萍”“萧穗子”“林丁丁”等、影片的导演“冯小刚”(甚至是冯小刚导演的绰号“冯裤子”)等特有的词语,“男兵”、“文工团”、“集体主义”、“高干子弟”、“舞蹈”、“理想主义”、“青春”等等与该影片内容有关的词语也均被分出并得到了明显的呈现。根据文字云图的结果可以总结出,电影《芳华》根据编剧严歌苓同名小说改编,讲述了在充满理想和激情的军队文工团,一群正值芳华的青春少年,经历着成长中的爱情萌发与充斥着变数的人生命运故事。
图3-2电影《芳华》影评分词文字云图
我们将经过TopWORDS算法分词后的词语作为原始语料进行词嵌入的分析,在本次实验的验证过程中选择了Google出品的word2vec方法。简单地来讲,word2vec本质上就是用一个一层的神经网络(如CBOW)把one-hot形式的词向量映射到分布式形式的词向量。它假设一个单词只与它周围的若干个单词有关且不考虑单词间的顺序关系,词向量之间余弦距离的大小代表了词语之间的关系的远近。在本次实验的过程中最后得到了50维度的词向量,采用t-sne的高维降维的方法将其降到二维平面,并对古典名著《水浒传》进行可视化分析展示,可以发现在文本中距离相近的单词在语义上具有很高的相似性。
图3-3《水浒传》词嵌入图
从图3-3可以看出,其中蓝色的点为梁山一百单八将人物的姓名,绿色的点为他们的绰号,红色的点为《水浒传》中出现的地点名。其中,《水浒传》的主人公宋江出现在图片里的中心位置,可以看出宋江作为梁山好汉们的哥哥,和所有人的联系都是很密切的。从图3-3以宋江为中心裁剪出的局部图3-4可以看出,离宋江最近的地点是东溪村,这是宋江的家乡郓城城东的一个村子;而离宋江最近的人,则是“黑旋风”李逵,这是一个对宋江忠心耿耿,一直到最后都心甘情愿喝下毒酒一起赴死的人物,两人关系的密切程度可见一斑。但是可以发现,宋江自己的绰号“呼保义”却离得很远,原因可能在于因为古人惯用字号,如果用的是“宋公明”称呼,那么“呼保义”应该就会离得比较近了。
图3-4《水浒传》词嵌入图(局部)
(一)TopWORDS算法的优势
本次实验提出了一种无监督的中文文本挖掘方法,TopWORDS,可以针对特定领域的中文文本同时实现词语发现和文本分割。该方法还可以容易地应用于英语和其他基于字母的语言,通过将每个单词作为字符来发现正则表达式、习惯用语和特殊名称,这就为下游分析提供了更多的信息。此外,将TopWORDS与另一种高级上下文分析方法(如词嵌入、主题建模和关联规则挖掘等)相结合的分析流水线可以揭示我们所感兴趣文本的关键特征。与现有的中文文本挖掘方法相比,TopWORDS方法具有以下优点:
(1)在分析特定领域的中文文本方面工作稳定,无论其是否提供了相应的训练数据或合适的词典;
(2)在发现未知词语和短文本方面表现有力,且在对大型文本进行处理时具有较高的效率,能够有效地挖掘出现频率较低但重要性较高的词语;
(3)此分词算法是基于一个明确的模型进行的,因此可以进行有效而严格的统计推断与计算;
(4)TopWORDS方法容易与各种先验词库进行结合,从而可以实现更好的分词效果。
本文对基于EM算法的无监督中文文本挖掘方法进行了全面的综述。随着人工智能深度学习技术的发展,在未来几年中,该方法将可能从以下几个方面取得突破:
(1)文本特征提取及在专业领域进行文本挖掘,例如金融领域、军事领域等的应用和研究;
(2)新的文本特征表示模型,比如考虑使用层次结构的向量对文本进行建模,关键词向量能快速定位用户的兴趣领域,而扩展词向量能准确反映用户在该领域上的兴趣偏好,结合领域知识,采用概念词、同义词或本体来代替具体的关键词成为特征词,体现语义层面的需求和分析;
(3)改进分词算法,例如针对特征提取的需要,应用深度学习算法框架,建构更高性能的分词系统;
(4)改进特征评价函数,例如,考虑将表达文本结构的特征提取与表达文本语义的特征提取进行交叉解码,即对特征词的权重从表达文本结构与文本语义两个层面进行评价。
