Wit.ai 是一个类似 Siri 的语音界面,可以解析消息并预测要执行的操作。
它如何理解口语句子并将其转换为结构化的可操作数据?基本上,它怎么知道该怎么做?
Wit.ai 是一个类似 Siri 的语音界面,可以解析消息并预测要执行的操作。
它如何理解口语句子并将其转换为结构化的可操作数据?基本上,它怎么知道该怎么做?
我无法具体与 wit.ai 交谈,但我可以告诉你一些类似应用程序的工作原理。具体来说,我可以谈谈Apache Stanbol,它还可以将自由文本转换为结构化数据。就是说,我应该在前面说“从这里到达那里”的方法不止一种。许多技术可以成为实现这一目标的堆栈的一部分。
无论如何,在 Stanbol 的情况下,他们通过多个处理引擎依次运行文本,不同的引擎影响最终输出。一个引擎简单地使用 OpenNLP 进行命名实体识别。这个身份是离散的,命名为“事物”——人、地点、公司等。另一个引擎与预先建立的实体数据库进行实体匹配——特别是(在开箱即用的配置中)来自DBPedia的实体转储。在找到匹配项的情况下,将原始输入中的文本分配给实体。在发生冲突的情况下,它会为映射分配权重,因此任何下游消费者都可以使用概率技术来选择“正确”的映射。
当然,我遗漏了更多细节。在 NER 发生之前,有解析和标记化以及其他 NLP 活动。但基本过程的很大一部分是进行 NER,然后进行实体匹配。
对于 Stanbol,您可以添加自己的实体和相应的结构化数据,以及您自己的引擎。因此,例如,如果您想编写基于神经网络/深度学习的引擎并将其插入,您可以。