2

Lucene / Solr 4を実行して、さまざまな機能と「クラスタリング」をテストしています。現在、100万のドキュメントが索引付けされています。すべてのドキュメントには次のフィールドがあります。

ID (unique Key) Example1: 10245
               Example2: 24974
TOPIC (Keywords of the document) Example1: "disaster/japan/nuclear power station"
                                 Example2: "world/japan/nuclear power"
HEADLINE (1 line of text): Example1: "explosion at nuclear power plant in japan"
                           Example2: "news about japans nuclear power plant"
TEXT (the full text): "In the Japanese nuclear power plant in Fukushima..."

すべてのフィールドにインデックスが付けられて保存されます。TEXTはインデックスが付けられているだけで、保存されていません。次の特定の構成を使用します。

  <str name="carrot.title">TOPIC</str>
   <str name="carrot.snippet">HEADLINE</str>

ご覧の例を見ると、トピックは異なりますが、日本は同じです。このようにsolr/carrotを構成することは可能ですか?example1とexample2は1つのクラスターに含まれますか?一致する「日本」のために?!

さらに、「ニュース/原子力」のような3番目のトピックがあり、内部に「日本」はありませんが、HEADLINEとTEXTは「日本の発電所」という言葉を使用しています。これらの3つのニュースを1つのクラスターで受信するには、どのsolr / carrot構成が関係しますか?

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

4

1 に答える 1

4

Carrot2は、自然な/構造化されていないテキストをクラスター化するように設計されており、そのようなアルゴリズムは、人間が完璧だと思う結果を生成することはめったにありません。残念ながら、そのようなアルゴリズムは「デバッグ」するのも困難です。それらが生成するクラスターは、ドキュメント内で単語が出現する頻度など、多くの要因に依存します。あなたの特定の例では、日本という単語は頻繁すぎるため、クラスターを形成するために選択されなかった可能性があります-それはあなたが引用したすべての文書に現れます。

クラスターを微調整するためのヒントをいくつか紹介します。

  • 「disaster.japan.nuclearpowerstation」のように、キーワードをスラッシュではなくピリオドとスペースで区切ってみてください。これを行うと、Carrot2は「原子力発電所」などの単語シーケンスを個々の単語ではなくフレーズとして扱います。

  • 別のCarrot2クラスタリングアルゴリズム(STCなど)を試してください。

  • 全文テキストフィールド(または最初の段落などの一部)を保存する機会がある場合は、carrot.titleの見出しとcarrot.snippetの全文/抜粋を使用してください。

  • Carrot2アルゴリズムの特定の設定で遊んでください。これに最適なツールは、Carrot2ClusteringWorkbenchです。Solrに接続する方法は次のとおりです:http ://wiki.apache.org/solr/ClusteringComponent#Tuning_Carrot2_clustering

于 2011-07-14T10:38:28.267 に答える