专栏首页BestSDK深度解析|机器人,是如何写稿件的?

深度解析|机器人,是如何写稿件的?

这篇题为“四川阿坝州九寨沟县发生7.0级地震”的消息约540字,配发了5张图片,内容包括速报参数、震中地形、热力人口、周边村镇、周边县区、历史地震、震中简介、震中天气8个方面,由机器自动编写,用时25秒。此后一系列余震消息,自动编写速度最快的仅用时5秒。

尽管,国外早有应用于地震新闻自动生成和发布的同类产品,2014年3月17日,美国洛杉矶发生4.4级地震,洛杉矶时报就曾使用Quakebot机器人,花3分钟写了一条地震新闻,但现在,国内的互联网用户直观感受到了机器人在快速报道地震灾后情况上较为明显的优势。

这条内容经由“中国地震台网”微信公众号推送,迅速刷爆微信朋友圈,也再次引发了写稿机器人将在多大程度上影响新闻编辑室的讨论。

机器人写稿的技术背景

机器人写稿,背后的核心技术是自然语言处理,同时涉及数据挖掘、机器学习、搜索技术、知识图谱等多项人工智能技术。

自然语言处理是指机器理解并解释人类写作、说话方式的能力。目标是让计算机/机器在理解语言上像人类一样智能,最终能弥补人类交流(自然语言)和计算机理解(机器语言)之间的差距。

NLP研究发展到现在,基本经历了三个阶段。

计算机刚刚发明之后,人们就开始了自然语言处理的研究。那时的NLP研究都是基于规则的,就是研究人员想一些处理规则,然后计算机按照人设置的规则去处理文本。但是在应用中,很快发现许多现实世界的复杂问题并不是人想出一些规则就能解决的。

1990年,第13届国际计算语言学会议在芬兰赫尔辛基举行,当时的主题是“处理大规模真实文本的理论、方法与工具”,学术界的重心已经开始转向大规模真实文本,传统的仅仅基于规则的自然语言处理显然力不从心了。此后,NLP技术的主流是基于统计的自然语言处理,广泛应用于机器翻译、语音识别、拼音输入、图像文字识别、拼写纠错、查找错别字和搜索引擎等。

机器人写稿的三种实现方法

NLP的机制涉及两个流程:自然语言理解(Natural Language Understanding,简称NLU)和自然语言生成。

现有的写稿机器人,或者广义来说,就是一个自然语言生成系统,主要有模板式、抽取式和生成式这三种技术方向。

1.模板式

模板式是目前应用最成熟、也是最容易理解的一种实现方法。

当前模板式的机器人写稿方法,主要是通过利用优化算法,智能选择不同的模板组合进行新闻生成。具体的实现过程包括:基于输入的知识点与模板库进行候选模板检索;利用优化算法进行智能模板筛选,确定最终真正使用的模板;基于筛选得到的模板进行新闻文本生成。地震写稿机器人、腾讯的DreamWriter等,都是这一类典型产品。

以DreamWriter为例,这是腾讯技术团队开发的自动化新闻写稿机器人,它能根据算法在第一时间内自动生成新闻稿件,对新闻事件主题进行实时分析和研判,结合一系列的数据库和机器学习算法等技术,在较短时间内为用户传送重要的新闻资讯,帮助用户快速解读内容。

DreamWriter生产一篇完整的新闻,主要由五个步骤组成:建设内容数据库,基于数据库的机器学习,基于具体主题进行写作,以及最后的内容审核和渠道分发。

首先,研发人员需要为 DreamWriter构建一个内容丰富、具有海量新闻数据的数据库,比如每个赛季完整的欧洲主流足球联赛的全套数据,从球员、球队、赛事安排、比赛进程、环境因素、球员之间的对抗数据等等各个细分维度,对数据进行归类、整理,形成一个庞大而又精准的数据仓库,这个庞大的内容数据仓库就成为了机器人自动生成足球新闻报道的原料仓库。

基于模板的机器人写稿学习过程如下图所示:

比如报道一个足球赛事,DreamWriter这类机器人就会在前期的学习过程中,去理解球员比赛过程中的具体动作,包含了射门、扑救、铲球、传球以及犯规等动作,DreamWriter会将这些动作名词进行随意组合,同时结合足球比赛的规则特点,变成一整套足球赛事内容表述。

由于随意的组合,内容会出现严重的差错,因此DreamWriter会基于数据仓库中的文本内容进行大量的训练学习,最终使得DreamWriter的写作水平能够接近甚至达到标准新闻写作的水平。

在实现短文本的内容生成后,DreamWriter会基于新闻的整体报道主题,比如体育或者财经,来生成一个特定的新闻内容框架,在内容框架下,DreamWriter会生成相应的文本内容,形成一篇报道。

