邸小康, 张 辉, 秦晓婧, 齐世杰, 王彩虹, 程 旭
(1.北京市数字农业农村促进中心,北京 100101; 2.北京市农林科学院数据科学与农业经济研究所,北京 100097)
随着自然语言处理技术的快速发展,关键词的提取方法也在不断突破与创新,使得关键词提取技术更加成熟[1]。现有关键词提取方法主要分为有监督提取、半监督提取和无监督提取3 类,目前较多采用的是无须过多人工干预的无监督关键词提取算法。相关研究算法有基于统计特征、基于主题模型和基于图模型3种关键词提取方法[2]。
基于统计特征的提取方法,代表是TF-IDF 算法,主要通过计算词语在文章中出现频率进行关键词提取,但由于对词频的过度依赖,而未考虑文本特征项的影响,导致降低了关键词的提取效果[3]。研究人员在传统的TF-IDF 算法基础上进行一定改进,如牛永洁等[4]综合考虑词语的位置、词性、词语关联性、词长和词跨度等词语权重影响因素,结合TFIDF 提取关键词;姜永清等[5]通过把词频比设计成去噪音的权值,以及引入词语相似度,有效降低文本同类语料库对提取关键词权重的影响。
基于主题模型的提取方法,代表是LDA 主题模型,主要将候选关键词依照主题进行区分,选取主题中的中心词汇作为一类文本的关键词[6-7]。但是基于主题模型的关键词提取方法只关注了主题信息,缺少对候选关键词的特征信息统计。因此,研究人员基于LDA 模型进行了改进,如韦强申[8]将LDA 与word2 vec 模型相融合,将词汇向量化表示,并计算相似度,扩展关键词集;李湘东等[9]将词性、词语位置等权重扩展到LDA,增强了特征的表意性等。
基于图模型的提取方法,是时下分析文本比较流行和实用的数据模型,代表是TextRank 算法,它是将文档看作一个词的网络,该网络中的节点是文本中词语,链接表示词与词之间的语义关系,通过不断迭代排序,抽取前N个词语作为关键词[10]。但是,该算法针对低频关键词提取效果较差,同时,当信息十分匮乏时,图模型的效果也会大打折扣。因此,陈芬[11]利用Word2 Vec 将文档词集训练成词向量,并计算余弦相似度,同时结合文档标题、上下文信息等影响因素改变TextRank 抽取算法。余本功等[1]通过线性加权的方式,综合度量词语语义关系、词语节点出度、词语节点位置和词语节点频次4 个特征,改进词图构建过程中的概率转移矩阵,得到词语节点的权值,提升算法的准确率。BORDOLOI M 等[12]结合向量空间模型SVM 改进TextRank 图模型,以文本类别标签信息和词语间互信息,建立有监督权重的关键词提取算法。
各类关键词提取算法的准确度在一定程度上有所提升。但是,面对特定领域的文本时,由于存在大量领域术语或短语,导致使用常规分词工具无法准确切分词语组合。当领域中出现新词时,无法进行新词识别。上述问题是提取关键词的重要过程。当前急需提出一种结合新词发现的专业领域关键词提取算法,以提高关键词提取的准确率。
在已有研究基础上,本研究利用信息熵原理,通过计算词语与词语之间的关系,确定成为新词概率,筛选领域术语、短语及缩略语,以此构建农业领域词典用于文本分词。同时,改进TextRank 算法,综合考虑词语位置和词性特征,调整候选关键词最优词语权重,进而建立词图模型,实现文本关键词提取。通过新词发现与改进TextRank 算法的综合运用,可进一步提高农业领域文本关键词提取的准确率。
本研究提出一种融合新词发现和改进TextRank 的农业领域关键词提取算法,该算法首先利用信息熵对农业领域文本语料进行新词发现,以新词发现结果作为自定义词典进行文本分词,以此提高分词准确率。其次,改进TextRank 算法在词图构建中节点值的计算方法,结合词语位置和词性特征因素,从而提高关键词提取准确率。该算法的基本框架如图1 所示。
图1 算法框架Fig.1 Algorithm framework
采用基于信息熵的无监督算法,作为衡量词语是否为新词的标准,通过计算文本片段的互信息和左、右信息熵,设定阈值,逐步计算成词概率,抽取高频词语,以此发现文本中的新词。同时,将新词与现有通用词典去重过滤后,加入专业领域词典,通过调用自定义词典,应用到文本分词过程中,提高分词准确率。
1.1.1 互信息
在文本处理过程中,互信息常用在计算词语之间的语义相关度,如果两个词语在文本中同时出现的概率越大,其相关性就越紧密,即组合成新词的概率越大[13]。两个词语的互信息值可以按式(1)计算。
式中MI(x,y)——词语x、y互信息值
p(x)、p(y)——词语x、y单独出现在文本语料中的概率
p(xy)——词语x、y共同出现在语料中的概率
MI(x,y)值越大,x,y越可能成为新词。
1.1.2 左右信息熵
左右信息熵用于衡量候选词语左右两侧字之间的不确定性,通过计算一个文本片段左边和右边的信息熵值来反映一个词与左右两侧词语可以搭配成新词的概率,超过一定阈值则可认为两个片段可以成为一个新词[14]。左右边界信息熵按式(2)和式(3)计算。
式中El(W)——左边界信息熵
Er(W)——右边界信息熵
W——候选词
a——W左侧字集合
aW——左侧字a与W构成的字符串
p(W) ——词语W出现概率
b——W右侧字集合
Wb——右侧字b与W构成的字符串
分别计算候选词两侧的信息熵。El(W)和Er(W)数值越大,即候选词W左右出现的词语越多,W表示成词的概率越大。
TextRank 算法是一种基于图的关键词抽取算法,根据文本中的候选关键词和词间语义关系构建词图,可以表示为带权重的图模型G=(V,E),其中,V表示所有节点集合、E表示所有边集合。图中任两点Vi和Vj之间边的权重为wji,对于任意给定的点Vi,In(Vi)为指向该点的入度点集合,Out(Vi)为点Vi指向的点集合,即节点Vi的出度点集合[10]。词语节点Vi按式(4)计算。
式中WS(Vi)——改进算法词语i重要度得分
WS(Vj)——改进算法词语j重要度得分
d——阻尼系数
d代表从图中某一特定点指向其他任意点的概率,取值0~1,如果取值过大或过小都会造成算法迭代效果,根据前人的经验,d的取值为0.85[10]。
在原始TextRank 算法中,只考虑词间的共现关系对词语重要度的影响,而忽略了词语位置、词性等因素对词的影响。但在实际应用中,除了词间共现关系外,词语出现在文章中的位置和词语的词性两个因素,同样对词语的重要度有影响。因此,本研究对上述影响因素进行量化,改进现有TextRank 算法,计算关键词候选词重要度得分。
式中W(Vi)——词语 i 的最优权重系数,通过词语位置和词性两个影响因素得到
式中A(Vi)、B(Vi)——词语i的位置和词性权重
a、β——词语位置、词性的权重系数,a+β=1
(1)词语位置。对于一篇文本,词语出现在不同位置,体现词语的重要度,其中标题是出现关键词概率最大的位置,其次,还包括摘要、首段、尾端和其他位置等,出现上述的概率依次减小。因此,可以为A(Vi)分别赋值为1.0、0.8、0.5、0.4 和0.2。
(2)词性。参考文献[15]中对某文本集关键词的词性分布进行统计,如表1 所示。
表1 词性分布Tab.1 Distribution of parts of speech
由表1 可知,关键词中,名词、动词和形容词的总占比超过90%。借鉴文献中的研究成果,将表中的统计占比当成词性权重值B(Vi)。
以中国国家自然科学基金涉及农业领域1 000 条申报项目数据作为试验数据,选取项目标题和摘要数据作为提取关键词的文本,将项目中申请人标注的关键词为评价标准,通过与其他提取算法进行比较,评价本研究算法的有效性。选用Python 语言,并利用jieba、pandas、math 等自然语言处理工具包实现。
选用准确率P、召回率R和F值3 个指标,进行关键词标引效果的评价。定义如下
为保证数据的质量,首先对数据进行预处理,去除噪音数据,如中文编码问题、标点符号等。采用jieba 分词工具进行文本分词、词性标注,导入农业领域本体词表作为初始分词字典,分词后去除停用词、词频较低的词语等,保留有意义的词语序列。在常规操作外,针对分词策略和缩略语提取进行了调整和补充,进一步准确识别词语,提高候选关键词的质量。
2.3.1 jieba 分词策略调整
在预处理样本数据过程中,采用jieba 分词算法,存在复合形容词无法被准确切分成词的问题,如文本“基于THz-TDS 多维矢量场图的……”“项目拟采用CRISPR/Cas9 基因编辑和功能互补……”,在分词过程中,使用“-”或“/”符号连接的“THz-TDS”和“CRISPR/Cas9”两个词会被切分开,变成“THz”“TDS”“CRISPR”和“Cas9” 4 个词语,导致无法准确表达含义。因此,本研究在原有算法基础上,增加针对复合形容词连接符号的过滤,以此改进分词策略,建立正则表达式,提高词语切分的准确度。
2.3.2 缩略语提取
在科技资源中缩略语大量出现,缩略语和全称若不统一对应,会导致关键词的候选词中同时出现全称和缩略语,对于关键词的重要度判断存在一定影响,同时提取出缩略语形式的候选关键词不易理解。缩略语在文章中通常采用如下格式出现:中文名称(英文全称,英文缩写词)或中文名称(英文缩写),后面再出现相同的词组时以英文缩写词代替。因此,本文研究在文本分词时,对出现括号“()”内的大小写英文字符串进行识别判断,并与括号前的分词词语组合成缩略词。通过人工判读,确定提取准确的全称和缩略词,并建立缩略词对应表。依据词表,对分词后的缩略语进行匹配替换,使用全称代替,确保候选词的统一规范。
2.4.1 新词发现与分词结果
选择试验数据进行新词发现和分词处理,对比分析,结果如表2 所示。
表2 试验结果对比Tab.2 Comparative examples of experimental result
由表2 可知,未加入新词发现的分词共切分出59个词语,加入新词发现的分词共切分出52 个词语,从分词数量上看,一些词语被组合成新词。从实际切分结果看,“沼泽湿地”“水位变化”“固氮生物群落”“氮元素”和“氮循环”等词语切分合理,
试验结果评估,将新词发现结果作为jieba 分词自定义词典进行试验数据分词,与原始jieba 分词器和北京大学开源的pkuseg 分词器进行试验对比,结果如表3 所示。
表3 试验结果评估Tab.3 Evaluation of experimental result
从试验结果中看出,经过加入新词的分词器效果优于jieba 和pkuseg 分词器,进一步证明加入新词发现算法后,提升了分词效果。
2.4.2 关键词结果
为了验证算法的有效性,采用TF-IDF 算法、TextRank 算法与改进TextRank 算法进行对比分析。试验数据中,TextRank 滑动窗口大小设定为5,提取4~8 个关键词进行对比分析,试验结果如表4 所示。改进后的TextRank 算法准确率均高于其他两种算法,随着关键词个数的增加,3 种算法的准确率均逐步降低,表明高概率关键词已被提取出来;召回率逐步上升,表明关键词个数增加,正确结果被预测的比例增高;在F值方面,由图2 可知,改进后的TextRank 算法优势明显,比TF-IDF 算法平均提高7.5%,比未改进的TextRank 算法平均提高9.8%。
表4 试验结果对比Tab.4 Comparison of experimental result
图2 算法F 值结果对比Fig.2 Comparison of algorithm F value result
为了更直观地展示改进后的算法提取效果,针对不同算法的关键词抽取结果进行对比(以5 个关键词数为例),如表5 所示。
表5 试验结果对比示例Tab.5 Comparative examples of experimental result
文本关键词的提取是文本分析过程中的基础工作,而文本分词则是关键词提取的首要处理过程,分词精准度的高低直接影响后续关键词的提取。本研究提出融合新词发现和改进TextRank 算法相融合的关键词抽取方法,利用词语间互信息和左右信息熵进行新词发现,通过新词补充农业领域分词词典,同时,结合词语特征,增加词语位置和词性判断,改进TextRank 算法中词语重要度计算方法,以此进行关键词抽取。经过试验验证,新词的发现效果较好,关键词提取相比其他方法,准确率更高,对于农业领域文本关键词提取具有实际应用价值。