Python text processing: NLTK und pandas

Ich bin auf der Suche nach einer effektiven Weg, zu konstruieren, ein Term-Dokument-Matrix in Python verwendet werden kann, zusammen mit zusätzlichen Daten.

Habe ich einige text-Daten mit ein paar anderen Parametern. Ich würde gerne einige Analysen auf den text, und ich möchte in der Lage sein zu korrelieren Merkmale extrahiert aus dem text (wie einzelne word-Token oder LDA-Themen) mit den anderen Parametern.

Mein plan war, laden Sie die Daten als pandas-Daten-frame und dann jede Antwort repräsentieren ein Dokument. Leider, ich lief in ein Problem:

import pandas as pd
import nltk

pd.options.display.max_colwidth = 10000

txt_data = pd.read_csv("data_file.csv",sep="|")
txt = str(txt_data.comment)
len(txt)
Out[7]: 71581 

txt = nltk.word_tokenize(txt)
txt = nltk.Text(txt)
txt.count("the")
Out[10]: 45

txt_lines = []
f = open("txt_lines_only.txt")
for line in f:
    txt_lines.append(line)

txt = str(txt_lines)
len(txt)
Out[14]: 1668813

txt = nltk.word_tokenize(txt)
txt = nltk.Text(txt)
txt.count("the")
Out[17]: 10086

Beachten Sie, dass in beiden Fällen der text wurde so verarbeitet, dass nur das nichts, sondern Räume, Briefe und.?! entfernt wurde (für die Einfachheit).

Wie Sie sehen können, eine Pandabären-Feld in einen string konvertiert zurückgibt, weniger Spiele und die Länge der Zeichenfolge ist kürzer.

Gibt es eine Möglichkeit zur Verbesserung der obige code?

Auch str(x) schafft 1 big-string aus der Kommentare, während [str(x) for x in txt_data.comment] erzeugt ein list-Objekt, das nicht gebrochen werden kann und in einen Beutel von Worten. Was ist der beste Weg, um zu produzieren ein nltk.Text Objekt, das behalten Dokument-Indizes? In anderen Worten, ich bin auf der Suche nach ein Weg, um eine Term-Dokument-Matrix, R ist äquivalent TermDocumentMatrix() aus tm Paket.

Vielen Dank.

  • nicht sicher, was deine Frage ist, aber es gibt auch andere Bibliotheken für NLP könnte für Sie zu helfen, Bibliotheken Muster, textblob, C&C, wenn Sie in der Sackgasse, können Sie versuchen, die Bibliotheken zu, jeder von Ihnen hat Ihren eigenen Vorteil über den anderen.
  • Danke @mid , ich bin mir bewusst, von gensim, aber ich habe noch nie gehört, textblob zuvor, es ist in der Tat Aussehen nützlich wenn! Ich bin ganz neu bei Python (ich arbeite gewöhnlich in R), und ich bezweifle wirklich, dass ich in der Sackgasse mit NLTK, wenn man bedenkt, wie beliebt das Paket ist, ich bin mir sicher, dass ich mich einfach etwas fehlt.
InformationsquelleAutor IVR | 2016-01-14
Schreibe einen Kommentar