智能家居的自然语言处理

Edu*_*uca 8 algorithm nlp

我正在为我的学士学位编写一个智能家居软件,它只会模拟实际的房子,但我仍然坚持在项目的NLP部分.我们的想法是让客户端听取语音输入(已经完成),将其转换为文本(完成)并将其发送到服务器,从而完成所有繁重的工作.

所以我的所有输入都会很短(比如"请打开门廊灯").基于此,我想决定采取行动的对象以及如何采取行动.所以我提出了一些事情要做,以便写出一些有效的东西.

  1. 摆脱不必要的单词(在前面的例子中"请"和"the"是不改变需要做的意思的单词;但如果我说"关掉我的灯","我的"确实有一个相当重要的意义).
  2. 处理同义词("打开灯"应该与"启用灯"相同 - 我知道这是一个愚蠢的例子).我猜测唯一的选择是拥有某种字典(可能是XML),并且只有一个可能的单词列表,用于房子中的一个特定对象.
  3. 检测动词和主语."开启"是动词,"灯"是主题.我需要一个很好的方法来检测它.
  4. 一般实施.这些东西通常是如何根据算法开发的?我只是设法在智能家居中找到一篇关于NLP的文章,这篇文章很模糊(并且英文不好).欢迎任何链接.

我希望这个问题足够独特(我已经看到了关于SO的NLP问题,没有人真的有帮助),它不会被关闭.

Bla*_*sad 6

如果您没有足够的时间来处理NLP问题,可以使用将自然语言句子映射到JSON 的Wit API(http://wit.ai):

在此输入图像描述

它基于机器学习,因此您需要提供句子+ JSON输出的示例以根据您的需要进行配置.它应该比基于语法的方法更强大,特别是因为语音转语音引擎可能会出错会破坏你的语法(但机器学习模块仍然可以得到句子的含义).


Pra*_*eek 3

对于你的项目,我建议你通过斯坦福解析器

  1. 从你的问题定义来看,我猜你不需要动词和名词以外的任何东西。SP 生成 POS(词性标签),您可以使用它来修剪不需要的单词。

  2. 为此,我想不出比您现在想到的更好的选择。

  3. 为此,您可以再次使用 SP 的语法依赖结构,我非常确定它足以解决这个问题。

  4. 这就是你的研究部分所在。我想您可以使用 GD 和 POS 标签找到足够的模式来为您的问题提出算法。我毫不怀疑任何算法都足以有效地处理每组输入句子(结构化+非结构化),但准确率超过 85% 的算法对您来说应该足够好了。