Pergunta

Como resumir o número de palavras frequência usando fd.items () do 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

por exemplo, se cada palavra em most_freq_w aparecem 10 vezes, o resultado deve ser 100

!!! Eu não preciso desse número de todas as palavras no texto, apenas os 10 mais frequentes

Foi útil?

Solução

Não estou familiarizado com nltk, mas desde FreqDist deriva de dict, então o seguinte deve funcionar:

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

Outras dicas

Para encontrar o número de vezes que uma palavra aparece no corpus (sua peça de texto):

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

Tem um recurso bonito de impressão

    fd.pprint() 

vai fazer isso.

Se FreqDist é um mapeamento de palavras para suas frequências:

sum(map(fd.get, most_freq_w))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top