python - stopwords - nltk tutorial
Cuente verbos, sustantivos y otras partes del discurso con NLTK de python (1)
El método pos_tag
le devuelve una lista de pares (token, tag):
tagged = [(''the'', ''DT''), (''dog'', ''NN''), (''sees'', ''VB''), (''the'', ''DT''), (''cat'', ''NN'')]
Si está usando Python 2.7 o posterior, entonces puede hacerlo simplemente con:
>>> from collections import Counter
>>> counts = Counter(tag for word,tag in tagged)
>>> counts
Counter({''DT'': 2, ''NN'': 2, ''VB'': 1})
Para normalizar los conteos (dándole la proporción de cada uno) haga:
>>> total = sum(counts.values())
>>> dict((word, float(count)/total) for word,count in counts.items())
{''DT'': 0.4, ''VB'': 0.2, ''NN'': 0.4}
Tenga en cuenta que en versiones anteriores de Python, tendrá que implementar Counter
usted mismo:
>>> from collections import defaultdict
>>> counts = defaultdict(int)
>>> for word, tag in tagged:
... counts[tag] += 1
>>> counts
defaultdict(<type ''int''>, {''DT'': 2, ''VB'': 1, ''NN'': 2})
Tengo varios textos y me gustaría crear perfiles de ellos basados en su uso de varias partes del habla, como sustantivos y verbos. Básicamente, necesito contar cuántas veces se usa cada parte del discurso.
He etiquetado el texto pero no estoy seguro de cómo ir más lejos:
tokens = nltk.word_tokenize(text.lower())
text = nltk.Text(tokens)
tags = nltk.pos_tag(text)
¿Cómo puedo guardar los conteos de cada parte del discurso en una variable?