“意图识别器”如何工作?

数据挖掘 机器学习 nlp
2021-09-27 05:53:13

亚马逊的Alexa、Nuance 的Mix和 Facebook 的Wit.ai都使用类似的系统来指定如何将文本命令转换为意图——即计算机可以理解的东西。我不确定它的“官方”名称是什么,但我称之为“意图识别”。基本上是从“请将我的灯设置为 50% 亮度”到lights.setBrightness(0.50).

指定它们的方式是让开发人员提供与意图相关联的“示例话语”列表,并且可以选择用“实体”的位置(基本上是参数)标记。以下是来自 Wit.ai 的示例:

机智的例子

我的问题是:这些系统是如何工作的?由于它们都非常相似,我假设它们都使用了一些开创性的工作。有谁知道它是什么?

有趣的是, Houndify使用了一个更像正则表达式的不同系统:["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]. 我假设它已集成到他们的语音识别系统的波束搜索中,而 Alexa、Wit.ai 和 Mix 似乎有单独的 Speech->Text 和 Text->Intent 系统。

编辑:我找到了一个起点 - A Mechanism for Human-Robot Interaction through Informal Voice Commands它使用一种叫做潜在语义分析的东西来比较话语。我要读一读。至少它给了我一个引文网络的起点。

编辑 2: LSA 本质上是比较每段文本中使用的词(词袋)。我看不出它在这种情况下如何能很好地工作,因为它完全失去了词序。尽管对于这些类型的命令来说,词序可能并不重要。

编辑 3: 隐藏主题马尔可夫模型看起来可能很有趣。

2个回答

虽然没有直接回答您的问题,但您可能对自动问答领域感兴趣。要回答自然语言文本问题,必须首先理解它们,这与您的问题重叠。

Jurafsky 和 ​​Manning的课程是一个很好的资源特别是关于语义和问答的部分可能对您正在寻找的内容有所帮助。此处的 youtube 上提供了随附的讲座视频

这篇文章有一个方法。基本上他们使用词袋 - 他们将词转换为稀疏向量,然后将它们相加。

它似乎工作得很好,但一个主要缺陷是答案与词序无关,因此除非您对它们进行特殊区分,否则您不能进行诸如“一磅有多少公斤”之类的查询。

但是我用 Alexa 发短信,它对词序变化相当不敏感,所以也许他们确实使用了类似的东西。