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 将在一个集群中?因为匹配“日本”?!

此外,可能还有第三个主题,如“新闻/核能”,里面没有“日本”,但标题和文本使用的词是:日本发电厂。为了在一个集群中接收这 3 个消息,什么 solr/carrot 配置是相关的?

谢谢!

4

1 回答 1

4

Carrot2 旨在对自然/非结构化文本进行聚类,此类算法很少会产生人类认为完美的结果。不幸的是,这样的算法也很难“调试”——它们产生的集群取决于许多因素,例如单词在文档中出现的频率。在您的具体示例中,可能没有选择“日本”这个词来形成一个集群,因为它太频繁了——它出现在您引用的所有文件中。

以下是您可能想要尝试调整集群的一些提示:

  • 尝试用句点后跟空格而不是斜线来分隔关键字,例如“灾难。日本。核电站”。如果您这样做,Carrot2 会将单词序列(例如“nuclear power station”)视为短语而不是单个单词。

  • 尝试不同的 Carrot2 聚类算法,例如 STC。

  • 如果有机会存储您的全文文本字段(或者可能是其中的一部分,例如第一段),请使用胡萝卜.title 的标题和胡萝卜.snippet 的全文/摘录。

  • 使用 Carrot2 算法的特定设置。最好的工具是 Carrot2 Clustering Workbench。以下是将其连接到 Solr 的方法:http ://wiki.apache.org/solr/ClusteringComponent#Tuning_Carrot2_clustering

于 2011-07-14T10:38:28.267 回答