DreamWriter目前的主要功能仍局限于体育财经类的资讯,由于这类内容报道结构相对固定,对DreamWriter来说,写作难度并不大,但面对类似突发性新闻等比较难以预期的新闻,DreamWriter的表现水平就有待提升了。

2.抽取式

在新闻信息领域,利用机器人从海量的已有文本素材中抽取重要信息,进行“二次创作”,也是一种较为常见的自动写稿方法。

当前,一个典型的抽取式自然语言生成场景是,基于抽取式的文本自动摘要生成。它是能够帮助用户短时间内从海量数据当中抽取重要信息内容的有效途径,也是在新闻搜索、个性化推荐等场景下,从原始文本内容中快速抽取重要信息,生成核心摘要内容的重要方法。

自动文摘生成主要由三个步骤构成,如下图所示:

图中的文本分析过程是对原文本进行分析处理,识别冗余信息;文本内容的选取和泛化过程是从文档中辨认出重要信息,通过摘录或概括的方法压缩文本,或者通过计算分析的方法形成文摘表示;文摘的转换和生成过程实现对原文内容的重组或者根据文本内部位置表示信息来生成文摘,确保文摘的连贯性。

基于抽取式的自动文本摘要技术应用最广的领域在于新闻。

新闻信息的过载,让人们迫切希望有这么一个工具可以帮助自己用最短的时间了解最多的最有用的新闻,而很多新闻为了哗众取宠,故意将标题起得特别吸引眼球,但却名不副实,因此就有了Yahoo公司的Summly产品(一款新闻摘要App)。另外,新闻搜索引擎也是应用之一。

以百度搜索页中关于中国队对阵卡塔尔的世界杯预选赛新闻报道为例,可以简单说明基于抽取式的自动文本摘要技术如何帮助用户节省浏览新闻耗费的时间。

中卡预选赛之前百度搜索页中的报道情况。

当用户通过关键词搜索“中国对战卡塔尔 世界杯”相关内容时,在页面的新闻推荐列表中,每条新闻的标题下会有一个对应的简短内容摘要呈现给用户。此时用户通过浏览摘要的内容,就能大致了解整篇新闻的主要内容,并且帮助用户能在第一时间对多篇新闻内容进行筛选。

首先,搜索系统根据用户意图从新闻库中搜索出所有有关中国与卡塔尔世界杯预选赛的新闻,并且进行预处理,包括分词和分句的处理,即将文本分成一个词的集合以及句子的集合。

接下来基于一系列算法实现对于句子的重要性排序,其中典型的有基于图排序和基于特征的排序算法。图排序算法会构建一个图网络模型,文档的每句话都看作是图网络中的一个节点,句子之间的相似度作为节点之间的边权值,句子之间的相似度计算公式如下:

利用PageRank原理来迭代传播权重计算各句子的得分,作为生成短摘要的重要参数,图模型公式如下所示:

基于特征的算法主要是会考虑到句子的相关特征,例如句子长度、句子位置、关键词得分、是否包含标题词等等,通过TextTeaser算法得出句子的重要性得分。比如中卡之战新闻的短摘要中,可以看到摘要里面的内容都是跟新闻主题保持紧密相关性,没有其他冗余信息掺杂。

目前,这一模式在一些新闻编辑室中也已有所应用。比如微软(亚洲)互联网工程院的人工智能产品小冰入驻钱江晚报“浙江24小时”客户端,变身机器人记者,其中一项职能就是基于微软必应搜索引擎,利用全网大数据和公开的社交平台数据,生产包含一张图片、一个标题、一段梗概、两个观点的“新闻卡片”。

3.生成式

以上两种技术在新闻资讯领域的应用,已相对常见。而生成式,在现阶段尚无典型的产品。

生成式自然语言生成,主要指通过序列的深度学习和增强学习技术,机器可以根据现有文本生成模型,比如说机器人会把数据库里某些更新的信息用自然语言的形式写成报道。当然,这种报道不需要特别深入的调查,也不需要去了解各个事件背后的关系,理论上这是可以由机器来做的。

当前比较热门的AI生成文本的场景有:例如,用莎士比亚的作品来做训练,模型就能生成类似莎士比亚的句子;利用汪峰的歌词做训练,模型也能生成类似歌词的句子来;或者是自动生成新闻标题等等。这类产品很多都是引入了一些深度学习模型,像Seq2Seq+Attention模型等,基于大量文本集进行学习,然后自动生成一些比较接近于人类日常表达方式的文本。

