20

天気に関する質問をするプログラムを作成したかったのです。私が見ていなければならないアルゴリズムとテクニックは何ですか?インテントとスロットを認識するためのNLPタスクの進行方法

例:今週のシカゴでは晴れですか? インテント =天気クエリの日付 =今週末、の位置 =シカゴを知りたいと思っていました。

ユーザーは、同じクエリを多くの形式で表現できます。

私はいくつかの制約付きフォームを解決し、どのように開始するかについてのアイデアを探したいと思います。ソリューションは十分に良いだけである必要があります。

答えて

24

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

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

:両方が存在するソフトウェアのStanford NLP Group

からの場合

はあなたの中に見ることができるかもしれませ情報は質問に答える必要があります。

例:私はあなたの文章を「この週末はシカゴで晴れですか? Online Stanford NER Taggerまで実行しました。これは私に以下を与えました:

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

ここで、日付と場所を特定しました。

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

+0

平易な英語を使用していただきありがとうございます!私も助けてくれました! –

+0

優れた出発点。私は実際に非自然言語の入力(アクション、イベント、シーケンス、オブジェクト)に関心がありますが、ヒューリスティックなしでそうしています。 –

+2

この記事にある説明に基づいて、意図はNLU解析の副産物であるようです。しかし、パーサーがインテントを分類できるようになる前に、プロセスのどこかにラベルを付けることが意図されていたはずです。ラベリングが手作業であるかどうか、あるいは言語学的な知識によって完全に自動化できるかどうか – bhomass

10

私はこのapiがまさにあなたが探しているものだと思います。使用するのは簡単ですばらしいです。

https://wit.ai/

3

さらに、https://www.luis.ai/はNLPフレームワークの良い実装があります。彼らはAPIとナゲットSDKを持っています。私たちはしばらくそれを使ってきました。彼らは私たちが見た他の選択肢より安かった。すなわちwit.ai.

だからあなたの例を再 -

例:それはシカゴでこの週末晴れだろう - > WeatherQuery呼ばLUISの意図にマップします。 date - >は、あらかじめ構築されたLUIS dateTimeエンティティ ロケーション - > chicago - >は、あらかじめ構築されたLUISエンティティ - >地理またはアドレスにマップされます。

関連する問題