2011-07-01 1 views
2

J'ai Lucene/Solr 4 pour tester différentes fonctionnalités, également "clustering". Actuellement, 1 million de documents sont indexés. Chaque document a les champs suivants:Comment le clustering (carotte) fonctionne-t-il dans solr?

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..." 

Tous les champs sont indexés et stockés, TEXT exapt, qui est indexé uniquement, ne sont pas stockées. J'utilise la configuration spécifique suivante:

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

Si vous cherchez l'exemple que vous voyez, que le sujet est différent, mais le Japon est le même. Est-il possible de configurer solr/carot de cette façon, que example1 et example2 seront dans un cluster? En raison de l'appariement "japon"?! En outre, il pourrait y avoir un 3ème sujet comme "news/nuclear power", pas de "japan" à l'intérieur mais HEADLINE et TEXT utilisent les mots: japans power plant. Quelle configuration de solr/carotte est pertinente pour recevoir ces 3 nouvelles dans un cluster?

Merci!

Répondre

4

Carrot2 est conçu pour regrouper du texte naturel/non structuré et de tels algorithmes produiront très rarement des résultats qu'un humain trouverait parfait. Malheureusement, de tels algorithmes sont également difficiles à "déboguer" - les groupes qu'ils produisent dépendent de nombreux facteurs, tels que les fréquences avec lesquelles les mots apparaissent dans vos documents. Dans votre exemple spécifique, le mot Japon n'a peut-être pas été choisi pour former un cluster car il est trop fréquent - il apparaît dans tous les documents que vous avez cités.

Voici quelques conseils que vous pouvez essayer de modifier les grappes:

  • Essayez la séparation des mots-clés avec un point suivi d'un espace plutôt que d'une barre oblique, par exemple "catastrophe, japon, centrale nucléaire". Si vous faites cela, Carrot2 traitera les séquences de mots, telles que «centrale nucléaire», comme des phrases plutôt que comme des mots individuels. Essayez un autre algorithme de clustering Carrot2, par exemple. STC. Si vous avez la possibilité d'enregistrer votre champ de texte complet (ou une partie de celui-ci, comme le premier paragraphe), utilisez le HEADLINE pour carot.title et le texte intégral/extrait pour carot.snippet. Jouez avec les paramètres spécifiques des algorithmes de Carrot2. Le meilleur outil pour cela serait Carrot2 Clustering Workbench. Voici comment le connecter à Solr: http://wiki.apache.org/solr/ClusteringComponent#Tuning_Carrot2_clustering

+0

Merci, il y a beaucoup d'idées intéressantes, je vais essayer. –