亚马逊的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: 隐藏主题马尔可夫模型看起来可能很有趣。