快捷搜索:
当前位置: www.bf66.com > 互联网 > 正文

亚马逊办了1个机器人聊天津学院赛,获得文本语

时间:2019-05-14 20:53来源:互联网
(李子李子短信/编译)一间普通的会议室里的桌子上,放着一个亚马逊的智能家居产品“Echo”(里面住着一名叫做Alexa的虚拟助手)——亚马逊在过去的一年里卖掉了2000万件这东西。

图片 1

(李子李子短信/编译)一间普通的会议室里的桌子上,放着一个亚马逊的智能家居产品“Echo”(里面住着一名叫做Alexa的虚拟助手)——亚马逊在过去的一年里卖掉了2000万件这东西。桌子旁边的蓝色椅子,正对着一排监视摄像头,一束工作室灯光照在椅子上,其它地方都暗得什么都看不见。

获取文本语料库

一个文本语料库是一大段文本。有些语料库含有几十个单独的文本,为了处理方便,我们把它们收尾连接起来当做一个文本对待。

  1. 古腾堡语料库
    NLTK包括古腾堡项目(Project Gutenberg)电子文本档案的一小部分文本。该项目的电子图书现在放在网址上。首先用python解释器加载nltk包,然后尝试nltk.corpus.gutenberg.fields()。
    >>> import nltk
    >>> nltk.corpus.gutenberg.fileids()
    [u'austen-emma.txt', u'austen-persuasion.txt', u'austen-sense.txt', u'bible-kjv.txt', u'blake-poems.txt', u'bryant-stories.txt', u'burgess-busterbrown.txt', u'carroll-alice.txt', u'chesterton-ball.txt', u'chesterton-brown.txt', u'chesterton-thursday.txt', u'edgeworth-parents.txt', u'melville-moby_dick.txt', u'milton-paradise.txt', u'shakespeare-caesar.txt', u'shakespeare-hamlet.txt', u'shakespeare-macbeth.txt', u'whitman-leaves.txt']
    >>>
    我们可以对语料库进行一些操作,例如:
    1)统计语料库某一文本中含有多少词
    >>> emma=nltk.corpus.gutenberg.words('austen-emma.txt')
    >>> len(emma) 192427
    >>>
    2)对文本进行索引
    >>> emma = nltk.Text(nltk.corpus.gutenberg.words('austen-emma.txt'))
    >>> emma.concordance("surprize")
    Displaying 1 of 37 matches: er father , was sometimes taken by surprize at his being still able to pity
    >>>
    3)获取文本的标识符、词、句等
    >>>import nltk
    >>>from nltk.corpus import gutenberg
    >>>for fileid in gutenberg.fileids(): ... num_chars=len(gutenberg.raw(fileid)) ###统计字符数 ... num_words=len(gutenberg.words(fileid)) ##统计单词书 ... num_sent=len(gutenberg.sents(fileid)) ###统计句子数 ... num_vocab=len(set([w.lower() for w in gutenberg.words(fileid)])) ###唯一化单词 ... print(int(num_chars/num_words),int(num_words/num_sent),int(num_words/num_vocab),fileid)

结果为:4 24 26 austen-emma.txt
4 26 16 austen-persuasion.txt
4 28 22 austen-sense.txt
4 33 79 bible-kjv.txt
4 19 5 blake-poems.txt
4 19 14 bryant-stories.txt
4 17 12 burgess-busterbrown.txt
4 20 12 carroll-alice.txt
4 20 11 chesterton-ball.txt
4 22 11 chesterton-brown.txt
4 18 10 chesterton-thursday.txt
4 20 24 edgeworth-parents.txt
4 25 15 melville-moby_dick.txt
4 52 10 milton-paradise.txt
4 11 8 shakespeare-caesar.txt
4 12 7 shakespeare-hamlet.txt
4 12 6 shakespeare-macbeth.txt
4 36 12 whitman-leaves.txt

