天気について質問するプログラムを書きたかったのです。私が見始めるべきアルゴリズムとテクニックは何ですか。
例:今週末のシカゴは晴れますか。知りたかったのは、意図= 天気のクエリ、日付= 今週末、場所= シカゴです。
ユーザーは同じクエリをさまざまな形式で表現できます。
いくつかの制約のあるフォームを解決し、開始方法に関するアイデアを探したいと思います。ソリューションは、十分に優れている必要があります。
天気について質問するプログラムを書きたかったのです。私が見始めるべきアルゴリズムとテクニックは何ですか。
例:今週末のシカゴは晴れますか。知りたかったのは、意図= 天気のクエリ、日付= 今週末、場所= シカゴです。
ユーザーは同じクエリをさまざまな形式で表現できます。
いくつかの制約のあるフォームを解決し、開始方法に関するアイデアを探したいと思います。ソリューションは、十分に優れている必要があります。
入力は自然言語形式であるため、最初に文の構造を解析することから始めるのが最善の方法です。NER (Named Entity Recognizer) を介して文を実行します。
文を解析すると、特定のタイプの依存関係が常に意図を与えるなどのルールを考え出すことができます。NER を実行すると、場所と日付を特定できます。意図を分類するルールを考え出すのが簡単でない場合は、分類器を使用して、入力文から定式化された特徴ベクトルを使用して同じことを行うこともできます。実際、パーサー出力の一部は、特徴ベクトルの定式化に使用できます。
両方について、 Stanford NLP Groupのソフトウェアが存在します。
あなたが調べることができるかもしれません:
文を解析すると、質問に答えるために必要な意図とその他の情報が得られます。
例:「今週末、シカゴは晴れますか」というあなたの文を取り上げました。そしてそれをOnline Stanford NER Taggerで実行しました。それは私に次のことを与えました:
Will it be sunny this <DATE>weekend</DATE> in <LOCATION>Chicago</LOCATION>
これで、日付と場所が特定されました。
これが役立つことを願っています。私は答えが非常に一般的であることを知っており、始めたばかりのときに役立つかもしれません.
このAPIはまさにあなたが探しているものだと思います。使い方は簡単で素晴らしいです。
さらに、https://www.luis.ai/は NLP フレームワークの適切な実装です。API と nuget SDK があります。しばらくの間、それらを使用しています。それらは、私たちが見た他のオプションよりも安かった. つまり、wit.ai です。
あなたの例を見てください-
例: シカゴで今週末は晴れますか -> WeatherQuery と呼ばれる LUIS インテントにマップされます。日付 -> 事前に作成された LUIS の dateTime エンティティにマップされます -> シカゴ -> 事前に作成された LUIS エンティティにマップされます -> 地理または住所だと思います。