15

ここから変更を加えて質問を受けました。私は次のコードを持っています:

from nltk.corpus import stopwords
>>> def content_text(text):
    stopwords = nltk.corpus.stopwords.words('english')
    content = [w for w in text if w.lower() in stopwords]
    return content

1) ストップワードを含み、2)ストップワードを含まないテキストの最も頻繁に出現する 10 の単語を出力するにはどうすればよいですか?

4

3 に答える 3

22

nltk には FreqDist 関数があります

import nltk
allWords = nltk.tokenize.word_tokenize(text)
allWordDist = nltk.FreqDist(w.lower() for w in allWords)

stopwords = nltk.corpus.stopwords.words('english')
allWordExceptStopDist = nltk.FreqDist(w.lower() for w in allWords if w not in stopwords)    

最も一般的な 10 個を抽出するには:

mostCommon= allWordDist.most_common(10).keys()
于 2015-02-08T11:15:06.910 に答える
1

これを試すことができます:

for word, frequency in allWordsDist.most_common(10):
    print('%s;%d' % (word, frequency)).encode('utf-8')
于 2016-04-28T06:51:43.730 に答える