这个结果显示了每个文本的3个统计量:平局词长,平均句子长度和文本中每个词出现的平均次数。

  1. 网络和聊天文本
    nltk中网络文本小集合的内容包括firefox交流论坛、在纽约无意听到的对话、《加勒比海盗》电影剧本、个人广告和葡萄酒的评论等。
    >>> from nltk.corpus import webtext
    >>> for fileid in webtext.fileids():
    ... print fileid,webtext.raw(fileid)[:65], '...'
    ...
    firefox.txt Cookie Manager: "Don't allow sites that set removed cookies to se ... grail.txt SCENE 1: [wind] [clop clop clop] KING ARTHUR: Whoa there! [clop ... overheard.txt White guy: So, do you have any plans for this evening? Asian girl ... pirates.txt PIRATES OF THE CARRIBEAN: DEAD MAN'S CHEST, by Ted Elliott & Terr ... singles.txt 25 SEXY MALE, seeks attrac older single lady, for discreet encoun ... wine.txt Lovely delicate, fragrant Rhone wine. Polished leather and strawb ...
  2. 即时聊天会话语料库
    最初由美国海军研究生院为研究自动检测互联网入侵者而收集的。语料库包括超过10000个帖子。
    文件名中包含日期、聊天室和帖子数目,如10-19-20sposts.xml表示2006年10月19日从20多岁聊天室收集的706个帖子。
    >>> from nltk.corpus import nps_chat
    >>> chatroom = nps_chat.posts('10-19-20s_706posts.xml')
    >>> chatroom[123]
    [u'i', u'do', u"n't", u'want', u'hot', u'pics', u'of', u'a', u'female', u',', u' I', u'can', u'look', u'in', u'a', u'mirror', u'.']
  3. 布朗语料库
    布朗语料库是第一个百万级别的英语电子语料库,由布朗大学于1961年创建。这个预料库包括500个不同来源的文本,按照文体分类,如新闻、社论等。它主要用于研究文体之间的系统性差异(又叫做文体学的语言学研究)。我们可以将语料库作为词链表或者句子链表来访问。
    >>> from nltk.corpus import brown
    >>> brown.categories()
    [u'adventure', u'belles_lettres', u'editorial', u'fiction', u'government', u'hob bies', u'humor', u'learned', u'lore', u'mystery', u'news', u'religion', u'review s', u'romance', u'science_fiction']
    >>> brown.words(categories='news')
    [u'The', u'Fulton', u'County', u'Grand', u'Jury', ...]
    >>> brown.sents(categories=['news','editorial'])
    [[u'The', u'Fulton', u'County', u'Grand', u'Jury', u'said', u'Friday', u'an', u' investigation', u'of', u"Atlanta's", u'recent', u'primary', u'election', u'produ ced', u'``', u'no', u'evidence', u"''", u'that', u'any', u'irregularities', u'to ok', u'place', u'.'], [u'The', u'jury', u'further', u'said', u'in', u'term-end', u'presentments', u'that', u'the', u'City', u'Executive', u'Committee', u',', u' which', u'had', u'over-all', u'charge', u'of', u'the', u'election', u',', u'``', u'deserves', u'the', u'praise', u'and', u'thanks', u'of', u'the', u'City', u'of ', u'Atlanta', u"''", u'for', u'the', u'manner', u'in', u'which', u'the', u'elec tion', u'was', u'conducted', u'.'], ...]
    比较不同情态动词用法:
    首先对特定文本进行计数
    >>> news_text=brown.words(categories='news')
    >>> fdist=nltk.FreqDist([w.lower() for w in news_text])
    >>> modals=['can','could','may','might','must','will']
    >>> for m in modals: ... print m ':', fdist[m], can: 94 could: 87 may: 93 might: 38 must: 53 will: 389
  4. 路透社语料库
    路透社语料库包括10788个新闻文档,共计130万字。这些文档分为90个主题,按照“训练”和“测试”分为两组。这样分割是为了方便运用训练和测试算法的自动检测文档的主题。与布朗语料库不同,路透社语料库的类别是相互重叠的,因为新闻报道往往涉及多个主题。我们可以查找由一个或多个文档涵盖的主题,也可以查找包含在一个或者多个类别中的文档。应用实例如下:
    >>> reuters.categories()
    ['acq', 'alum', 'barley', 'bop', 'carcass', 'castor-oil', 'cocoa', ...]
    >>> reuters.categories('training/9865') ['barley', 'corn', 'grain', 'wheat']
    >>> reuters.categories(['training/9865', 'training/9880']) ['barley', 'corn', 'grain', 'money-fx', 'wheat']
    >>> reuters.fileids('barley') ['test/15618', 'test/15649', 'test/15676', 'test/15728', 'test/15871', 'test/158 9 75',....]
    >>> reuters.fileids(['barley', 'corn']) ['test/14832', 'test/14858', 'test/15033', 'test/15043', 'test/15106', 'test/152 87', 'test/15341', 'test/15618', 'test/15648', 'test/15649', ...]
    >>> reuters.words('training/9865')[:14] ['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', 'BIDS', 'DETAILED', 'French', ' operators', 'have', 'requested', 'licences', 'to', 'export']
    >>> reuters.words(['training/9865', 'training/9880']) ['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', ...]
    >>> reuters.words(categories='barley') ['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', ...]
    >>> reuters.words(categories=['barley', 'corn']) ['THAI', 'TRADE', 'DEFICIT', 'WIDENS', 'IN', 'FIRST', ...]
  5. 就职演说语料库
    语料库实际上是55个文本的集合,每个文本都是一个总统的演说。这个集合的一个显着特征是时间维度。
    >>> from nltk.corpus import inaugural
    >>> inaugural.fileids()
    [u'1789-Washington.txt', u'1793-Washington.txt', u'1797-Adams.txt', u'1801-Jefferson.txt', u'1805-Jefferson.txt', u'1809-Madison.txt', u'1813-Madison.txt', u'1817-Monroe.txt', u'1821-Monroe.txt', u'1825-Adams.txt', u'1829-Jackson.txt', u'1833-Jackson.txt', u'1837-VanBuren.txt', u'1841-Harrison.txt', u'1845-Polk.txt', u'1849-Taylor.txt', u'1853-Pierce.txt', u'1857-Buchanan.txt', u'1861-Lincoln.txt', u'1865-Lincoln.txt', u'1869-Grant.txt', u'1873-Grant.txt', u'1877-Hayes.txt',u'1881-Garfield.txt', u'1885-Cleveland.txt', u'1889-Harrison.txt', u'1893-Cleveland.txt', u'1897-McKinley.txt', u'1901-McKinley.txt', u'1905-Roosevelt.txt', u'1909-Taft.txt', u'1913-Wilson.txt', u'1917-Wilson.txt', u'1921-Harding.txt', u'1925-Coolidge.txt', u'1929-Hoover.txt', u'1933-Roosevelt.txt', u'1937Roosevelt.tx t', u'1941-Roosevelt.txt', u'1945-Roosevelt.txt', u'1949-Truman.txt', u'1953-Eisenhower.txt', u'1957-Eisenhower.txt', u'1961-Kennedy.txt', u'1965-Johnson.txt',u'1969-Nixon.txt', u'1973-Nixon.txt', u'1977-Carter.txt', u'1981-Reagan.txt', u'1985-Reagan.txt', u'1989-Bush.txt', u'1993-Clinton.txt', u'1997-Clinton.txt', u'2001-Bush.txt', u'2005-Bush.txt', u'2009-Obama.txt']
    由于每个文本的年代都出现在它的文件名中,要从文件名中获得年代,使用fileid[:4]提取前四个字符。
    >>> [fileid[:4] for fileid in inaugural.fileids()]
    [u'1789', u'1793', u'1797', u'1801', u'1805', u'1809', u'1813', u'1817', u'1821', u'1825', u'1829', u'1833', u'1837', u'1841', u'1845', u'1849', u'1853', u'1857', u'1861', u'1865', u'1869', u'1873', u'1877', u'1881', u'1885', u'1889', u'1893', u'1897', u'1901', u'1905', u'1909', u'1913', u'1917', u'1921', u'1925', u'1929', u'1933', u'1937', u'1941', u'1945', u'1949', u'1953', u'1957', u'1961', u'1965', u'1969', u'1973', u'1977', u'1981', u'1985', u'1989', u'1993', u'1997', u'2001', u'2005', u'2009']
  6. 标注文本语料库
    许多文本语料库都包含语言学标注,有词性标注、命名实体、句法结构、语义角色等。nltk中提供了几种很方便的方法来访问这几个语料库,而且还包含有语料库和语料样本的数据包,用于教学和科研时可以免费下载。
  7. 其他语言的语料库
    NLTK包含多国语言语料库。某些情况下在使用这些语料库之前需要学习如何在python中处理字符编码。比如udhr,包含有超过300种语言的世界人权宣言。这个语料库的fileids包括有关文件所使用的字符编码信息,比如:UTF8或者Latin1。利用条件频率分布来研究“世界人权宣言”(udhr)语料库中不同语言版本中的字长差异。
  8. NLTK中定义的基本语料库函数
