TFIDF für Große Datasets

Habe ich ein Korpus, das rund 8 Millionen news-Artikel, die ich brauche, um die TFIDF Repräsentation von Ihnen als sparse-matrix. Ich war in der Lage, das zu tun, mit scikit-learn für die relativ geringere Zahl der Proben, aber ich glaube, es kann nicht verwendet werden, für so einen riesigen Datensatz, wie es lädt die input-matrix zuerst in den Arbeitsspeicher und das ist ein teurer Prozess.

Weiß jemand, was wäre der beste Weg, um Extrakt aus den TFIDF-Vektoren für große datasets?

  • Haben Sie gesehen tseine und dieser?
  • Diese Methode verwendet HashingVectorizer (scikit-learn.org/stable/modules/generated/...) für Funktionen, die in der Tat ist skalierbar und am besten für große datasets aber Sie können in der Contra-Abschnitt heißt es, dass es nicht verwendet werden kann, um zu berechnen, IDF GEWICHTE.
  • Sie würde tun müssen, diese iterativ, wenn es nicht alle passen in den Speicher oder speichern in einer DB/pytables eine Abfrage und führen zu calc die tfidf und zu speichern, wie eine andere Tabelle
  • Ich brauche, um ein csr-matrix, ich denke Iterationen wird nicht beibehalten die Form der matrix, da wären wir Verfütterung einer neuen charge von Daten immer und immer Matrizen unterschiedlicher Form, korrigieren Sie mich, wenn falsch bin. Auch, wie wird die idf-GEWICHTE berücksichtigt werden, Sie sind die globalen GEWICHTE. Mit einem python-generator wird Ihnen helfen, denken Sie an Faust berechnen TF über CountVectorizer und dann verwandeln Sie es vielleicht für IDF-GEWICHTE?
  • Ich glaube, Sie können ein HashingVectorizer zu bekommen, ein kleineres car_matrix aus Ihrem text-Daten, und verwenden Sie dann eine TfidfTransformer auf, dass. Speichern einer sparse-matrix mit 8 Zeilen und mehrere Zehntausende von Spalten ist nicht so eine große Sache.
  • Haben Sie sich überlegt mit Mahout - mahout.apache.org - skalierbar für große datasets und können problemlos verwendet werden, mit lucene.

Schreibe einen Kommentar