tutorial stopwords graphs functions ejemplo concordance python nltk

python - graphs - nltk stopwords



Error de Python NLTK: "TypeError: el objeto ''dict_keys'' no es un subĂ­ndice" (5)

Estoy usando python 3.5 y me encuentro con el mismo problema de TypeError .

Usar vocab = list(fdist1.keys()) no me da las 50 palabras más utilizadas con mayor frecuencia.
Pero fdist1.most_common(50) hace.

Además, si solo quieres mostrar esas 50 palabras principales no con su frecuencia, puedes probar:

[word for (word, freq) in fdist1.most_common(50)]

Estoy siguiendo las instrucciones para una tarea de clase y se supone que debo buscar las 200 palabras más utilizadas con mayor frecuencia en un archivo de texto.

Aquí está la última parte del código:

fdist1 = FreqDist(NSmyText) vocab=fdist1.keys() vocab[:200]

Pero cuando presiono enter después de la línea vocab 200, regresa:

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ''dict_keys'' object is not subscriptable

¿Alguna sugerencia sobre cómo solucionar esto para que pueda responder correctamente? Cualquier ayuda es muy apreciada, gracias


Para imprimir las 200 palabras utilizadas con más frecuencia use: fdist1.most_common (200) La línea de código anterior devolverá las 200 palabras que se usan con más frecuencia como par de frecuencia clave.


Parece que estás usando Python 3. En Python 3, dict.keys() devuelve un objeto iterable pero no indexable. La solución más simple (pero no tan eficiente) sería:

vocab = list(fdist1.keys())


Si estás usando python 3 prueba:

fdist1.most_common(200)

en cambio, para obtener las 200 palabras más frecuentes.


fdist1 = FreqDist(NSmyText)

vocab=fdist1.keys()

Este código se está utilizando en Python2.7. Así que deberías hacer algún cambio. dic.keys () devuelve un iteratable. Así que usando:

list(fdist1.keys())