亚马逊的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似乎具有单独的“语音”->“文本”和“文本-> Intent”系统。
编辑:我找到了一个起点- 一种通过非正式语音命令进行人机交互的机制。它使用一种称为“潜在语义分析”的方法来比较话语。我将继续阅读。至少它为我提供了引文网络的起点。
编辑2: LSA本质上是比较文本每一段中使用的单词(单词袋)。我看不到它在这种情况下如何很好地工作,因为它完全失去了单词顺序。尽管对于这些类型的命令来说,单词顺序并不重要。
编辑3: 隐藏主题马尔可夫模型看起来可能很有趣。