Python traitement de texte: NLTK et les pandas

Je suis à la recherche d'un moyen efficace de construire un Terme de Document de la Matrice en Python qui peut être utilisé conjointement avec des données supplémentaires.

J'ai quelques données de texte avec quelques autres attributs. Je voudrais lancer un certain nombre d'analyses sur le texte et je voudrais être en mesure de corréler les caractéristiques extraites à partir de texte (comme le mot individuel des jetons ou LDA sujets) avec les autres attributs.

Mon plan était de charger les données comme les pandas bloc de données, et ensuite chaque réponse représentera un document. Malheureusement, j'ai rencontré un problème:

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

Noter que dans les deux cas, le texte a été traité de manière à ce que seul le rien, mais des espaces, des lettres et des ,.?! a été supprimé (pour des raisons de simplicité).

Comme vous pouvez le voir une pandas champ converti en une chaîne de caractères retourne de moins en moins de matchs et la longueur de la chaîne est également plus courte.

Est-il possible d'améliorer le code ci-dessus?

Aussi, str(x) crée 1 grande chaîne des commentaires alors que [str(x) for x in txt_data.comment] crée une liste d'objet qui ne peut être rompu dans un sac de mots. Quelle est la meilleure façon de produire un nltk.Text objet qui permettra de conserver le document indices? En d'autres mots, je suis à la recherche d'un moyen de créer un Terme de Document de la Matrice, R est l'équivalent de TermDocumentMatrix() de tm paquet.

Merci beaucoup.

pas sûr de ce que votre question est, mais il y a d'autres bibliothèques de la PNL qui pourrait être utile pour vous, les bibliothèques comme modèle, textblob, C&C, si vous avez atteint une impasse, vous pouvez essayer ces bibliothèques trop, chacun d'eux a son propre avantage sur les autres.
Merci @mi , je suis au courant de gensim, mais je n'ai jamais entendu parler de textblob précédemment, il semble en effet utile si! Je suis assez nouveau pour Python (j'ai l'habitude de travailler dans R) et je doute vraiment que j'ai atteint une impasse avec NLTK, compte tenu de la popularité de ce package est, je suis certain que je suis juste en manque de quelque chose.

OriginalL'auteur IVR | 2016-01-14