0

ユーザーの用語を理解したいです。誰かが「Staples in NY」を検索しているとします。これは、キーワードが主食で場所がニューヨークの場所検索であることを理解したいと思います。同様に、誰かが「cat in hat」と入力した場合、パーサーはそれを位置検索としてフラグ付けするべきではありません。ここでは、キーワード全体が「cat in hat」です。検索用語を解析し、その比較 (A と B など) またはロケーション ベースの検索 (X の A など) を理解するために利用できるアルゴリズムまたはオープン ソース ライブラリはありますか?

4

3 に答える 3

3

あなたが説明する問題は、情報抽出と呼ばれます。多くのアルゴリズムが存在しますが、最も単純なものは正規表現マッチングであり、最も構造化された機械学習です。最初に正規表現を試し、Python を知っている場合はNLTKなどを調べてください。

プログラムが「NY」が場所であることを認識していれば、「NY のステープルズ」と「帽子をかぶった猫」を区別することができます。大文字で、または地名辞典と呼ばれるリストに「NY」が出現することでわかります。

一般的に問題はAI-completeであるため、良い結果が必要な場合は、多くの労力を費やすことを期待してください.

于 2011-06-20T19:53:15.067 に答える
1

このような言語規則は、GATE やhttp://code.google.com/p/graph-expression/などの文法で記述する必要があります。例: (LocationLookup) の Token+。

于 2011-06-21T07:29:16.280 に答える
0

よくわかりませんが、解析に関する私の経験によると、2つのアプローチがあります-

  1. 式を解析して値/パラメーターを収集できる文法を定義します。検索の種類を推測できるキーワードの辞書を作成することをお勧めします。

  2. 式自体が検索の種類を示すように、文法を厳密に定義してください。例: LOC: A in B 、VALUE $ からユーロ。等

パーサーについては、ANTLR / jcup & jflex を参照してください。

于 2011-06-20T19:53:38.263 に答える