Votre suspicion est correcte, c'est un problème de taille de tas, ou plus précisément, une contrainte d'évolutivité. Directement à partir de la FAQ de carrot2 :http://project.carrot2.org/faq.html#scalability
Comment le clustering Carrot2 évolue-t-il en fonction du nombre et de la longueur des documents ? La caractéristique la plus importante des algorithmes Carrot2 à garder à l'esprit est qu'ils effectuent un clustering en mémoire. Pour cette raison, en règle générale, Carrot2 devrait traiter avec succès jusqu'à un millier de documents, de quelques paragraphes chacun. Pour les algorithmes conçus pour traiter des millions de documents, vous pouvez consulter le projet Mahout.
Un développeur a également posté à ce sujet ici :https://stackoverflow.com/a/28991477
Bien que les développeurs recommandent Mahout, et c'est probablement la voie à suivre puisque vous ne seriez pas lié par les contraintes de clustering en mémoire comme dans carrot2, il pourrait cependant y avoir d'autres possibilités :
-
Si vous aimez vraiment carrot2 mais que vous n'avez pas forcément besoin de k-means, vous pouvez jeter un œil au Lingo3G commercial, basé sur le champ "Time of clustering 100000 snippets [s]" et la remarque (***) sur http://carrotsearch.com/lingo3g-comparison il devrait pouvoir traiter davantage de documents. Consultez également leur FAQ sur "Quel est le nombre maximum de documents que Lingo3G peut regrouper ?" sur http://carrotsearch.com/lingo3g-faq
-
Essayez de minimiser la taille de vos étiquettes sur lesquelles k-means effectue le clustering. Au lieu de regrouper tout le contenu des documents, essayez de regrouper sur le résumé/résumé ou d'extraire des mots-clés importants et de les regrouper.