【问题标题】:How to proceed with NLP task for recognizing intent and slots如何进行 NLP 任务以识别意图和槽
【发布时间】:2012-07-22 09:43:55
【问题描述】:

我想编写一个程序来询问有关天气的问题。我应该开始研究哪些算法和技术。

例如:这个周末芝加哥会晴吗? 我想知道 intent = 天气查询,date = 本周末,location = 芝加哥。

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

我想解决一些受限制的形式,并寻找有关如何开始的想法。解决方案必须足够好。

【问题讨论】:

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


    【解决方案1】:

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

    你的例子也是如此 -

    例如:本周末芝加哥是否晴天 -> 将映射到名为 WeatherQuery 的 LUIS 意图。 date -> 将映射到预构建的 LUIS dateTime 实体 位置 -> 芝加哥 -> 将映射到预先构建的 LUIS 实体 -> 我认为的地理或地址。

    【讨论】:

      【解决方案2】:

      我认为这个 api 正是您正在寻找的。使用起来既简单又棒。

      https://wit.ai/

      【讨论】:

      • 除了用记事本写的三个句子之外,该 URL 上应该还有其他内容吗?
      • 史蒂夫你抽什么我都想要。
      【解决方案3】:

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

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

      两者都有来自Stanford NLP Group的软件

      也许你可以看看:

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

      例如:我接受了你的句子“芝加哥这个周末会是晴天吗?”并通过Online Stanford NER Tagger 运行它。这给了我以下信息:

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

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

      我希望这会有所帮助。我知道答案很笼统,可能对刚开始有所帮助。

      【讨论】:

      • 感谢您使用简单的英语!也帮了我很多!
      • 优秀的起点。虽然我实际上对非自然语言输入(动作、事件、序列、对象)感兴趣......并且这样做没有启发式。
      • 根据这篇文章中的解释,intent 似乎是 NLU 解析的副产品。但是在解析器能够对意图进行分类之前,必须在过程中的某处进行意图标记。知道标记是手动过程,还是可以通过一些语言知识真正实现完全自动化?
      猜你喜欢
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2021-08-08
      • 1970-01-01
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多