2

ディスカッション フォーラム データベースに全文検索を実装しました。Google の方法で検索結果を表示したいと考えています。非常に長い html ページの場合でも、検索結果リストに表示されるテキストは 2 ~ 3 行だけです。通常、これらは検索語を含む行です。

テキスト自体と検索用語に基づいてテキストの数行を抽出する方法の良いアルゴリズムは何でしょうか。テキスト内で検索用語が出現する前に 1 行のテキストを使用し、その後に 1 行を使用するだけの簡単なことを考えることができますが、それは単純すぎて機能しないようです。

いくつかの方向性、アイデア、洞察を得たいと思います。

ありがとうございました。

4

3 に答える 3

2

「前/後の行」アプローチよりも優れたものを探している場合は、サマライザーがそのトリックを実行する可能性があります。

これがナイーブベイズベースのシステムです:http: //classifier4j.sourceforge.net/

ベイズは多くのスパムフィルターで使用されている統計システムです。数年前にベイズの定理を調べたところ、処理するテキストが適切な量である限り、ベイズの定理はテキストを要約するのに非常に優れていることがわかりました。ただし、実際には上記のライブラリを試したことがないので、マイレージは異なる場合があります。

于 2009-06-05T06:27:48.310 に答える
0

コンテンツの冒頭に集中してください。ブログにアクセスしたときにどこを見るかを考えてください。最初の段落は、記事が正しい方向に進んでいるかどうかを示します。したがって、アルゴリズムでこれを反映することは理にかなっています。

見出し (H1、H2 など) での検索語の出現を確認し、それらを優先します。

これで始められるはずです。

于 2009-06-05T09:10:59.967 に答える
0

コードで「検索語出現の前後の行」を試して、その単純なコーディングへの投資で、結果が目的に十分かどうかを確認しましたか? もう十分かも?

それ以外の場合は、文の断片を探すことができます。したがって、行で分割するのではなく、改行、ピリオド、カンマ、スペースを空けたハイフンなどで分割します。次に、検索用語を含む部分を表示します。一致する各文を「...」などで区切ることができます。

これらのピースがたくさんある場合は、ピースに優先順位を付け、優先度の高い順に並べ替えて、最初nのものだけを表示することができます。および/または検索用語と検索用語の周りのいくつかの単語だけに断片を切り詰めます.

始めるきっかけになるかもしれない、いくつかの非公式のアイデアはありますか?

于 2009-06-05T05:51:29.273 に答える