1

私のプロジェクトの 1 つで apache Open NLP を実験しています。私の要件は、電子メールの内容から名詞を検出し、顧客データベース (この DB は個人名、組織名などで構成され、私の検索エンジンは Solr ベースです) を確認することです。

通常の英語の名詞の場合、デフォルトのトレーニング済みモデルは (ほとんどの場合) 適切に機能しますが、トリッキーな要件の 1 つは、OK、LET などの略語を使用するビジネス組織があるため、いくつかのシナリオで OK、LET などを考慮する必要があることです。名詞として。

例として 1) 「LET にいくつかのアイテムを送ります。支払いが遅れることをご了承ください」 2) 「パーティーに行きましょう」

#1 では LET を名詞と見なしたいのですが、#2 では LET は名詞ではありません。

この要件を達成できれば、検索エンジンでの誤検知の一致を大幅に減らすことができます。

どんな助けでも大歓迎です。

4

1 に答える 1

2

特殊名詞の辞書を作成し、後処理ステップとして辞書ベースの抽出を実行します。辞書ベースの抽出では、特に頭字語のエントリについて、小文字と大文字の区別を考慮する必要があります。

辞書検索の実装に関しては、次のとおりです。

  • 問題のエンティティが単一のトークンである限り (または、事前に定義された小さな最大数 M のトークンのみで構成される)、辞書を として実装しHashSet<String>、テキストをトークン化し、各トークン (およびグループのグループ) のハッシュでルックアップを作成します。最大 M トークン) は非常にうまく機能するはずです

  • 非常に長いエンティティを扱っている場合、またはトークン化が問題である場合は、検索トライまたはディクショナリの有限状態マシンの実装を使用することをお勧めします。

最後に、NLP の場合と同様に、結果の重要なサンプルを調べて、さらなる問題を特定する必要があります。エンティティ リストのあいまいさのレベルによっては、大文字と小文字を区別する辞書ルックアップにヒューリスティックまたは統計/ML ベースの決定メカニズムを追加して、検出方法をさらに絞り込む必要がある場合があります。

于 2012-04-23T04:29:40.440 に答える