1

次のサンプルコードスニペットの実行中に有線エラーが発生します

st = StanfordTagger('bidirectional-distsim-wsj-0-18.tagger')
st.tag('What is the airspeed of an unladen swallow ?'.split())

最初の行は正しく機能しましたが、2番目の行で次のエラーが発生しています。

Could not create the Java virtual machine.

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/nltk-2.0.1rc1-   py2.6.egg/nltk/tag/stanford.py", line 51, in tag
return self.batch_tag([tokens])[0]
File "/usr/local/lib/python2.6/dist-packages/nltk-2.0.1rc1-py2.6.egg/nltk/tag/stanford.py", line 77, in batch_tag
stdout=PIPE, stderr=PIPE)
File "/usr/local/lib/python2.6/dist-packages/nltk-2.0.1rc1-py2.6.egg/nltk/internals.py", line 166, in java
raise OSError('Java command failed!')
OSError: Java command failed!

パスに.usr/lib / jvmを追加しようとしましたが、まだ機能しません

4

2 に答える 2

2

それは私にとってもうまくいきませんでした。だから私は以下を試しました、そしてそれは完璧に機能しました。

st = POSTagger('path-to/stanford-postagger-full-2012-07-09/models/wsj-0-18-left3words.tagger','path-to/stanford-postagger-full-2012-07-09/stanford-postagger.jar')

Pythonのsplit()の代わりにnltkのtokenizeメソッドを使用します

taggedSentence= st.tag(nltk.word_tokenize(sentence))
于 2012-08-02T07:11:37.443 に答える
2

その質問は非常に古くなっているようですが、今日は不明な理由で同じエラーが発生しました。それは私に多くの頭痛を与えます。しかし、私は解決策を見つけました。

まず、Oracle Java をインストールしました (手順は次のとおりです: Debian または Ubuntu VPS に Oracle Java を手動でインストールする方法) 。

これで、Python スクリプトがエラーに関する詳細情報を教えてくれました。次のような出力が得られます。

Forking JVM: error=12, Cannot allocate memory or error=12, Not enough space 

ここで、このような問題について詳しく読むことができます: JVM のフォーク

そして、その迷惑なエラーを回避する/etc/sysctl.confには、次を編集して追加する必要があります。

vm.overcommit_memory = 1

次に、システムを再起動して変更を有効にします。

于 2014-10-27T23:02:34.900 に答える