2016-06-21 5 views
1

Ich habe alles fast sortiert, aber weil ich die Top 2k einzigartige Wörter will, bekomme ich eine super durcheinander Verteilung. Ich werde es schließlich verwenden, um ein Wörterbuch zu erstellen, aber ich möchte sehen, welche die häufigsten 2k Wörter sind, so dass ich die passenden für das Wörterbuch wählen kann. Wie auch immer, siehe Code unten. Wie ändere ich, um eine Liste zu erhalten, in der ich (Wort) (Anzahl) sehe? Muss nicht auf 2k beschränkt werden, wäre es nett zu sehen, für alle zu zählen? Vielen Dank!drucken Begriff Häufigkeitsliste (haben Verteilung)

>>> fileObj = codecs.open("/Users/shannonmcgregor/Desktop/ALLstories.txt", "r", "Latin-1") 
chattanooga_stories = fileObj.read() 
>>> import nltk 
from nltk.corpus import stopwords 
>>> lowered_stories = chattanooga_stories.lower() 
>>> word_list = lowered_stories.split() 
>>> filtered_stories = [w for w in word_list if not w in stopwords.words('english')] 
>>> fdist = nltk.FreqDist(w.lower() for w in filtered_stories) 
>>> print(fdist) 
<FreqDist with 7031 samples and 19893 outcomes> 
>>> top_2k = [ ] 
>>> top_2k = fdist.most_common(2000) 
>>> fdist.plot(2000, cumulative=True) 
+0

Sie können auch Interpunktion entfernen. –

+0

Bearbeiten Sie Ihre Frage, um die Ausgabe (nur einen kleinen Teil) anzuzeigen. Ich nahm an, es war ein Diktat. –

Antwort

1

Sie erhalten die Anzahl der verschiedenen Wörter, wenn Sie most_common() verwenden. Verwenden Sie die Methode items, um eine Liste von Elementen in sortierter Reihenfolge zu erhalten (am häufigsten zuerst).

fdist = nltk.FreqDist(filtered_stories) #filtered_stories is already lowercase 
print(fdist) 
top_2k = [ ] 
top_2k = fdist.most_common(2000) 
tok_2k.items() #should give you a sorted list 
+0

Ich bekomme einen Fehler, dass ich keine Artikel habe. siehe unten? – shannimcg

+0

'>>> top_2k.items() Traceback (jüngste Aufforderung zuletzt): File "" Linie 1 in Attribute: 'list' Objekt hat kein Attribut 'Elemente'' – shannimcg

+0

so habe ich print (top_2k), um die Liste zu drucken, aber sie ist nicht sehr gut in Excel exportierbar, wo ich am liebsten eine Spalte mit Wörtern und eine benachbarte Spalte mit der Zählung hätte. Irgendwelche Tipps, wie man es besser in dieses Format bringt oder es in eine Datei wie diese schreibt? Vielen Dank :) – shannimcg