0

200 万を超える名前、フェーズ、場所などのデータベース/辞書があります。サンプル データは次のとおりです。

“A person who never made a mistake never tried anything new”

“Nelson Mandela”

“United States of America”

“I didn't attend the funeral, but I sent a nice letter saying I approved of it.”

“Joseph Campbell”

“Insanity: doing the same thing over and over again and expecting different results”

“United Kingdom of Great Britain and Northern Ireland”

各エントリには、ID があります。

現在、ユーザーが私のウェブサイトにテキストを送信すると、テキストが分析され、テキスト内の名前、フェーズ、および場所のすべての外観が、ある程度の許容度 (近似一致) で検出されます。例えば:

  1. フェーズ「狂気: 同じことを何度も繰り返す」は、完全なフェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」と一致します。</li>
  2. フェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」は、完全なフェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」と一致します</li>

私のデータベースには 2 行以上の長さのフェーズがあるため、これが名前付きエンティティの問題であるかどうかはわかりません。また、正確な位相を見つけたいわけではありません。おおよその一致が必要です。

オープンソースのソリューションを探しています。前もって感謝します

4

2 に答える 2

2

考えられる解決策の 1 つは、 Luceneのような検索エンジンを調べることです。基本的に、ドキュメントを配置する独自のデータベースを作成します-あなたの場合、「狂気:同じことを何度も繰り返し、異なる結果を期待しています」。次に、「Insanity, over and over」で検索すると、エンジンが結果の順序付きリストを表示します。高度な設定が可能です。

タスクによっては、一致する必要がある可能性のあるフレーズを使用して、独自の逆インデックスを実装できます。または、拡張レーベンシュタイン距離を実装して、特定のフレーズのスコアを向上させることもできます。

于 2013-08-27T07:30:44.993 に答える