专栏名称: 混沌巡洋舰
混沌巡洋舰, 给您洞穿未来的视力。我们以跨界为特色, 用理工科大牛的科学思维帮你梳理世界的脉络。
目录
51好读  ›  专栏  ›  混沌巡洋舰

AI 微视频连载-NLP与聊天机器人

混沌巡洋舰  · 公众号  · 科学  · 2017-03-18 07:03

正文

周末了,给大家带来两期由集智学园的志愿者翻译的AI 短视频,每节5分钟左右,每期围绕一个主题来讲。


首先要讲的这期说的是 NLP、分词与句法分析器



 

NLP

其实不管是语音助手还是语意识别,在本质上都是先将语音转化为文本,这一步单独称为语音识别;在语音转化为文字后,AI再对文本进行“阅读理解”,最终可以识别出隐含文字中的意图。

所以在每个强大的语音助手背后,都有一个贤惠的AI阅读者。而AI阅读者的核心,就是“自然语言处理技术”,也就是我们常说的NLP(Natural Language Processing)。

NLP的应用范围非常广泛。搜索引擎依靠NLP来理解你所查询问题的确切含义,从而为你反馈更加精确的信息。微博平台使用NLP技术,分析用户的推文与留言,从而提取当下最热门的话题。出门问问公司使用NLP技术,实现车内语音识别,听歌和导航再也无需动手操作。

谷歌的技术总监Kurzweil说过:『语言是AI的关键,一个能像人类一样,无差别与人类交流的计算机才是一个真正的人工智能。』人类千百年来的历史与文化,全部记录在人类的语言和文字中,如果能让AI理解到这些语言与文字,就建立了一座连通AI与人类世界的桥梁。 


 

分词


在这个世界上有6500种已知的语言,它们每个都有自己独特的语法和规则。如果仅通过编写程序逻辑来处理语言,那将产生无比巨大的工作量,在可观的时间内根本无法实现。

那如何才能在浩瀚无垠的语言文字中找到规律,是时候让机器学习来大展神威了。

自然语言处理问题比一般的机器学习问题要复杂的多。因为不能通过单独标注出每个词的意思来生成整段文字的含义。就比如“北京西站南广场东”到底是哪个方向?

要解决这样的问题,我们首先要标记出句子中每个词的“语法词性”,即标记出句子中所有的“名词”、“动词”、“代词”、“副词”等等。然而仅标记出每个单词的词性也是不够的,一段文字往往有多种可能的句法结构;一个有20~30词量的句子,可能同时存在几百种可能的解释。


 

句法分析器


所以我们需要一个句法分析器,来找到句子中所有可能的句法结构,并从中选出合理性最好的一个。在本集中我们将要使用Google发布的“Parsey McParseface”,作为我们的语法解析器。它可以从左到右,依次处理单词间的关系,建立单词间的“关系连接弧”。

在整个处理过程结束后,会产生一个“根词”。在上图的句子中,产生的根词就是“booked”。同时我们也可以获取与根词有联系的词,比如“ticket”。找到“根词”再通过词与词之间的联系,就能分析出整句话的意图。比如在语音助手的应用中,对于“我要打车去三里屯”,就能分析出根词为“打车”,与之有联系的词是“三里屯”。分析出了用户的“动作”和“目的”,语音助手就可以为用户提供服务啦。

想看Siraj更有趣的讲解与更详细的操作步骤,请戳视频。

【建议在WI-FI下观看】


有了自然语言处理,我们会试图去做一个个人语音助手


语音助手将会是非常实用的人工智能应用。为什么这样说哪?因为语音助手可以把我们从繁杂的用户界面中解脱出来。比如,我想在三里屯找一家人均消费100以上有WI-FI的火锅店。

如果使用APP,OK,打开APP,寻找位置,选中WI-FI选项,查找人均消费,看评价……



然而使用语音助手,直接对它说:“我要去三里屯附近,有停车场,人均消费100以上有WI-FI的火锅店”。啪~以迅雷不及掩耳盗铃儿响叮当之势,要找的店就出来了,方便不?


那么类似于这种的,能够提供个人服务的聊天机器人是怎么创造出来的?

别急,先让我们看看聊天机器人的发展历程:

最早的聊天机器人是基于“匹配与表达”的。这种机器人对同样的问题只会给予同样的答案,并且同一个问题换种问法他就答不上来了。



Human: what day is it today?

Machine: Wednesday

Human: today is what day?

Machine: i am sorry, i don't understand.


为了改善这种情况,一些公司开始使用一些复杂的启发式算法,比如使用机器学习分类器。在这种实现方式下,针对一个语句,系统会分析出这个语句的意图。一些问题的语言表达方式不同,但是具有相同的意图,比如:“今天天气怎么样”,“今天会不会下雨”。机器根据分析出的意图,就能给予相应的答复。比如上面我们问到的“我要去三里屯找一家人均消费100以上有WI-FI的火锅店”,就能分析出“吃饭”、“火锅”、“人均消费100+”、“地点三里屯”这几个意图。



还有一种聊天机器人是基于“生成模型(Generative Model)”的,这正是今天Siraj要给大家讲的。

话说有两位谷歌研究员发布了一篇论文《A Neural Conversation Model》,其中讲到他们在2个数据集上训练了一个神经网络模型。他们首先将模型在“电影对白数据集”上训练,使模型能够进行简单的英语对话。然后再将模型放在“IT技术支持数据集”上训练,使模型拥有“IT技术支持”领域的专业知识。在模型完全训练完毕后,他们找来一些真正需要IT技术支持的人来测试这个数据集,然后这个AI模型真的卓有成效的解决了这些人的问题。


Human:  i am at home

Machine: try this

Machine: goto page and enter your name and password

Human: done

Machine: try logging in with and check if its working fine now

Human: yes, now it works!


如此神奇的机器人,快来看Siraj是如何将它实现的吧!



扩展阅读

使用深度学习来做机器翻译

如何用深度学习进行【语音识别】