2021SC@SDUSC
一、项目背景
关键词短语生成是指生成一个简短短语列表,以总结和描述一个长文集(例如,研究论文和新闻文章)。它有广泛的应用程序,仅举几例,信息检索,文本总结和文本分类。
在现行的关键词短语生成方法中,缺失的关键词短语的生成能力(即短语在原始文档中不存在)十分依赖于人工监督(即人工注释)。Hasan and Ng, 2010; Shang et al., 2018; Bennani-Smires et al.,2018一文中提出的Extractive methods只能提取出原始文档中的关键词短语。同类的方法不需人工的监督也能表现出较好的健壮性。然而缺失的关键词短语却极大程度上依赖于人工注释监督进行提取。随着深度神经网络的进步,最近的研究能够根据短语与文档的语义关联性筛选出关键词短语,无论它是否缺失。虽然这些方法已经取得了最先进的性能,但所有这些深度模型都受到监督并且需要大量的文件键字对。这需要昂贵和费力的收集。例如,Meng等人利用超过50万篇作者注释的科学论文来训练RNN模型。Xiong等人收集了 68000 个网页,并使用了专业注释器进行注释。
一些研究试图降低其对人工注释监督的依赖性,对缺失关键词短语的提取范围从输入文件扩大到其邻居文件,仍然不能很好地预测。
二、项目目的
在此系列报告中,我们旨在通过提出一种不受监督的方法来缓解缺失关键词短语的生成能力对监督方法的依赖——“AutoKeyGen”。这种方法可以在不使用任何人类注释的情况下,生成存在和不存在的关键词短语。
三、工作实现
1.任务目标
输入一个文档x,输出x对应的一个关键短语列表y(y既包含present关键短语,也包含absent关键短语)
2.思路启发
我们注意到,文档缺失的关键词短语可以作为关键词短语出现在其他文档中。此外,许多缺失的关键词短语实际上以单独的符号(指短语中的词语分散出现)出现在原文档中。例如,在 Inspec 数据集(关键词短语生成中的基准数据集之一)中,99% 的缺失的关键词短语可以在其他文档中找到。对于56.8% 的缺失关键短语,他们的符号均单独地出现在原输入文档中。
3.关键方法——AutoKeyGen
AutoKeyGen方法图解
(1)功能
1* 训练一个能自主生成关键词短语的Seq2Seq模型
2* 使用该模型进行文档关键词提取
(2)具体实现
训练模型
1* 构建短语库
首先通过将语料库中所有文档的present candidate(所有存在于原文档中的关键词短语)汇集到一起来构建短语库。
2* 写出缺失关键词短语
通过构建出的短语库,用局部匹配处理过程写出每个文档的absent candidate(候选缺失关键词短语)。
3* 对关键词短语评级排名
对于每个文档,考虑其两种候选关键词短语(原文档中存在的和原文档中缺失的)的TF-IDF information(出现在原文档的频率信息)以及embedding similarity(嵌入相似性,和原文档的语义相似性)这两个因素,对两种候选关键词短语进行评级排名。
4* 生成Seq2Seq模型
利用第三步中评级得出的silver label(前几个候选关键词短语)来训练出关键词短语的深度生成模型Seq2Seq。
使用模型
1* 提取present candidate
从短语库中提取出输入文档的present candidate关键词短语。
2* 使用模型生成absent candidate
利用训练好的模型生成该输入文档的关键词短语。
3* 排名评级
对第一、第二步提取出的关键词短语按照TF-IDF和embedding similarity这两个因素进行评级排名。
其中,生成Seq2Seq模型,是本次研究的核心内容,也即代码中的model.py文件,将在之后的博客内容中进行展开分析。
4.排名方法分析
(1)TF-IDF
短语c在文档X中的词频相关信息计算如下:
其中,D表示短语库corpus。TF(c,x)表示短语c在输入文档X中出现的频率。|x|表示输入文档x的短语tokens数量。DF(c,D)表示短语c在文档D中的出现频率。
(2)嵌入相似性embedding similarity
将语义相关性转化为用余弦相似性测量。使用Doc2Vec模型为输入文档和候选短语生成余弦向量,两者分别为E(x),E(c)。两者的语义相关性即定义如下:
(3)融合排名
考虑到TF-IDF和嵌入相似性在输入文档长度不同时有着不同的性能,将两种排名方式综合定义如下:
其中,RankScore(x,c)更大,c更可能是输入文档x的关键词短语。
综上,大量实验证明,AutoKeyGen性能优于所有无人监督的方法,在某些情况下甚至优于监督方法。
四、环境部署
- 数据集:采用kp20k_testing.json和kp20k_validation.json
https://github.com/ memray/OpenNMT-kpg-release
- pke工具包:用于构建短语库
https://github.com/boudinfl/pke
- Python3.7.6
- 第三方库如
- Numpy1.18.1
- nltk
- pandas
五、团队分工
1.给定语料库,首先构建短语库(依据所有文档中出现的present短语)。
2.依据构建的短语库,提取每个文档的候选absent短语。
3.依据步骤1、2生成的候选短语,利用tf-idf和词向量的相似性等属性,进行rank(贴标签)。
4.训练一个absent关键短语生成模型。