Domanda

Come riassumere il numero di parole Frequenza usando FD.Items () di FreqDist?

>>> fd = FreqDist(text) 
>>> most_freq_w = fd.keys()[:10] #gives me the most 10 frequent words in the text
>>> #here I should sum up numbers of each of these 10 freq words appear in the text

ad esempio se ogni parola in most_freq_w apparire 10 volte, il risultato dovrebbe essere 100

!!! Non ho bisogno di quel numero di tutte le parole nel testo, solo i 10 più frequenti

È stato utile?

Soluzione

Non ho familiarità con nltk, ma da allora FreqDist deriva da dict, quindi quanto segue dovrebbe funzionare:

v = fd.values()
v.sort()
count = sum(v[-10:])

Altri suggerimenti

Per trovare il numero di volte in cui una parola appare nel corpus (il tuo pezzo di testo):

raw="<your file>"
tokens = nltk.word_tokenize(raw)
fd = FreqDist(tokens)
print fd['<your word here>'] 

Ha una bella funzione di stampa

    fd.pprint() 

lo farà.

Se FreqDist è una mappatura delle parole alle loro frequenze:

sum(map(fd.get, most_freq_w))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top