2. 上海市农业技术推广中心, 上海 201103;
3. 林西县职业技术教育中心, 内蒙古 林西 025250
2. Shanghai Agricultural Technology Extension and Service Center, Shanghai 201103, China;
3. Vocational and Technical Education Center of Linxi County, Linxi Inner Mongolia 025250, China
文本自动生成是自然语言处理的一个研究分支, 它能实现让机器自动生成文章.简单说, 就是希望机器能像人一样写作, 创作出优秀的自然语言文本.自动文本生成应用前景非常广泛, 例如, 基于海量语料库的智能问答和对话、行业新闻撰写、突发事件的实时报道和大量文献书籍的自动摘要等.该项技术能减少许多语言工作人员的工作量, 为读者传送实时、简洁的新闻报道等.
文本自动生成方法有很多, 从文本到文本的生成、从意义到文本的生成、从数据到文本的生成、从图像到文本的生成等[1].从文本到文本的生成, 具体来说, 通过文本摘要、句子压缩和融合、文本复述等技术实现文本的再生成.从意义到文本的生成主要是通过分析句子的语义, 将语义表示成表达式, 通过表达式生成新的句子.从数据到文本指的是对所给数据生成一段描述性文本.从图像到文本类似于看图讲话, 挖掘图像中的概念, 生成对应文本.实现上述每项技术都具有很大的挑战性, 现已经有许多前沿技术并且产生了具有影响力的成果.例如, 美联社2014年采用新闻写作软件自动撰写新闻稿件报道公司业绩; 美国洛杉矶时报使用软件撰写突发事件的新闻报道; SumTime系统能够生成海洋天气预报文本.然而, 我国对自动文本生成的研究和应用还不是很广泛, 缺少统一的大规模测试集和评价平台, 制约了中文自动文本生成的发展.
本文提出了一种抽取式自动文本生成的方法.主要贡献如下.
(1) 基于主题模型优化自动生成文本结构, 生成文本不再是一段式, 而是由若干段落组成, 具有更好的可读性.
(2) 将文本生成建模成关键词覆盖, 用线性规划近似求解, 实验中发现生成的文本覆盖信息更全面.
(3) 评价阶段实现了支持中文的ROUGE(Recall-Oriented Understudy for Gisting Evaluation)评价工具.
本文第1部分对自动文本生成的国内外研究现状进行了介绍; 第2部分对本文提出的文本自动生成方法进行了概述; 第3部分重点介绍了基于关键词覆盖问题的文本抽取技术; 第4部分与TextRank方法进行对比, 验证了本文提出算法的有效性; 第5部分给出了本文的总结与展望.
1 国内外研究现状文本自动生成的研究开始于20世纪60年代初期, 起初并没有引起人们足够的重视, 但目前它已经成为一个非常重要的研究课题.文本自动生成方法主要可以分为4类:从意义到文本的生成[2]、从数据到文本的生成[3-5]、从图像到文本的生成[6]、从文本到文本的生成[7-16].
由于自然语言的语义尚未形成一致的定义, 意义到文本的生成方法研究不多.现有的研究普遍假设使用逻辑语义表征作为输入, 自然语言文本作为输出.具体方法从两个方面进行:通过深层语法规则构建自然语言文本、通过同步句法结构生成文本.基于文本的语义、结构的方法, 相对于其他方法来说复杂很多, 但随着深层自然语言处理的发展, 越来越多学者投入到这个领域的研究[2].数据到文本的研究旨在根据提供的数据生成相关描述文本, 该方法应用非常广泛, 主要应用领域有天气[3]、财经[4]、医疗[5]等.目前在天气预报领域已经取得很大的研究进展, 对天气预报数据进行总结, 生成天气预报文本等.而随着深度学习的兴起, 图像到文本的生成也取得了很大进步.典型地, 将图像语义标注与自动文本生成结合起来, 图像语义标注采用深度卷积神经网络建模, 自动文本生成采用循环神经网络建模, 实现从图像到文本的生成[6].
与上述方法不同, 通过抽取原文句子或者变换原文句子内容生成新的句子构成新文本, 从文本生成的文本具有更稳定的语义和语法结构. Li等[7]就是通过抽取原文本句子的方式生成新文本, 使用支持向量回归技术构造分类器, 将句子分为"待抽取"和"拒绝抽取"两类, 由待抽取句子集合组成新文本.该方法的不足之处在于生成文本可能存在较多冗余信息.变换原文句子的方法有句子压缩与融合以及文本复述等, 句子压缩包括从句子中删除词语、替换词语、插入词语等方法, 由于直接删除词语复杂度较低, 成为主流方法.直接删除词语实现压缩句子的方法有噪声信道模型[8]、整数线性规划[9]等.句子压缩能够生成更加紧凑的文本, 获得更好的效果.但对于删除词语的方法, 大部分的句子能删除的词语较少, 效果不明显, 而替换、插入等方法复杂度较高.句子融合技术主要是对两个句子取交集和取并集等, 具体方法有基于图最短路径[10]、基于结构化辨别学习[11]等, 但是句子融合只保留多个句子中的共同信息, 可能过滤掉重要的内容, 或者只过滤掉多个句子之间的重复内容, 可能留下无关的细节信息.文本复述指对原文进行改写, 达到内容上一致表达上不同的效果.现有方法:替换同义词、人为定义规则、基于自然语言方法[12]、基于支点的方法[13]等.基于支点的方法生成文本思路很新颖, 它首先将原文本翻译成另外一种语言, 以这门语言为支点再翻译回来生成新文本, 但是生成文本的效果完全依赖于机器翻译的效果.
通过分析上述工作, 可以发现当前自动文本生成工作主要不足在于:适应能力不强, 比较依赖规则, 模型复杂度高, 生成文本存在冗余信息.为了解决上述问题, 本文提出了一种抽取式自动文本生成方法, 将自动文本生成建模成关键词覆盖问题, 采用线性规划近似求解.本文提出的新模型生成的文本不仅信息量大冗余少, 而且模型复杂度低, 适应能力强, 适用于生成不同类别的文本.
2 问题定义和算法概要自动文本生成领域针对中文的研究甚少, 本文利用抽取式技术从文本生成文本, 旨在实现中文文本自动生成, 可以用于智能问答和对话、新闻的自动撰写等应用, 也可满足其他中文文本生成的需求.
2.1 问题定义定义1文本自动生成问题 给定候选文档集合
从文本生成文本的方法有很多, 句子压缩与融合方法复杂度较高, 鲁棒性不强; 而文本复述方法生成文本效果比较依赖于其他技术, 如替换同义词方法依赖于同义词词库、人为定义规则依赖于规则、基于支点的方法依赖于机器翻译.所以本文采用抽取式文本自动生成技术, 从文本抽取出关键句, 生成新文本.
2.2 文本自动生成算法概要本文提出的文本自动生成算法主要分为语料预处理和新文本生成两部分.
2.2.1 语料预处理由于大规模语料库主题混乱度较高, 需要对语料库按照主题重分类. Blei等[14]曾提出LDA(Latent Dirichlet Allocation)主题模型对文章按照主题分类, 即对一篇文章生成一个主题分布, 每个主题分布下对应一个词分布.本文使用LDA主题模型预测语料库的主题分布, 用主题分布表示文档向量进行聚类, 获得混乱度较低的若干个文档子集合, 作为文本抽取阶段的候选文档集.
2.2.2 新文本生成新文本生成阶段主要分为两部分:生成文本结构优化、文本抽取.
人工生成的文章都是由中心思想、材料、结构等3个要素组成的.结构是文章的"骨架", 是谋篇布局的手段, 是运用材料反映中心思想的方法.通常一篇文章含有一个主题分布, 为了让机器生成的文章更像人工生成的, 本文按照主题分布对候选文档集分类, 用每类生成一段主题相同的文本, 使得机器文本依照不同主题分段论述.
将候选文档集按照主题分类后, 首先对每类文档提取关键词集合和自定义关键词集合, 抽取与关键词相关的句子, 组成文本.流程图如图 1所示, 分为上、下两部分(以虚线分开).
在生成文本结构优化阶段, 首先通过LDA主题模型提取候选文档主题分布, 然后使用主题分布向量表示文档, 最后对文档进行聚类.在文本抽取阶段, 先对每类文档采用TF-IDF(Term Frequency, Inverse Document Frequency)技术提取关键词集合, 并获得每类文档的自定义关键词集合, 然后抽取出满足关键词覆盖的最小句子集合组成一个段落, 最后输出生成文本.
3 抽取式文本自动生成算法在抽取式文本自动生成算法中, 为了抽取出关键句, 先定义关键词集合, 然后, 将文本抽取建模成关键词覆盖问题, 最后, 抽取句子组成文本.文本抽取的定义如下.
定义2文本抽取 给定关键词集合
关键词指能够体现文档中心意思的词汇, 这类词汇通常在文档中会频繁的出现, 但有些非关键词也会频繁地出现在文章中, 如连词.本文通过TF-IDF提取文章中的关键词, 其中IDF能过滤掉频繁出现的非关键词.
词频(Term Frequency, TF)表示词条在文章中出现的频率, 为
$ \begin{align} {\rm TF}_{i, j}=\dfrac{n_{i, j}}{\sum\limits_{k}n_{k, j}}, \end{align} $ | (1) |
其中,
逆向文档频率(Inverse Document Frequency, IDF)表示如果包含词条的文档越少则IDF值越大, 说明词条具有很好的类别区分能力.其公式为
$ \begin{align} {\rm IDF}_i=\log\dfrac{|D|}{1+|\{j:t_i\in d_j\}|}, \end{align} $ | (2) |
其中,
根据公式(1)和公式(2), 可以得到语料库中每个词条的TF-IDF的值, 将值较大的若干词条作为关键词.
3.2 文本抽取获得关键词集合后, 进行文本抽取.本文将文本抽取建模成关键词覆盖问题, 其形式化描述是
$ \begin{align} \min\sum^m_{j=1}X_j, \end{align} $ | (3) |
$ \begin{align} \mbox{约束条件}\quad X_j \in \{0, 1\}, \quad j=1, 2, \cdots, m, \end{align} $ | (4) |
$ \begin{align} Y_{i, j} \in \{0, 1\}, i=1, 2, \cdots, n_1, \quad j=1, 2, \cdots, m, \end{align} $ | (5) |
$ \begin{align} Z_{i, j} \in \{0, 1\}, i=1, 2, \cdots, n_2, \quad j=1, 2, \cdots, m, \end{align} $ | (6) |
$ \begin{align} ~~~~~~~~~~~~~~~~~~~~\sum^m\limits_{j=1}X_jY_{i, j}\geq 1, i=1, 2, \cdots n_1, \quad 确保覆盖所有关键词. \end{align} $ | (7) |
$ \begin{align} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~\sum^{n_2}\limits_{i=1}\sum\limits^{m}_{j=1}X_jZ_{i, j}\geq1 , \quad 确保覆盖至少一个用户自定义关键词. \end{align} $ | (8) |
定义
求解得到每个句子的权重后, 定义一个阈值, 当句子权重大于该阈值的时候抽取出来组成文本.具体算法见算法1.
算法1 文本抽取算法 |
输入:关键词集合Key && User-Key; 文档集合 |
输出:最小覆盖句子集合 |
//关键词覆盖问题的建模和求解 |
1: FOR document |
2: FOR sentence |
3: FOR keyword |
4: IF |
5: |
6: ELSE |
7: |
8: END FOR |
9: END FOR |
10: END FOR |
11:同理求 |
12:求解线性规划得到 |
//自动句子抽取 |
13: IF |
14: add Sen |
15: END IF |
16: RETURN |
如算法1所示, 基于关键词覆盖的文本抽取算法主要包含如下操作.
(1) 行1-10构造线性规划参数
(2) 行11构造参数
(3) 行13-16抽取句子, 当句子的值大于阈值
本节提出的文本抽取算法能自动寻找到最优解, 为一个句子集合.该句子集合能保证信息量大, 而且信息不冗余.
4 实验结果 4.1 实验数据集本文从门户网站中爬取了行业新闻里面的所有新闻作为本次实验的语料库.语料库共含1 703篇文档.对文档集分类后, 获得候选文本.从中挑选4类候选文档集合:类别一的文档集合包含529篇文档; 类别二中包含245篇文档; 类别三中包含649篇文档; 类别四中包含280篇文档.从4个候选文档集中分别取出10篇文章作为实验数据, 其他文章作为主题聚类LDA模型的训练样本.
对自动文本进行定量评价时, 由于国内缺乏大型统一的评价数据集, 故本文对实验文本进行了人工标注,以生成标准文摘与自动生成文本比较.每个候选文档集选择10篇文章, 邀请3位志愿者, 每人为这10篇文章抽取一篇文摘.标注文摘只允许从原文中抽取出句子, 可以不是一整句但一定从原文中来, 不允许根据自己对原文的理解重新生成句子.最终生成12篇标准文摘.
4.2 模型参数默认设置在生成文本结构阶段, LDA主题聚类中主题数设置为5, 得到维度为5的主题分布后进行
将本文算法与Mihalcea等[15]提出的一种基于图的排序算法TextRank作对比. TextRank算法首先将原文切分成句子, 每个句子作为图的一个节点, 计算句子之间的相似度, 构成一个基于句子的有权图.得到的有权图根据PageRank的有权图计算方法得出所有节点的得分, 取出得分较大的若干句子组成摘要. TextRank算法是一个取得较好效果的无监督抽取式文摘生成方法.计算句子相似度方法很多, 有
(1) Similarity
(2) Sorce(
本文采用文摘评价技术的Edmundson重合率[16]和ROUGE[17]评价标准, 对生成文本进行定量评价.
文本摘要技术评价最早由Edmundson[16]提出的, 通过比较生成文本与标准文摘的句子重合度来评价生成文本. Edmundson方法的基本单元是句子, 根据标点符号将文本切分成句子, 标号包括". ""; ""!""?".每个生成文本的重合率为与所有人工文摘对比得到的重合率的平均值,
$ \begin{align*} p_i&=\dfrac{\mbox{同时出现在生成文本与人工文摘的句子数}}{\mbox{人工文摘句子数}}\times100{\%}, \\ P&=\sum\limits^n_{i=1}\dfrac{p_i}{n}\times 100{\%}. \end{align*} $ |
ROUGE评价方法在2003年被Lin提出, ROUGE被DUC(Document Understanding Conference)和TAC(Text Analysis Conference)会议作为评价标准之一. ROUGE-N, 计算公式是
本文采用Edmundson重合率和ROUGE-N、ROUGE-S评价标准, 对生成文本进行定量评价.由于ROUGE评价工具不支持中文, 所以本文依照ROUGE方法, 实现了一个支持中文的ROUGE评价工具.
4.3.3 评测结果与分析(1) 个案研究
根据每个候选文档集的10篇文章, 分别生成一篇自动文本, 共4篇.本文对类别一生成的自动文本做一个定性评价, 表 1是类别一文档集每篇文档的标题.
生成文本结构优化阶段将这10篇文章分成4类:文章1、2、4、10被分为一类, 主题为专家对烘焙行业的判断; 文章3被单独分为一类, 主题为女人节蛋糕集锦; 文章5、6、8、9被分为一类, 主题都是如何开蛋糕店; 文章7被单独分为一类, 主要讲上海的蛋糕美味.可以看出, 将文章进行主题分类后, 每段落的内容主题一致, 自动生成文本段落内容可读性更强.从类别一的每类文档中抽取出的关键词为[技术, 营销, 蛋糕, 城市, 食品机械, 生产][知道, 最后][送, 最美][父母, 上海, 加盟商, 蛋糕店, 产品, 研发, 行, 技巧, 学习, 面包店], 根据文本抽取算法生成如下文本. 图 2展示了类别一生成的自动文本.
从图中可以看到, 每个段落对应一个主题.第一段由文章1、2、4、10生成, 主题是烘焙行业的发展趋势.第二段由文章7生成, 只有一篇所以抽取内容较少, 主要想告诉大家上海的面包店很美味.第三段也只有一篇文章3, 这篇文章说的是女人节的蛋糕集锦.第四段由文章5、6、8、9生成, 主题是如何开设面包店.自动生成文本中的内容紧密贴合原文的标题, 能将原文的主旨都展现出来, 效果很好.本文算法生成的文本不同于TextRank生成的一段式文本, 本文自动生成的文本是结构化的, 段落具有中心思想, 可读性更强.
(2) 定量评价
下面分别计算4类候选文档集的自动文本的Edmundson重合率、ROUGE-1(R-1)、ROUGE-2(R-2)、ROUGE-S4(R-S4)、ROUGE-SU4(R-SU4).本实验与TextRank比较, 进行定量评价, 为了更方便地比较, 将本文算法命名为Summary.
表 2给出了4类候选文档集的自动文本在TextRank和Summary下, 与标准文摘的Edmundson重合率. 表 2显示, Summary的Edmundson重合率在类别二和类别三中比TextRank高, 在类别四与TextRank一样.可以看出, Summary和人工标注的关键句重合度更高, 与人类在生成摘要时的想法更加一致.
表 3给出了4类候选文档集的生成文本在3个模型上的R-1、R-2、R-S4、R-SU4.为了显示简洁, 用
本文提出了一种基于关键词覆盖的自动文本生成方法, 将关键词覆盖问题建模成整数规划问题, 利用线性规划进行近似求解.算法主要涉及优化生成文本结构和文本抽取两大部分.为了定量评价自动生成文本质量, 本文实现了支持中文的ROUGE评测工具, 同时将无监督基于句子抽取的TextRank方法作为基准方法.本文提出的方法的信息量覆盖度更高, 词序更接近人工文摘.从定性角度, 本文方法生成的文本结构性更强, 具有更好的可读性.
次模是被用于解决覆盖问题的常用工具, 在未来工作中, 将考虑运用次模工具解决关键词覆盖的问题, 从而实现自动文本生成.另外, 目前只考虑了内部评价方法中信息量指标, 文摘连贯性尚未考虑在内, 目前已经有一些学者致力于解决文摘连贯性问题[18].以后的工作中将会考虑系统文摘的连贯性与可读性.
[1] | 万小军. 文本自动生成研究进展与趋势[R]. 北京: 北京大学, 2016: 1-2. |
[2] | ZHANG Y, KRIEGER H U. Large-scale corpus-driven PCFG approximation of an HPSG[C]//Proceedings of the 12th International Conference on Parsing Technologies. Stroudsburg: Association for Computational Linguistics, 2011: 198-208. http://dl.acm.org/citation.cfm?id=2206352 |
[3] | SRIPADA S, REITER E, DAVY I. Sumtime-mousam:Configurable marine weather forecast generator[J]. Expert Update, 2003, 6(3): 4-10. |
[4] | KUKICH K. Design of a knowledge-based report generator[C]//Proceedings of the 21st Annual Meeting on Association for Computational Linguistics. Stroudsburg: Association for Computational Linguistics, 1983: 145-150. http://dl.acm.org/citation.cfm?id=981340 |
[5] | PORTET F, REITER E, GATT A, et al. Automatic generation of textual summaries from neonatal intensive care data[J]. Artificial Intelligence, 2009, 173(7/8): 789-816. |
[6] | KARPATHY A, LI F F. Deep visual-semantic alignments for generating image descriptions[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 39(4): 664-676. |
[7] | LI S J, OUYANG Y, WANG W, et al. Multi-document summarization using support vector regression[C/OL]//Proceedings of the Document Understanding Conference. [2017-05-03]. http://www-nlpir.nist.gov/projects/duc/pubs/2007papers/pekingu.final.pdf. |
[8] | KNIGHT K, MARCU D. Statistics-based summarization-step one: Sentence compression[C]//Senventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence. [S. l]: AAAI Press, 2000: 703-710. |
[9] | CLARKE J, LAPATA M. Global inference for sentence compression:An integer linear programming approach[J]. Journal of Artificial Intelligence Research, 2008, 31: 399-429. DOI:10.1613/jair.2433 |
[10] | FILIPPOVA K. Multi-sentence compression: Finding shortest paths in word graphs[C]//Proceedings of the 23rd International Conference on Computational Linguistics. Stroudsburg: Association for Computational Linguistics, 2010: 322-330. http://dl.acm.org/citation.cfm?id=1873818 |
[11] | THADANI K, MCKEOWN K. Supervised sentence fusion with single-stage inference[C]//International Joint Conference on Natural Language Processing. 2013: 1410-1418. http://www.zentralblatt-math.org/ioport/en/?q=an%3A10294178 |
[12] | FUJITA A, INUI K, MATSUMOTO Y. Exploiting lexical conceptual structure for paraphrase generation[C]//International Conference on Natural Language Processing. Berlin: Springer, 2005: 908-919. http://link.springer.com/chapter/10.1007/11562214_79 |
[13] | DUBOUE P A, CHU-CARROLL J. Answering the question you wish they had asked: The impact of paraphrasing for question answering[C]//Proceedings of the Human Language Technology Conference of the NAACL, Companion Volume: Short Papers. Stroudsburg: Association for Computational Linguistics, 2006: 33-36. http://dl.acm.org/citation.cfm?id=1614058 |
[14] | BLEI D M, NG A Y, JORDAN M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003(3): 993-1022. |
[15] | MIHALCEA R, TARAU P. TextRank: Bringing order into texts[C]//Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing. Stroudsburg: Association for Computational Linguistics, 2004: 404-411. |
[16] | EDMUNDSON H P. New methods in automatic extracting[J]. Journal of the ACM (JACM), 1969, 16(2): 264-285. DOI:10.1145/321510.321519 |
[17] | LIN C Y. ROUGE: A package for automatic evaluation of summaries[C/OL]//Proceedings of Workshop on Text Summarization Branches Out Post Conference Workshop of ACL 2004. [2017-05-03]. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/was2004.pdf. |
[18] | PARVEEN D, MESGAR M, STRUBE M. Generating coherent summaries of scientific articles using coherence patterns[C]//Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016: 772-783. https://www.researchgate.net/publication/312250859_Generating_Coherent_Summaries_of_Scientific_Articles_Using_Coherence_Patterns |