Tôi đang cố gắng sử dụng nltk.tag.stanford module
cho gắn thẻ một câu (đầu tiên giống như ví dụ wiki của) nhưng tôi tiếp tục nhận được lỗi sau:NLTK stanford pos tagger lỗi: Java lệnh thất bại
Traceback (most recent call last):
File "test.py", line 28, in <module>
print st.tag(word_tokenize('What is the airspeed of an unladen swallow ?'))
File "/usr/local/lib/python2.7/dist-packages/nltk/tag/stanford.py", line 59, in tag
return self.tag_sents([tokens])[0]
File "/usr/local/lib/python2.7/dist-packages/nltk/tag/stanford.py", line 81, in tag_sents
stdout=PIPE, stderr=PIPE)
File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 160, in java
raise OSError('Java command failed!')
OSError: Java command failed!
hoặc sau LookupError
lỗi:
LookupError:
===========================================================================
NLTK was unable to find the java file!
Use software specific configuration paramaters or set the JAVAHOME environment variable.
===========================================================================
này là mã exapmle:
>>> from nltk.tag.stanford import POSTagger
>>> st = POSTagger('/usr/share/stanford-postagger/models/english-bidirectional-distsim.tagger',
... '/usr/share/stanford-postagger/stanford-postagger.jar')
>>> st.tag('What is the airspeed of an unladen swallow ?'.split())
tôi cũng sử dụng word_tokenize
thay vì split
nhưng không có bất kỳ sự khác biệt nào.
Tôi cũng đã cài đặt lại java hoặc jdk
! và tất cả các tìm kiếm của tôi đều không thành công! một cái gì đó như nltknltk.internals.config_java()
hoặc ...!
Lưu ý: Tôi sử dụng linux (Xubuntu)!
trong 'usr/lib/jvm /' tôi có 3 thư mục 'default-java' và' java-1.7.0-openjdak-amd64' và 'java-7-openjdk-amd64' whi ch một trong số họ tôi có thể sử dụng cho con đường? tôi sử dụng tất cả trong số họ nhưng tôi nhận được lỗi một lần nữa và thử tất cả các cách của bạn ngoại trừ 'uninstall' và' install' nltk! làm thế nào bạn nói tôi gỡ cài đặt và cài đặt lại? – Kasramvd
@Kasra java-1.7.0-openjdak-amd64 Tôi tin rằng –
một lần nữa trong viết lại mã trong một tệp '.py' mới và thực hiện nó, sau đó tôi nhận được lỗi này' print (stderr.decode (sys.stdout.encoding)) LoạiError: decode() đối số 1 phải là chuỗi, không phải None' bạn có quen thuộc không? của nó cho tập tin 'nltk/internals.py'! – Kasramvd