2009-06-05 3 views
2

ディスカッションフォーラムデータベースでフルテキスト検索を実装しましたが、私はGoogleが行うように検索結果を と表示したいと思います。非常に長いhtmlページであっても、検索結果リストに表示されているテキストの行数は2つまたは3つだけです( )。通常、これらは、検索用語を含む の行です。全文検索結果から小さな関連ビットテキスト(Googleと同じ)を抽出する

テキスト自体と検索語句に基づいてテキストの数行を抽出する方法の良いアルゴリズムは何でしょうか。私はテキストと行の中で検索語句が出現する前に1行のテキストを使うのと同じくらい簡単なことを考えることができますが、それは働くには単純すぎるようです。

いくつかの方向性、アイデア、洞察力を得たいですか?

ありがとうございます。

+0

自然言語処理(nlp)タグが追加されました。 –

答えて

0

コード内で「検索語句の前後に行」を試したことがありますか?その単純なコーディング投資の結果があなたの望むものに十分に適しているかどうかを確認しましたか?すでに十分でしょうか?

そうでなければ、文章のために行くことができます。改行、改行、カンマ、スペースハイフンなどで分割しないでください。検索用語を含む部分を表示します。一致する文章を「...」などで区切ることができます。

これらの部分を多く取得した場合は、優先順位を付けて降順に並べ替えて、最初のnを表示するようにしてください。そして/または、検索用語の周りだけで検索用語といくつかの単語に作品を削減します。

あなたが始められるような非公式のアイデアは何ですか?

2

「行の前後」のアプローチよりも好きなことを探している場合、要約がそのトリックを行うかもしれません。ここで

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

ベイズは、多くのスパムフィルタによって使用される統計的なシステムである - 私はベイズは数年前サマライザ研究、そして、彼らはテキストを要約するのはかなり良い仕事をすることがわかった、と処理するテキストの量が多ければ長いほどよい。私は実際に上記のライブラリを試していないので、あなたの走行距離は変わるかもしれません。

0

内容の始めに集中する。あなたがブログを訪問したときにあなたがどこを見るか考えてみましょう。最初のパラは、記事が正しい方向にあるかどうかを示します。だからあなたのアルゴリズムでは、これを反映することが理にかなっています。

見出し(H1、H2など)内での検索語句の出現をチェックし、それらに優先度を与えます。

これはあなたの作業を開始するはずです。

関連する問題