Din mistanke er korrekt, det er et problem med heapstørrelse eller mere præcist en skalerbarhedsbegrænsning. Direkte fra carrot2 ofte stillede spørgsmål:http://project.carrot2.org/faq.html#scalability
Hvordan skalerer Carrot2-klynger med hensyn til antallet og længden af dokumenter? Den vigtigste egenskab ved Carrot2-algoritmer at huske på er, at de udfører klyngedannelse i hukommelsen. Af denne grund, som en tommelfingerregel, bør Carrot2 med succes håndtere op til tusinde dokumenter, et par afsnit hver. For algoritmer designet til at behandle millioner af dokumenter, kan du med fordel tjekke Mahout-projektet.
En udvikler skrev også om dette her:https://stackoverflow.com/a/28991477
Mens udviklerne anbefaler Mahout, og dette er sandsynligvis vejen at gå, da du ikke ville være bundet af begrænsningerne i hukommelsen som i carrot2, kan der dog være andre muligheder:
-
Hvis du virkelig kan lide carrot2, men ikke nødvendigvis har brug for k-betyder, kan du tage et kig på den kommercielle Lingo3G, baseret på feltet "Time of clustering 100000 snippets [s]" og (***) bemærkningen på http://carrotsearch.com/lingo3g-comparison den burde kunne håndtere flere dokumenter. Tjek også deres FAQ-indgang på "Hvad er det maksimale antal dokumenter, Lingo3G kan gruppere?" på http://carrotsearch.com/lingo3g-faq
-
Prøv at minimere størrelsen af dine etiketter, som k-means udfører klyngingen på. I stedet for at klynge over alt dokumentindholdet, prøv at klynge på abstraktet/resuméet eller udtrække vigtige nøgleord og klynge på dem.