技术幕后揭秘:Siri、Alexa 或 Google Home 如何回答你的问题?
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
你是否曾好奇过苹果 Siri、亚马逊 Alexa 或谷歌 Home 如何回答你的问题?
计算机是如何理解有时连人类自己都无法理解的人类语言的?
严格来说,它被称为自然语言处理。
自然语言处理(NLP)
研究人类语言与计算机交互的领域被称为自然语言处理,简称NLP。它位于计算机科学、人工智能和计算语言学的交叉领域(维基百科)。
技术幕后:自然语言处理(基础)
免责声明:自然语言处理技术有很多种,我只会介绍其中几种。
让我给你讲一个关于尼达的例子。
妮达今年两岁,她一句语言都不会说。但是当妈妈让她喝牛奶时,她就喝了!
那么,妮达是如何处理她不懂的语言的信息的呢?
妮达的妈妈肯定给她演示过一些手势,或者训练过妮达,当她说“妮达,喝牛奶”时,妮达就必须喝牛奶。所以妮达理解了,处理了这些信息,并且把这些信息储存起来以备将来使用。整个流程之所以能够完成,是因为妮达接受过训练。如果她妈妈让她做一些妮达不知道(没有接受过训练)的事情,那么妮达就无法处理这些信息。
现在来看尼达的例子,信息处理分为两个阶段。
- 训练阶段(预处理阶段)
- 流程 + 决策阶段
训练阶段
让我再仔细看看妮达妈妈的声明。
“妮达,请喝牛奶。”
问题1:妮达是如何理解自己应该执行什么任务的?
问题2:妮达是如何理解自己应该喝牛奶而不是咖啡的?
很简单,训练Nidah时,你告诉她“喝牛奶”这个动作包含动词“喝”和一个属性“牛奶”。现在Nidah就知道该做什么任务以及该喝什么了。我会称她为“训练好的Nidah”。(严格来说,训练后的数据被称为“数据模型”)
类似地,在自然语言处理领域,动词“喝”被称为“意图”,属性“牛奶”被称为“实体”,以这种方式处理数据的方法被称为:命名实体和意图识别。
实体是可以用来回答用户请求的属性——实体通常是请求中的关键字,例如名称、日期、地点等。
意图(Intention)是指用户可以执行的特定操作,例如点饮料、下单、订票等。
有很多自然语言处理工具,例如 Google Dialogflow、Facebook 的 wit.ai、IBM Watson 或 Microsoft 的 LUIS,您可以将“训练好的数据模型”托管在这些工具上。我姑且称之为“大脑”。这些“大脑”甚至具备数据处理和决策能力。
流程 + 决策阶段
从表面上看,处理过程似乎很简单,但它实际上要经过一系列文本处理子阶段,例如词干提取和词形还原、TF-IDF、共指消解、词性标注、依存句法分析、命名实体/意图识别等等。
随着第三方 NLP 工具的发展,开发人员无需担心了解许多处理子阶段,因为这些工具会处理这些子阶段,让您的工作更轻松。
现在回到尼达的例子,如果你已经训练了“大脑”(第三方 NLP 工具),一旦大脑收到像“尼达,请喝牛奶”这样的消息,大脑就会处理该消息,并理解意图是“喝”,实体是“牛奶”。
但是大脑如何知道需要采取什么行动呢?
你甚至可以根据接收到的意图训练大脑,让它喝牛奶或发出“好的”的回应。
概括:
在自然语言处理领域,关键在于你拥有多少结构化数据(语料库)!数据越多,准确率就越高。而且,由于我们人类会不断更新语言词典,训练计算机也是一个永无止境的过程。
我希望这篇文章能为大家提供一个良好的自然语言处理入门概述。不妨问问自己以下问题:
- 连我们人类都难以理解的讽刺,电脑又该如何理解呢?
- 如何处理同义词、歧义和共指?
- 如何使用 Google Dialogflow 设计 NLP 工作流程?
接下来会发生什么:
非常感谢您阅读到这里。我的下一篇博客将介绍“如何使用 Google Dialogflow 设计 NLP 工作流程?”。敬请期待。
文章来源:https://dev.to/sandeshsuvarna/behind-the-tech-how-does-siri-alexa-or-google-home-respond-to-your-questions-6f2