Seq2Seq模型基于输入序列,预测未知输出序列。模型由两部分构成,一个编码阶段的”Encoder”和一个解码阶段的”Decoder”。如下图的简单结构所示,Encoder的RNN每次输入一个字符代表的embedding向量,如依次输入A、B、C 及终止标志,将输入序列编码成一个固定长度的向量;之后解码阶段的RNN神经网络会一个一个字符地解码,如预测为X, 之后在训练阶段会强制将前一步解码的输出作为下一步解码的输入,如X会作为下一步预测Y时的输入。Seq2Seq模型如下所示:

以下,我们选择中卡世界杯预选赛的相关新闻集合为语料,包含新闻的标题和正文的信息,基于Seq2Seq模型来尝试用机器自动生成新的标题内容。

首先对收集的新闻集合需要进行预处理,包含去除一些特殊字字符、表情符以及全角英文等等,同时对日期、数字等进行替换。在完成预处理后,准备进行训练的语料: source输入序列定义为新闻的正文内容,带预测的目标序列为该新闻内容的标题。

新闻部分核心关键词

新闻标题

机器生成标题

国足,客场,卡塔尔,强赛,主场,资格,小组,积分,乌兹别克,排名,男足,输给,拿到,比赛,形势,第三,对手,获得,参加,要素,附加赛

中国VS卡塔尔 国足想拿小组第三需满足四大要素

中国对手卡塔尔 出线形势

中国队,卡塔尔队,世界杯,客场,预赛,比赛,强赛,击败,苦主,晋级,刷卡,主场,战胜,亚洲,无缘,提前,最后,预选赛,俄罗斯

国足vs卡塔尔前瞻:出局对手多次击碎国足出线梦

卡塔尔击败中国 多次不胜

上面的表格将编辑人工生成的新闻标题与机器生成的标题进行对比,可以看到基于Seq2Seq生成方式得到的标题一定程度上能够反映内容主题,但从标题语句连贯性以及和主题相关性角度来看,还无法达到人工编辑的水平。

结语

通过上述分析,我们简单描述了目前机器人写稿的工作机制。尽管生成式,在理论上最智能,或许也可视为自然语言生成技术更高级的目标。但从现阶段的应用来看,显然模板式和抽取式,在使用效率和可靠性上更优。自然语言生成,从学术领域的研究,到陆续有一些创新产品和项目应用于工业界,是一种巨大的进步,但仍有很长的路要走。

本文分享自微信公众号 - BestSDK(bestsdk)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Github 推出检测代码新工具,支持 Ruby 和 Java

    在于旧金山 Pier 70 举办的 Github Universe 大会上,该公司宣布了一款名叫“依赖图”的新工具,旨在帮助开发者们识别代码中易受攻击的依赖项。...

    BestSDK
  • 2016,让原生APP插上HTML5的翅膀

    编辑导语 2016年,如果你的原生APP团队想要更好的运用WebView技术带来更强大的功能、更好的用户体验,一定要试试SuperWebView,它能给原生AP...

    BestSDK
  • 想做产品经理,先从写一篇PRD开始吧

    一、什么是PRD? PRD为Product Requirement Document的简称,其中文翻译为:产品需求文档。该文档是产品项目由“概念化”阶段进入到“...

    BestSDK
  • Phalcon入门教程之安装

    Marser
  • [ThinkPHP6.*安装 (草稿先发布,再维护)

    ThinkPHP6.0的安装,官方文档中有详细的说明,不过在安装之前,大家还是要做一些准备的,就是PHP本地开发环境 的搭建。

    landv
  • Kubernetes 1.16.0发布 新版本四大主题

    Kubernetes v1.16.0 已经发布,该版本由 31 个增强功能组成:8 个进入稳定,8 个进入 Beta,15 个进入 Alpha。

    Debian社区
  • 失眠者的福音:这个花生机器人能改善睡眠质量

    英国国家医疗服务体系(NHS)建议成年人每晚睡足8小时。但随着现代生活的紧张节奏和过度担忧,对许多人来说每晚睡足8小时遥不可及。根据一项研究显示,有三分之一的成...

    机器人网
  • 腾讯云自然语言处理 NLP:产品优势 & 应用场景

    自然语言处理可以说是人工智能领域内落地实践最广的技术之一,NLP产品的应用场景颇为广泛,只要有大量文本数据的场景,都可以使用我们的接口做智能分析,以下列举几个经...

    庞九公子
  • nginx之spdy配置方法

    虽然SPDY当前还并不是一个标准协议,但是GoogleChrome,Chromium,Mozilla Firefox,Opera,IE11均已支持SPDY协议....

    随心助手
  • UC浏览器皮肤的那个坑

    HTML5学堂:在之前的一款游戏开发当中,使用小米的UC浏览器查看移动端样式,出现了“不可思议”的现象。明明设置了深红色的文字,硬生生的变成了绿色,让小编大呼“...

    HTML5学堂

扫码关注云+社区

领取腾讯云代金券