web-dev-qa-db-fra.com

Erreur python NLTK: "TypeError: l'objet 'dict_keys' n'est pas souscriptable"

Je suis les instructions pour un devoir de classe et je suis censé rechercher les 200 mots les plus fréquemment utilisés dans un fichier texte. 

Voici la dernière partie du code:

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

Mais quand j'appuie sur enter après la ligne de vocab 200, il retourne:

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

Toutes les suggestions sur la façon de résoudre ce problème afin qu'il puisse correctement renvoyer une réponse?

20
user3760644

On dirait que vous utilisez Python 3. En Python 3, dict.keys() renvoie un objet itérable mais non indexable. La solution la plus simple (mais pas si efficace) serait:

vocab = list(fdist1.keys())
33
Klaus D.

Pour imprimer les 200 mots les plus fréquemment utilisés, utilisez: fdist1.most_common (200) La ligne de code ci-dessus renvoie les 200 mots les plus fréquemment utilisés sous forme de paire clé-fréquence.

1
Shikhar Gupta

Si vous utilisez Python 3, essayez: 

fdist1.most_common(200)

au lieu de cela, pour obtenir les 200 mots les plus fréquents.

0
lasu moses