1

事前定義された文字列のあいまい一致がないかすべてのエントリをチェックして、テキスト記事のストリームをフィルタリングする必要があります(スペルミスのある製品名を検索しています。語順が異なり、「:」や「、」などの余分な文字以外の文字が含まれている場合があります)。

この記事をスフィンクスインデックスに入れて検索すると素晴らしい結果が得られますが、残念ながら毎秒数百の記事を取得し、すべての記事を取得した後にインデックスを更新するのは遅すぎます(そのようなタスク用に設計されていないことを理解しています)。100kbまでの小さなテキストのメモリインデックスを組み込み、あいまい検索を実行できるライブラリが必要ですが、このようなものはありますか?

4

2 に答える 2

1

この問題は、ベイジアンスパムフィルタリングとほぼ同じであり、すでに作成されているツールは、基準に従って認識するようにトレーニングすることができます。

コメントに応じて追加

では、ストリームをどのようにビンに分割していますか?分離された記事のコーパスがすでにある場合は、それを分類子にフィードするだけです。ベイジアン分類器は、コンテキスト内でファジーコンテンツマッチングを行う方法であり、スパムからヌクレオチド、天文スペクトルカテゴリまですべてを分類できます。

確率的でない方法(レーベンシュタインなど)を使用することもできますが、ある時点で、ヒットとミスの違いを説明する必要があります。ベイジアン法の利点は、特に分離されたコーパスがすでに手元にある場合、実際にどのように分類しているかを明示的に知る必要がないことです。

于 2010-07-11T18:44:44.023 に答える
1

sqlite fts3 拡張機能を使用するのはどうですか?

fts3(content TEXT) を使用して仮想テーブル enrondata1 を作成します。

(列はいくつでも作成できます。すべての列に索引が付けられます)

その後、好きなものを挿入し、インデックスを再構築せずに検索できます-特定の列または行全体に一致します。

( http://www.sqlite.org/fts3.html )

于 2010-07-11T19:59:33.047 に答える