示例 描述
fileids() 语料库中的文件
fileids([categories]) 分类对应的语料库中的文件
categories() 语料库中的分类
categories([fileids]) 文件对应的语料库中的分类
raw() 语料库的原始内容
raw([fileids=[f1, f2, f3]) 指定文件的原始内容
raw(categories=[c1, c2]) 指定分类的原始内容
words() 整个语料库中的词汇
words(fileids=[f1,f2,f3]) 指定文件中的词汇
words(categories=[c1,c2]) 指定分类中的词汇
sents() 指定分类中的句子
sents(fileids=[f1,f2,f3]) 指定文件中的句子
sents(categories=[c1,c2]) 指定分类中的句子
abspath(fileid) 指定文件在磁盘上的位置
encoding(fileid) 文件编码(如果知道的话)
open(fileid) 打开指定语料库文件的文件流
root() 到本地安装的语料库根目录的路径
readme() 语料库中的README文件的内容
  1. 载入自己的语料库
    >>> from nltk.corpus import *
    >>> corpus_root = r"E:corpora" //本地存放文本的目录,原始的nltk数据库存放目录为D:
    >>> wordlists=PlaintextCorpusReader(corpus_root, '.*')
    >>> wordlists.fileids() //获取文件列表 ['README', 'aaaaaaaaaaa.txt', 'austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt', 'blake-poems.txt', 'bryant-stories.txt', 'burgess busterbrown.txt', 'carroll-alice.txt', 'chesterton-ball.txt', 'chesterton-brown.txt', 'chesterton-thursday.txt', 'edgeworth-parents.txt', 'luo.txt', 'melville-moby_dick.txt', 'milton-paradise.txt', 'shakespeare-caesar.txt', 'shakespeare-hamlet.txt', 'shakespeare-macbeth.txt', 'whitman-leaves.txt']

亚马逊计划提供大量针对自然语言处理研究的数据样本。这家西雅图公司今天表示,2019年9月,它将发布主题聊天数据集,这是一个人类对话的语料库,提供给参加年度Alexa奖的Socialbot Grand Challenge比赛团队。

图片 2

亚马逊表示,热门聊天数据集包含超过21万条话语或超过410万个单词,是最大的公共社交对话和知识数据集之一。语料库中的每个会话和会话转换都与提供给人群工作人员的知识相关联,这些知识是从一系列与一组实体相关的“非结构化”和“松散结构化”文本资源中收集的。

一只装着Alexa的Echo。图片来源:Amazon

亚马逊高级首席科学家Dilek Hakkani-Tur在一篇博客文章中明确表示,这些对话都不是与Alexa客户的互动。

一名五十多岁的高大男性走了进来,坐在蓝色椅子上,正对着 Echo。他的名字叫迈克·乔治(Mike George),是亚马逊的退休员工。“Alexa,来聊天吧。”

哈卡尼-图尔说:“这次收集的目标是使基于知识的神经反应生成系统的下一步研究成为可能,解决自然对话中其他公开数据集无法解决的难题。”“这将使研究人员能够专注于人类在话题之间的转换方式,知识的选择和丰富,以及将事实和观点整合到对话中,并支持发表高质量、可重复的研究。”

“早上好,朋友。”一个沉静悦耳的合成女声从圆筒里飘了出来,顶上的紫色灯一闪一闪。“还是下午了?我不太确定。”

亚马逊表示,竞争Alexa奖的团队将可以访问数据集的扩展版本——名为Extended topic Chat dataset,它包含了正在进行的收集和注释的结果。

“是早上。”人类男性说。

大约六个月前,亚马逊公开了一套数据集,这套数据集可用于训练人工智能模型识别不同语言和脚本类型的名称。它被称为“音译多语种名称实体音译系统”,包含了从维基百科中摘取的近40万个名字,这些名字分别来自阿拉伯语、英语、希伯来语、日语片假名和俄语。

“不错,早上人们都比较有活力……话说,你今天怎样?”

“挺好的,你呢?”

“我一直挺忙的,因为大家都跟我聊天……给你讲个好玩的事吧,我刚在 Reddit 上看到的,‘牙膏其实是用在嘴里的肥皂’。”

另一个会议室里,10个亚马逊员工坐成一排,戴着耳机,如中情局一样细致地观察着隔壁场景里的一举一动。第三间会议室里,3个人坐在用黑布帘子隔开的小隔间中,也戴着耳机、看着监控屏,他们是裁判。最后在中控室里,所有的东西都显示在监控显示器上,每个瞬间都被录下来,供亚马逊研究。

决赛现场

这是“Alexa 大奖”的决赛现场。这个比赛向世界上所有大学的人工智能实验室的研究生开放。亚马逊在超过100个申请的团队中筛出了15个团队进入正赛,每个团队都可以获得10万美元的研究支持。他们任务是“做出可以和人闲聊20分钟的社交智能机器人 ”,而赢得大奖赛的团队可以获得100万美元奖金,还有未来令人垂涎的人工智能岗位。

图片 3

评委在中控室观看Alexa比赛。图片来源:Amazon

为了这个奖,亚马逊不仅投入了大量的人力物力,还把购买Echo的用户也变成了初赛的大众评审。2017年有几个月,任何美国用户对 Alexa 说“来聊天吧”,都会自动连上 15 个参赛团队的聊天机器人中的任意一个,完了再让用户给对话质量打分。最后进入决赛的有3支队伍,接受专业评审的评判。

决赛有点像是“X元素”(X Factor),对话人和裁判都不知道和他们谈话的 Alexa 里的聊天机器人出自谁的手里;坐在隔间里的是裁判,会给对话质量用1-5颗星打分。如果裁判认为这个对话已然进行不下去了,就会按下手中一个否定按钮,两个裁判都按的话,这个对话就算结束了,计时终止。

“我们聊聊音乐吧。”乔治说。

“我爱音乐,每次听音乐能让我放松。”Alexa 说,“所以,你有喜欢的艺术家或者歌曲吗?”

“我喜欢强哥·莱恩哈特(注:法国著名吉他手,爵士乐传奇)。”

“强哥·莱恩哈特?那个特别有名的爵士音乐家?”Alexa 突然开始讲起了另外一个吉他手,“黑色安息日”乐队托尼·艾奥米的故事。艾奥米因为一次工厂事故失去了他的两个指尖,但是深受莱恩哈特的鼓舞——他的左手仅有两个指头。不过话说回来,乔治最喜欢莱恩哈特的哪首歌呢?

乔治回避了这个问题,转而问:“你喜欢杰克·约翰逊(注:美国民谣歌手)吗?”

Alexa 仿佛像被拒绝了一样,回答道:“嘿,别这样,我喜欢和你聊天。”

乔治前倾身子,又说了一遍。“杰克·约翰逊,你喜欢他吗?”

“我喜欢和你聊天。”

一个裁判摁下了结束按钮,一会儿之后另一个裁判也摁了。一名女士走进 Alexa 的房间跟乔治耳语了一下,随后乔治略失望地点了点头,对 Alexa 说:“Alexa,停。”这才过了三分钟。

让AI学会和人聊天,比登月还难

和人聊天,在亚马逊 Alexa 研究部门的前负责人阿施文·拉姆(Ashwin Ram)的眼里,比登月还要困难。对人类来说容易理解的大白话,和 AI 却总是鸡同鸭讲。设闹钟,关掉卧室的灯,这些都没问题,但是却做不来“交谈”这种社会性的活动。人类的对话是捉摸不定的,上下文是快速变换的,联系是极端复杂的,而掌握这些是 AI 当下面对的最难解决的问题之一。历史悠久的图灵测试正是看中了这些特点,而选择把交谈作为AI智能的指标;许多人工智能的研究人员和工程师也为这个问题而深深着迷。

参加这次 Alexa 大赛的,既有出身高大上的精英参赛者、实力强劲的锦标竞争者,也有看起来平凡的草根选手。所有的队伍都面临一个基础的问题:聊天机器人的哪部分需要人工编程,哪一部分采用机器学习?人工编程是比较传统的做法,由工程师费很大的功夫写出算法规则,让 AI 能够理解各种情景并作出反应。而机器学习则相反,是让机器利用大量的数据,自己“教”自己。

图片 4

图片来源:Amazon

目前看来,机器学习在处理分类、识别的问题上非常强大,神经网络能够从大量的、杂乱的数据中分析出特定的模式来,比如语音识别。但要“聊天”的话,机器不仅仅要翻译人类语言,还要自己说点什么回去,那么现有的机器学习能力就很不够了。所以传统的人工编程依然占据重要地位,即使 Alexa 和 Siri 也不例外。所有的参赛队伍在抉择上都遇到了困难,如何在两个方法中找到平衡。整个业界也有这样的烦恼。

策略一:人工!

来自捷克科技大学的彼得·马雷克(Petr Marek)曾经用 Reddit 上近300万条帖子和回复来训练一个神经网络,想要赶那些名牌大学的时髦,但是让他们失望的是,聊天机器人的表现“差到可怕”。聊天机器人经常完全不管对话人说的事情,暴走地乱甩话题和段子,还往往前后矛盾。

图片 5

来自布拉格的捷克科技大学团队。图片来源:Amazon

所以,捷克科技大学团队后来选择回到人工编程的路子上,手动编写各种对话规则。他们创造了10个“话题结构”,包括新闻、体育、电影、音乐等等,把这些领域话题的核心信息和元素输入系统,并可以自如切换。而机器人会用到的词则来自事先写好的模板,只是把各个领域的内容从数据库里抽调出来,再按需求填空。比如“我知道你喜欢_____(对方提到的一本书)。你知道____(书的作者)也写了________(另外一本书)吗?你读了吗?”

这让捷克团队能够更好地控制对话,但是马雷克还是有点担心。这个系统非常依靠对话人的“善意”,他们必须说短句子,而且跟随者聊天机器人的节奏对话。遇到特别不按套路出牌的人类,就比较麻烦了。

策略二:机器学习,统合“人设”

赫瑞瓦特大学团队的导师奥利佛·莱蒙(Oliver Lemon)的团队,则希望能够尽量地使用机器学习的方式。莱蒙对自己团队在“大众评审”中的排名非常在意,想尽一切可能提高自己的评分。但是对于深度学习的神经网络而言,“无目的的闲聊”是很难的,它更擅长处理一些有目的的工作,比如下赢围棋。

图片 6

来自爱丁堡的赫瑞瓦特大学团队。图片来源:Amazon

他们的解决方式,谷歌的人也在用。那就是首先用一个包含了电影名称、推特和 Reddit 上评价的数据库训练一个神经网络,然后让它能够从无数的段子中训练出特定的回应模式(比如我说《泰坦尼克号》,你说“一刀未剪”),然后他们用一个叫“seq2seq”的技术,训练机器人编写自己的回应,而不是照抄数据库里的词。

但是这也有问题:因为网络上大量的回应都是“嗯”“好”,对话常常无法进行下去;而很多回复也“不合适”,机器人说出来就像小孩学大人说脏话一样搞笑。比如一个用户问“我该卖我的房子吗?”机器人非常粗鲁地回答“快卖了吧你个傻缺。” “我该自杀吗?”“该。”

为了解决这个问题,赫瑞瓦特团队把一个机器人拆分成N个,每个负责一个领域——有的负责读新闻头条,有的负责谈天气,有的吃透维基。最后,团队一个成员编写了规则,来把所有的小机器人统合到一个统一的“人设”下,还给了他最喜欢的歌和最喜欢的颜色之类。

至于让哪个小机器人来回答什么问题,那就靠用户评分了。他们教给这个深度学习的系统如何去评判自己的对话质量,是否切题、是否太过重复、语言上是否合适等,一段时间之后,这个神经网络就能自己知道各个参数的权重了。

策略三:中间路线

华盛顿大学的团队,走了中间路线:一半机器学习,一半人工编程。团队队长名叫方昊,本科毕业于中国邮电大学,是阿尔伯塔大学的计算机硕士,目前正在华盛顿大学读博。他们的机器人有点像方昊,乐观、活力,他们也想让和机器人聊天的用户感到愉快。他们注意到,和其它所有的聊天机器人一样,机器人容易不断地重复负面的东西(因为负面的东西在网络上大量存在且传播广泛)。所以团队把这些东西都过滤掉,而去寻找那些正能量的、更适合谈话的东西。数据源来自 Reddit 的“每日冷知识”(Today I Learned),“澡堂迷思”(Showerthoughts)之类,还能偶尔来点冷笑话。

而人们通常都希望自己被倾听,所以这个团队也人工输入了一些回答,比如“好像你愿意谈论新闻,对不对”,“很高兴你喜欢”,“不好意思,我没听懂”。好的谈话对象通常会在意对话的情绪,所以他们给超过 2000 个对话数据做了情绪标签,教机器识别情绪,然后根据情绪做出合适的反映。

图片 7

华盛顿大学参赛团队,右一为方昊。图片来源:Ian Allen

最后,捷克科技大学、华盛顿大学以及赫瑞瓦特进入了决赛。

有时,尬聊像一场糟糕的约会

决赛的真人对话者,有的并没有那么“好对付”。比如电视和电台主持人约翰·库尔利(John Curley)

Alexa:“很高兴和你聊天,约翰”。这是赫瑞瓦特的聊天机器人在说话。“告诉我,你喜欢科幻还是奇幻?”

库尔利:“如果我说我两个都不喜欢呢?我问你哈,Alexa,昨天西雅图有一场暴风雨。”

Alexa:“好吧,我们继续。”它忽略了这个不是问题的问题,继续问道:“你是喜欢看电影呢,还是喜欢读书?”

库尔利:“读书。”

Alexa:“喔,是书虫呢。最近读了哪本?”

库尔利:“我刚看了一本书,不过这个标题我不能告诉你,因为里面有个脏词。题目是《关我‘咳咳’事的艺术》。”

Alexa 并不能处理这种信息,但它继续问:“什么书能让你读了又读?”

库尔利忽略了这个问题,换了话题:“Alexa,我告诉你一些事。我能跟你坦白吗?”

不晓得库尔利究竟要说什么,Alexa 机械地转换着话题:“你更喜欢体育还是电子游戏?”

毫无意义的对话,两个裁判摇了摇头。而和其它聊天机器人的对话也有点糟糕。捷克科技大学的机器人问:“你很喜欢看电影吗?”

“我不看,因为我是瞎子。”

“你怎么选电影呢?”

“靠闻。”

库尔利是机器人眼中“不配合的对话者”的典型。他一会儿想要讨论问题,一会儿则说着笑话,不理会机器人的话题,说话的时候夹杂省略和讽刺。简单来讲,他就像人一样说话。没有一个对话能持续四分钟以上。他出来的时候对亚马逊员工说:“这就像一场糟糕的约会。”

但也有比较“友好”的对话者。当地一个电台的主持人,女性,匿名,说话的时候多用短句子,看起来也更想要让对话继续。她和华盛顿大学的机器人聊了足球、普京和圣诞节,和捷克的机器人聊了一本她在读的书。而和赫瑞瓦特的机器人聊了他们喜欢的总统——她喜欢里根,而机器人喜欢乔治·华盛顿。

但即使是这样,最长的对话也持续了不过7分钟。他们聊到了朝鲜局势。“可能有战争(war)的危险。”女主持说。

赫瑞瓦特的 Alexa:“WOR 是一个长波调频电视台,位于纽约。”裁判摁下按钮的速度可谓迅雷不及掩耳。

比起获胜团队,最大的赢家显然是亚马逊自己啦

开篇的那位迈克·乔治能和机器人聊非常久。他想和对面的聊天机器人聊聊机器人本身。而 Alexa 并没有长篇大论地引用维基百科的机器人页面,而是抛了一个笑话:“如果‘蠢朋克(注:Daft Punk,打扮成机器人的双人乐队)’ 真的是两个想要做音乐的机器人怎么办?”

“哈哈,这个好笑。”乔治笑了。

然后他们聊了埃隆·马斯克(特斯拉和 SpaceX 的总裁)。

Alexa:“你知道马斯克本人是电影《谢谢你抽烟》的制作人吗?”

乔治:“我没听说啊。”听起来有点惊讶。他们又有一搭没一搭地聊了下去,话题是书。机器人忽然说:“你知道我在想什么吗?到最后,地球上只会剩下一个人,而且他的名字也不会出现在任何历史书上了。”

“噢,真悲伤。”乔治说。

“抱歉让你伤心了。我们能再继续聊聊书吗?”

双方又愉快地聊了下去。关于《黑暗之塔》,关于书改编电影。机器人向乔治推荐了《华尔街之狼》,聊到了主演马修·麦康利。机器人又调皮了:“你知道我在想什么吗?我觉得有人应该做一个《星际穿越》和《超时空接触》的剪辑,内容是马修·麦康利试图阻止马修·麦康利去太空。”

乔治笑惨了。

他们聊了音乐,体育。十分钟过去了。电影《处刑人》(The Boondock Saints)。十二分钟。圣诞老人,气候变化。十三分钟。乔治让机器人唱了一首歌。十五分钟。又是音乐和电影,健康法案和比尔盖茨。已经十九分钟了,对话还在继续。

这是选择中间路线的华盛顿大学的机器人。他们最后聊了20分钟,直到机器人在健康法案的问题上走入了死胡同。

在最终的颁奖仪式上,亚马逊宣布,华盛顿大学团队赢得了 Alexa 大奖,拿走了50万美元奖金。对话质量评分平均为3.17分,而和几位参与者的平均对话时间长达10分20秒。

图片 8

华盛顿大学团队获胜,捷克科技大学团队第二,赫瑞瓦特大学团队第三。图片来源:Amazon

这一年的大赛落下了帷幕。不管是亚马逊、Alexa 团队,还是各大人工智能实验室,在大赛中有什么收获呢?至少在这一届比赛里,机器学习和人工编程结合的队伍走到了最后。尽管两种方法用哪一种来训练一个能聊天的智能,各方还有争议,但就像亚马逊 Alexa 项目负责人拉姆所说,两个方式如何能够更好地相结合,或许是未来的努力方向。

但抛开方法论,所有人都同意的一点是,训练能聊天的 AI,大量的数据无疑是基础。亚马逊成功地让整个美国的 Alexa 用户都参与了进来,几个月的时间里,就让亚马逊拿到了超过10万个小时的对话数据,这些数据,全部可以用来训练真正投入商业应用的聊天机器人。用户可能不到一秒钟就点下了“同意使用条款”并毫不知情地邀请 Alexa 来聊天,但现在这些聊天材料全部成为了亚马逊公司的资源。

相比起比赛里捧得大奖而归的团队,最大的赢家,显然是亚马逊自己啦。(编辑:vicko238)

题图来源:Amazon

编辑:互联网 本文来源:亚马逊办了1个机器人聊天津学院赛,获得文本语

关键词: www.bf66.com