web-dev-qa-db-ja.com

インテントとスロットを認識するためのNLPタスクの進め方

天気について質問するプログラムを書きたかったのです。私が見始めるべきアルゴリズムとテクニックは何ですか。

例:今週末のシカゴは晴れますか。 意図 =天気クエリ、日付 =今週末、場所=シカゴを知りたかったのです。

ユーザーは同じクエリをさまざまな形式で表現できます。

いくつかの制約されたフォームを解決し、開始方法に関するアイデアを探したいと思います。解決策は十分に優れている必要があります。

23
searav

入力は自然言語形式であるため、最初に文の構造を解析することから、入力を調べるための最良の方法です。 NER(Named Entity Recognizer)を介して文を実行します。

文を解析すると、特定の種類の依存関係が常に意図を与えるなどのルールを思い付くことができます。 NERを実行すると、場所と日付を特定できます。インテントを分類するためのルールを考え出すのが簡単でない場合は、分類子を使用して、入力文から定式化された特徴ベクトルを使用して同じことを行うこともできます。実際、一部のパーサー出力は、特徴ベクトルの定式化に使用できます。

どちらの場合も、 Stanford NLP Group からのソフトウェアが存在します。

あなたが調べることができるかもしれません:

文を解析すると、質問に答えるために必要な意図やその他の情報が得られます。

例:「今週末、シカゴは晴れますか」という文を受け取りました。そしてそれを実行しました オンラインスタンフォードNERタガー 。それは私に次のことを与えました:

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

これで、日付と場所が特定されました。

これがお役に立てば幸いです。答えは非常に一般的であり、始めたばかりのときに役立つかもしれません。

27
darshan

このAPIはまさにあなたが探しているものだと思います。使い方は簡単で素晴らしいです。

https://wit.ai/

10
Weezy.F

さらに、 https://www.luis.ai/ はNLPフレームワークの優れた実装です。 APIとnugetSDKがあります。私たちはしばらくの間それらを使用しています。彼らは私たちが見た他のオプションよりも安かった。つまり、wit.ai。

だからあなたの例を再-

例:シカゴで今週末は晴れますか-> WeatherQueryと呼ばれるLUISインテントにマップされます。日付->事前に作成されたLUISにマップされますdateTimeエンティティの場所->シカゴ->事前に作成されたLUISエンティティにマップされます->地理または住所だと思います。

3
JPThorne