白凤波,常 林,王世凡,李 彬,王颖洁,周 红,刘 耀
1.中国政法大学 证据科学研究院,北京 100088
2.浙江迪安鉴定科学研究院,杭州 310000
3.中国科学技术大学 软件学院,江苏 苏州 215000
4.大连大学 信息工程学院,辽宁 大连 116622
5.公安部物证鉴定中心,北京 100038
关键词是反映文章中心或主旨思想的一组词或短语[1],关键词提取作为文本聚类或自然语言处理的关键步骤之一,是指采用自动化的技术在文本中提取关键词的过程。关键词提取可以分为有监督提取、半监督提取和无监督提取三类[2],目前普遍采用的是适应性较强的无监督的关键词抽取算法。近年来,研究者们对关键词提取算法开展了大量的研究工作[3]。其中,TF-IDF[4]算法作为一种基于统计学的提取方法,主要通过词频计算提取文章中的关键词,但由于对词频的过度依赖往往会降低提取的效果。有些研究者在传统的TF-IDF算法上加入语义、词频、词长、位置等多方面的信息对其进行改进[5-7]。针对TF-IDF算法没有考虑特征词在文本集上的分布特征,文献[8-10]将信息熵、互信息、信息增益等与TF-IDF 进行结合。为弥补数据集偏斜带来的问题,文献[11]提出用 Category Term Descriptor(CTD)来改进TF-IDF。还有研究者用特征选择函数来代替IDF,将传统的TF-IDF 算法改进成TF 乘以特征选择函数的形式[12]。基于传统算法的复杂中文的专业短语抽取的准确程度问题,本文提出一种改进的加权算法(IAKEF)。在我国加强依法治国的方针指引下,人工智能研究特别是自然语言处理与法治社会的结合必将进一步加深。然而,通过对作为最终法庭审判结论的裁判文书进行关键词提取,为审判人员、司法鉴定、律师等司法服务工作者提供正确、全面的参考案例,有效提高工作效率显得尤为关键。
判决文书虽然在词频与逆文档频率方面与其他文本处理差异很小,其关键词抽取与日常用语中的关键词有所不同。其一,停用词有所不同。例如,像“本院认为”“裁定”“一审”等在文书中频繁出现但又无法表达文书主旨内容的词语,将会成为关键词提取的干扰项。其二,关键词的词长较长。裁判文书中词长为四个字以上的词汇超过四成比例。如图1 所示,见Word2Vec 抽取的关键词列举。其三,文本内容分类较细。由于裁判文书的类型有七大类,各类型的文书主题的侧重不同,关键词倾向也不同。
图1 裁判文书的Word2Vec关键词抽取举例
词频(Term Frequency,TF)是指词语在整个文本中出现的频率,计算方法是用该词语在文本中总共出现的次数除以文本中的单词总数;逆文档频率(Inverse Document Frequency,IDF)是用来衡量词语是否具有文章代表性的评价方法,计算方法为用语料库中文档的总数除以出现词语的文档数目并取对数。倘若一个词在某一类中出现的频率较高,而在其他类中出现的频率较低,则说明该词语在此类中具有很强的代表性,其IDF值就高;相反,若一个词在每个文档中均有出现,则其文章代表性较低,IDF 值也就低。IDF 因子在一定程度上避免了文章中常用非关键词语成为关键词的可能。
TF-IDF 的主要思想是,用TF 相乘IDF 的结果作为计算词语的权重,词语在文章中出现的频率越高,而包含该词语的文档数越少,则认为该词语的重要性越高。
计算公式如式(1)~式(3)所示:
TF-IDF是一种基于统计特征的传统的关键词提取算法,算法的性能较好,运算速度快,提取的结果比较符合实际。但是该算法仅仅考虑词频方面的因素,没有考虑词语出现的位置、词性、词长等信息,具有一定的局限性。
针对TF-IDF 算法的缺陷,目前已有一些学者提出了改进的算法,例如 TF-IDF′[7]算法、CTD[11]算法、TFIDF-IGD[10]算法以及融合多特征的TF-IDF-MTF[13]算法,这些算法都在一定程度上提高了权重计算的准确率,但对于裁判文书专业性较强的数据文本来说提取效果不是太好。本文根据裁判文书的特点,结合已改进的TF-IDF算法,提出了一套新的改进方法,对裁判文书的关键词提取收到了良好的效果。
2.2.1 改进的文本预处理
通过Jieba[14]分词和Ltp[15]分词技术对文书的文本进行分词,两种分词工具的结合可以进行互补,克服各自的缺点,从而提高了分词的准确率。同时考虑到本文所用到的数据为判决文书,具有一定的法律专业性。所以,又以“搜狗”这一在线工具为例对其细胞词库中关于文书、法律和专有名词方面的词库进行解析,作为自定义字典,加入到Jieba 和Ltp 分词工具中,进一步提高了分词的专业性。停用词字典在第一轮分词的基础上进行更新,将出现频率较高的无效词逐一加入停用词词典,以提高提取关键词的有效率。文本中的同义词在一定程度上也会影响关键词提取的准确率,例如“审判”和“审讯”作为近义词,若在提取时单独对待,可能因为两者的权重均较低而被忽略,若作为同一个词进行处理,则能避免这种情况的出现。在预处理阶段进行同义词处理,根据同义词库合并文本相似度高的词语成为了预处理阶段重要的一步。改进的文本预处理阶段流程,见图2。
图2 预处理阶段流程
2.2.2 基于语义的改进
传统的TF-IDF 算法仅仅统计词频信息,倾向于频率较高的词语,没有考虑词语的语义、位置、词长、词性等方面的信息,而这些因素都会影响词语在文章中的表示意义,使得提取了一些频率较高但与主题无关的关键词。裁判文书作为一种特殊的法律文本,文书的标题在一定程度上可以很好地概述全文的内容,这也说明了不同位置的词语代表文本内容的重要性程度不同。
针对以上提起的几方面因素,杨凯艳在文献[16]中已有探索,本文在其研究的基础上加以改进,使其在语义上更能符合裁判文书的特点。本文提出将多个影响因素进行特征融合,把得到的融合特征MTF(Multi-Term-Feature)作为乘数因子加入权重计算公式中去,以改善传统算法在语义方面的不足。融合特征MTF的计算公式如式(4)所示:
(1)词性因子POS(Part of Speech)
在一个句子中,不同词性的词语对句子修饰性不同,所蕴含的信息量不同,也会导致句子的语义不同。本文通过对人工标注的1 000 条判决文书的5 000 个关键词词性进行分析,结果如图3所示。
图3 关键词词性分布
通过图2 可知关键词中大约70%的词语词性为名词、动词、动名词,词性为形容词、副词的所占比例约为20%,其他词性所占比例为10%。所以根据词性的分布不同,应给予词语不同的权重。本文的词性因子计算公式如式(5)所示:
(2)词长因子TL(Term Length)
针对词长因子,目前常用的两种评价方法,分别为词长比例权重法和设置常数法。前者是将词语的长度与全文中最长词语长度的比值作为词长因子,后者则是通过对特定长度的词语进行人工设置系数来为词长因子赋值。考虑到裁判文书中词长作为一项重要因子,对文档主题的贡献度较大,本文评价方法采用后者。通过对人工标注的5 000 个关键词词长进行分析,其分布如图4所示。
根据实验数据的百分比,得出的词长权重系数计算公式如式(6)所示:
图4 关键词词长分布
其中li为词语长度。
(3)词位置因子WL(Word Location)
判决文书中标题与内容的基本符合率为95%,在文书的首段和结尾位置也往往富含大量有效信息,这些特定的位置关键词出现的概率比较大。通过对词语的位置信息进行有效标识可以提高关键词的提取效果。本文通过将词语第一次和最后一次出现位置作为特征对提取算法进行改进。
①预先的标题处理
根据标题与文章内容的长度,通过增加标题在总文本中出现的次数加以改进。计算公式如式(7)所示:
其中,Count(title)为标题重复次数,ceil代表向下取整。
②词位置因子的处理
能够总结全文的词语往往出现在文章的末尾,对整篇文章进行概括;而能够开门见山、指明文意的词语出现在开头的概率更大,起到统领全文的作用;因此词位置因子的计算公式如式(8)~(10)所示:
其中,FP(T,d)代表词语的首位置,LP(T,d)代表词语的末位置,FirstPos(T)是词语T在文本d中首次出现时已出现的词语数,LastPos(T)代表词语T最后一次出现时文章还未出现的词语数,SumWords(d)是文本d的词语总数。
(4)词跨度因子WS(Word Span)
词跨度代表词在文本中首次出现的位置与最后一次出现的位置之间的距离,反映了词在文中的出现范围。通常来讲,词在文章中出现的范围越广,即词跨度越大,说明该词越能反映文章的主题[17];相反,词跨度越小,说明词语集中在局部出现,不能概括全文的主旨。倘若某词在局部出现的频率很大,则会一定程度上影响全文关键词的提取,所以引入词跨度因子可以较好地避免这一问题。
词跨度因子主要是过滤某个局部范围内频率较高的词语,计算方法如式(11)所示:
其中,las(T)为词T在文本d中最后一次出现的序号,fir(T)为词T在文本d中首次出现的序号,SumWords(d)为文本d分词后的总词数。
2.2.3 基于分类内分布的改进
由于裁判文书的类型有刑事判决、民事裁定、行政判决、行政赔偿、执行裁定、民事判决、其他类七大类,文书类型的不同会导致文书主题的侧重不同,即各种类型文书之间的关键词倾向不同。本文区分了裁判文书的分类,假设文本集合C中共有N种分类,C={C1,C,…,C},类C的文本数为为词语t在C2niki这一分类出现的频率[18]。计算公式如式(12)和式(13)所示:
此时分类内离散度Dic如式(13)所示:
其中Dii为词语tk在类Ci中无偏估计的样本的方差,如式(14)所示:
对于两个词语T1、T2,假设计算时得出的IDF值相等,说明包含两词的文档数是一样的。而在同一类Ci中,假设词语T1 普遍出现在类Ci的各项文档中,而词语T2 仅出现在类Ci的某几篇文档中,此时说明词语T1 对类Ci更显著,其成为类Ci文档中关键词的可能性较大;计算它们的离散度,得到T1 的类内离散度值比T2 的类内离散度值要小,说明类内离散度越低,词语对应的权重就会越高[5]。
词语T在各个类中分布不均匀,其在各个类中代表文档主题的影响力就不同。考虑裁判文书有民事、刑事等七大类,且各类别的裁判文书特点鲜明,本文引入类内离散度,将词语最能代表那个类别的类内离散度作为该词语的调整因子,解决类内分布差异问题。离散度D计算方法如式(15)所示:
2.2.4 基于分类间分布的改进
本文中引入信息增益来解决文书分类间的词语分布的问题。信息增益是一种基于信息论的特征选择方法[19-20]。信息熵是由美国数学家克劳德·艾尔伍德·香农(Claude Elwood Shannon)提出的对信息的一种度量单位,表示所蕴含信息量的多少;在信息论中,信息熵用于描述信息空间的突发性和不确定性。熵的值越小,表示信息空间概率分布越均匀;条件熵的定义是在给定X的条件下,Y的条件概率分布的熵对X的数学期望,它描述的是观测某个变量之后信息空间的不确定性程度;信息量被用来度量不确定性的减少程度,因此信息增益代表了所观测的变量携带的信息量。其量化思想为:当词语在各个类中分布越均匀,说明它对类别的区分能力越弱,即所含的信息量越少,应给予较低的权重,反之亦然。通过把信息增益公式引入到文本集合的类别间,依靠数据集合中类别信息熵和文本类别中词语条件熵之间信息量的增益关系,来确定该词语在文本分类中所能提供的信息量,并把这个信息量反映到词语的权重中[20]。
信息增益计算公式如式(16)所示:
假设文档结合共有n种类别,E(C)为文档集合类别C的信息熵,E(C|T)为词语T对文本集类别的条件熵;P(ci)表示类别ci的概率,P(t)表示词语T在文档集合中出现的概率,P(ˉt)表示词语T不出现的概率,P(ˉt)=1-P(t);每个样本子集的熵,可以转化为子集与文本集合类别ci的条件熵,E(C|t)表示词语T出现时类别集合的条件熵,E(C|ˉt)表示词条T不出现时类别集合的条件熵;P(ci|t)表示ci类中含有词语T的文档数,表示ci类中不含词语T的文档数。信息熵、条件熵的计算公式如式(17)~式(20)所示:
2.2.5 基于TextRank的改进
TextRank 算法是利用局部词汇之间关系(共现窗口)对后续关键词进行排序,用到了词之间的关联性,这是其优于TF-IDF的地方,可以弥补传统的TD-IDF算法仅考虑词频的问题,因此本文提出的改进的计算公式如式(21)所示:
本文中∂为加权因子。
基于改进的关键词抽取算法,其流程见图5。
图5 改进的关键词抽取算法流程图
步骤1文本预处理,数据清洗、格式标记的去除、中文分词技术、词性标注、以及停用词过滤。
步骤2统计词语信息,主要包括词语的词频、词性、长度、出现的文档数和位置。
步骤3结合信息熵、离散度、融合特征以及TextRank,根据改进的公式计算候选词的权重。
步骤4将候选词权重由大到小的顺序排序,取前一个词语作为关键词。
4.1.1 软件环境
基于Windows 10 操作系统,采用Python 3.5 编译环境对上述实验进行验证实现。主要采用Python 语言中第三方工具对系统数据结构进行设计,以实现大数据存储和各种操作。其中,第三方工具包含Pyltp0.2.1、Ltp3.4.0、Pandas0.24.2、Jieba0.39、Gensim 3.7.2等。
4.1.2 硬件环境
计算机型号:神舟战神Z7-i78172S2。
处理器:Intel®Core™ i7-4720HQ CPU @ 2.60 GHz。
安装内存:32.00 GB。
本文实验数据集是采用由网络获取的裁判文书文本数据。数据集共包含1 000 条训练集,已经人工标注关键词;包含240 000 条记录作为测试集进行关键词提取。语料集中主要包括刑事判决、民事裁定、行政判决、行政赔偿、执行裁定、民事判决、其他类七大类。本文选取已有人工标注的1 000 条文件数据,每个文书选取5个词语作为关键词(其中包含不少于5 000个的关键词)用于实验仿真。因为人力和时间有限,尽量较好地保证质量,由专业司法工作专家依照案件的缘由和类别完成少量标注数据。
实验所用测试集是用来进行关键词提取的验证与评价。因为测试集包含文本数量较大没有全部人工标注和评价,实验抽样选取其中大约1 000 条文本进行人工标注对比评价和分析,验证这部分数据的准确率。实验设计验证关键词提取准确程度,主要是基于人工标注的1 000 条文书进行的,每篇文书人工标注5 个关键词,算法提取10 个关键词,用F1-Measure 作为评价标准。
为衡量关键词的有效性,本文将算法提取的关键词与人工标注作比较,来判断提取算法效果的优劣。
4.3.1 实验数据处理
本文选取人工标注的1 000 条数据作为实验数据集,其中刑事判决类200 条、民事裁定类200 条、行政判决类200条、行政赔偿类50条、执行裁定类200条、民事判决类50条、其他类100条。每条数据已经有人工标注出5个关键词作为实验结果比较。
4.3.2 实验步骤
第一步进行文本的预处理:通过对数据进行标题内容合并、分词、停用词和同义词过滤处理,构建候选词集合。
第二步关键词提取:分别采用传统TF-IDF 算法、TextRank[21]算法、Word2Vec[22]及改进的算法进行关键词提取,每篇文章标准10 个关键词用于与人工标准的关键词对比。
4.3.3 实验评价指标
实验选用准确率P、召回率R、F1-Measure(F1)作为评价指标;准确率P是人工标注的关键词与计算机提取关键词的交集和计算机提取关键词的比率,是用于评价查找准确程度的指标;召回率是用人工标注的关键词与计算机提取关键词的交集和人工标注的关键词的比率,是用于评价查找完全程度的指标;F1 因子是两者的综合指标,当F1 因子较高时,则能说明实验方法比较有效。设算法提取关键词集合为T,人工标注关键词集合为H。P、R、F1 的计算公式如式(22)~(24)所示:
4.3.4 实验结果分析
按照以上步骤进行关键词提取,将不同算法的各项指标存入表1 中。为了分析单一改进策略对算法评价结果的影响,将逐一排除改进策略的生成的评价指标记入表2 中。不同算法准确率P、召回率R、F1-Measure(F1)评价指标比较如图6,加权因子与P、R、F1 值对应图如图7。
表1 不同算法在判决文书中评价指标
表2 各改进策略单独排除的评价指标
图6 不同算法评价指标比较
图7 加权因子∂与P、R、F1 值对应图
通过图6 可知,不同算法对各类判决文书的F1 评测进行比较,TextRank 算法相比其他算法来说,在各类文书中关键词提取的效果稳定性较高,但其准确率要低于传统的TF-IDF 算法和改进的算法。Word2Vec 提取效果最差,不适用于裁判文书关键词的提取。
通过图7 可知,改进的算法与传统的TF-IDF、Text-Rank、Word2Vec相比,在准确率P、召回率R、F1-Measure上都有了很大的提高,F1 值分别提高了0.088 00、0.150 14、0.437 07;实验结果表明该方法可以很好地提高对裁判文书进行关键词提取的准确率;并进一步对加权因子∂研究比较,当∂=0.5 时,改进的TF-IDF算法关键词准确率达到最高。
图8 TF-IDF算法的裁判文书关键字抽取样本
图9 TextRank算法的裁判文书关键字抽取样本
图10 Word2Vec算法的裁判文书关键字抽取样本
图11 IAKEF(0.5)算法的裁判文书关键字抽取样本
通过图8~11 可见(其中title 字段较长,故只截取了前三个字),虽然改进的算法比传统的TF-IDF、Text-Rank、Word2Vec评估值较好,与真正的司法常用关键词仍有较大差距。例如,文中“国土资源局”“土地资源”“劳动合同”“危险驾驶罪”“民事诉讼法”,这些词汇并没有符合专家标注意图。因此,司法相关命名实体库的缺失可能是导致这一结果的原因。
传统的TF-IDF关键词提取算法仅考虑词语出现的词频及逆词频,具有一定的局限性。本文将融合特征、信息熵、离散度、TextRank引入词语的权重计算公式中,考虑词语的词性、词长、词位置和词跨度等多重因素,提出了一种改进的关键词提取算法,解决了传统算法在语义、类内外分布上的存在的不足的问题。最后通过实验证明本文提出算法的有效性。分别对TF-IDF、TextRank、Word2Vec 和改进的关键词提取算法进行实验,对实验结果进行对比分析,实验结果表明改进的关键词抽取算法(IAKEF)实验效果要优于传统的算法,且当加权因子∂=0.5 时准确率达到最高。提出的算法分别在语义、类内外分布上的改进策略独立影响虽不显著,但每项影响对计算结果都有积极效果。
本文还有很多不够完善的地方,在以后的学习研究中有以下方面可以加以改进。首先,同义词处理可以加强。由于裁判文书中涉及一些专业性较强的词汇,本文所用的同义词词库来源于网络,对裁判文书中进行同义词识别时效果不是很好。采用专业性更为适当的司法相关命名实体词库和同义词词库是下一步的研究内容。其次,增加处理命名实体识别过程以解决未登录词问题。使用现有的工具词典不能识别的某些司法领域专有词语等未登录词,下一步将通过大规模语料标注和训练以减少未登录词的影响。另外,词语权重计算问题可以通过增强特征采集方法改善。在特征设计上,通过结合更多的特征性提高关键词提取效果,是下一步的研究内容。
致谢感谢迪安鉴定科学研究院院长常林教授的支持及其实验室的同仁们的帮助。