如何继续NLP任务以识别意图和插槽

时间:2012-07-24 05:29:23

标签: machine-learning nlp artificial-intelligence text-processing

我想写一个关于天气问题的程序。我应该开始考虑哪些算法和技术。

例如:这个周末在芝加哥会不会是晴天。 我想知道意图 =天气查询,日期 =本周末,位置 =芝加哥。

用户可以多种形式表达相同的查询。

我想解决一些约束形式并寻找有关如何入门的想法。解决方案需要足够好。

3 个答案:

答案 0 :(得分:25)

由于您的输入是自然语言形式,因此首先要通过解析句子结构来开始研究它。并通过NER(命名实体识别器)运行句子。

解析句子可以让你想出一些规则,例如,某些类型的依赖关系总能给你意图。运行NER可以识别地点和日期。如果想出用于对意图进行分类的规则并不简单,那么您也可以使用分类器来使用从输入句子中制定的特征向量来做同样的事情。事实上,一些解析器输出可以用于制定特征向量。

两者都存在来自Stanford NLP Group

的软件

您可以查看:

一旦你解析了句子,你就有了回答这个问题的意图和其他信息。

前言:我接受了你的句子“这个周末在芝加哥会不会有阳光。”并通过Online Stanford NER Tagger运行它。这给了我以下内容:

Will it be sunny this <DATE>weekend</DATE> in <LOCATION>Chicago</LOCATION>

现在您已确定日期和地点。

我希望这会有所帮助。我知道答案非常通用,并且可能对刚开始有所帮助。

答案 1 :(得分:10)

我认为这个api正是你想要的。它使用起来非常简单和棒棒。

https://wit.ai/

答案 2 :(得分:3)

此外,https://www.luis.ai/是NLP框架的一个很好的实现。他们有一个API和一个nuget SDK。我们现在已经使用它们一段时间了。它们比我们看到的其他选项便宜。即wit.ai.

重新举例 -

例如:这个周末在芝加哥会不会是晴天 - &gt;将映射到称为WeatherQuery的LUIS意图。 日期 - &gt;将映射到预先构建的LUIS dateTime实体 位置 - &gt;芝加哥 - &gt;将映射到预先构建的LUIS实体 - &gt;我认为地理位置或地址。