0

FreqDist を使用して、コーパスに表示される単語の出現回数を非常に高速に取得しています。問題は、いくつかの基本的な操作を行う必要がある整数としてftableが回答を返さないことです。

words = brown.words()
content = [w for w in words if w.lower()]
ftable = nltk.FreqDist(content)

例えば:

percent = ftable[sing]/ftable[s])*100

ftable.N[sing] などを試してみましたが、うまくいきません。

ありがとう!

編集:コメントでも。w.lower() は、コーパス内の単語を小文字にすることで、それらに対して for ループを実行すると、ftable が文字列と正確に一致するため、小文字の値のみを比較します。as Hello != hello カウンターを使用する場合、それは同じくらい速いですか? 検索されるコーパス/単語リストの大文字と小文字を下げる簡単な方法はありますか?

4

1 に答える 1

0

collections.Counter度数分布ではなく、を探しているようです:

>>> from collections import Counter
>>> words = ['a', 'a', 'a', 'b']
>>> Counter(words)
Counter({'a': 3, 'b': 1})

また、[w for w in words if w.lower()]少し遅いかもしれません。を使用すると高速化できますfilter(None, words)

于 2012-11-15T05:30:24.370 に答える