2014-09-13 21 views
10

Tôi là người mới bắt đầu bằng Python và NLTK. Tôi cố gắng để chạy đoạn mã sau từ một hướng dẫn:AttributeError: đối tượng 'FreqDist' không có thuộc tính 'inc'

from nltk.corpus import gutenberg 
from nltk import FreqDist 

fd = FreqDist() 

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

Nếu tôi chạy này, tôi nhận được lỗi sau:

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

Bất kỳ ý tưởng những gì tôi đang làm sai?

Trả lời

15

Bạn nên làm điều đó như sau:

fd[word] += 1 

Nhưng thường FreqDist được sử dụng như thế này:

fd = FreqDist(my_text) 

Ngoài ra nhìn vào ví dụ ở đây:

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

+0

cảm ơn .... Nó làm việc. – user2763487

+0

Có một trang wiki, https://github.com/nltk/nltk/wiki/Porting-your-code-to-NLTK-3.0, liệt kê các thay đổi giao diện – user799188

0

Phiên bản mới nhất của nltk không có inc. Thay vào đó tôi đã sử dụng bản cập nhật.

from nltk.corpus import gutenberg 
from nltk import FreqDist 

fd = FreqDist() 

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

Bản cập nhật sẽ có mục có thể lặp lại. Vì vậy, hãy đảm bảo rằng bạn đang chuyển mục có thể lặp lại trong chức năng cập nhật.

1

Đối với những người tìm kiếm cách thay đổi ví dụ cuốn sách để NLTK 3.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 
Các vấn đề liên quan