web-dev-qa-db-ja.com

AttributeError: 'FreqDist'オブジェクトに属性 'inc'がありません

私はPythonとNLTKの初心者です。チュートリアルから次のコードを実行しようとしています:

from nltk.corpus import gutenberg
from nltk import FreqDist

fd = FreqDist()

for Word in gutenberg.words('austen-sense.txt'):
    fd.inc(Word)

これを実行すると、次のエラーが発生します。

AttributeError: 'FreqDist' object has no attribute 'inc'

私が間違っていることについて何か考えはありますか?

16
user2763487

あなたはそのようにそれをするべきです:

fd[Word] += 1

ただし、通常、FreqDistは次のように使用されます。

fd = FreqDist(my_text)

こちらの例もご覧ください。

http://www.nltk.org/book/ch01.html

18
Rainy

本の例をNLTK3.0に変更する方法をお探しの方へ:

import nltk
from nltk.corpus import brown

suffix_fdist = nltk.FreqDist()
for Word in brown.words():
    Word = Word.lower()
    suffix_fdist[Word[-1:]] +=1
    suffix_fdist[Word[-2:]] +=1
    suffix_fdist[Word[-3:]] +=1
common_suffixes = []
for suffix in suffix_fdist.most_common(100):
    common_suffixes.append(str(suffix.__getitem__(0)))
print common_suffixes
5
dragon40226

一部の機能は非推奨になりました。

問題のコードはバージョンnltk2.0.4で動作します

https://pypi.python.org/pypi/nltk/2.0.4

バージョン2.0.4をインストールするには、次の手順に従います。

wget https://pypi.python.org/packages/source/n/nltk/nltk-2.0.4.Zip#md5=cbd04d8635f1358a69a38c4774be029c

7z x nltk-2.0.4.Zip

cd nltk-2.0.4 /

python setup.py install

インストールされているバージョンを確認するには、以下を実行します。

pip search nltk

enter image description here

3
Abdul Hamid

Nltkの最新バージョンには株式会社がありません。むしろ私はアップデートを使用しました。

from nltk.corpus import gutenberg
from nltk import FreqDist

fd = FreqDist()

for Word in gutenberg.words('austen-sense.txt'):
    fd.update([Word])

更新には反復可能なアイテムが必要です。したがって、更新関数で反復可能なアイテムを渡していることを確認してください。

0