我是nltk的新手。 我正在尝试一些基础知识。
import nltk
nltk.word_tokenize("Tokenize me")
给我以下错误
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
nltk.word_tokenize("hi im no onee")
File "C:\Python27\lib\site-packages\nltk\tokenize\__init__.py", line 101, in word_tokenize
return [token for sent in sent_tokenize(text, language)
File "C:\Python27\lib\site-packages\nltk\tokenize\__init__.py", line 85, in sent_tokenize
tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
File "C:\Python27\lib\site-packages\nltk\data.py", line 786, in load
resource_val = pickle.load(opened_resource)
AttributeError: 'module' object has no attribute 'defaultdict'
请有人帮忙。请告诉我如何修复此错误。
答案 0 :(得分:8)
我刚刚在我的系统上查看过它。
修正:
$PATH
然后一切正常。
>> import nltk
>> nltk.download('all')
答案 1 :(得分:5)
我遇到了同样的错误,然后我意识到我已将文件另存为tokenize.py,这就是为什么当我将python文件的名称更改为另一个名称时,会出现此错误的原因。希望这会有所帮助。
答案 2 :(得分:1)
后来我发现我使用的是过时的nltk数据。一旦更新数据,程序就开始正常工作。
答案 3 :(得分:1)
您需要更新您的nltk版本。如果您使用的是anaconda,请在终端中执行以下操作:
require 'socket'
hostname = "localhost"
port = 2000
s = TCPSocket.open(hostname, port)
while line = s.gets # Reads lines from socket
puts line.chop # And print with platform line terminator
end
s.close # Close socket when done
它会更新nltk。然后重启ipython,它应该可以工作!