LoginSignup
0
0

More than 1 year has passed since last update.

Stanford CoreNLPの使用時に発生するエラーの解決策【ExceptionPexpect:java / OSError・EOF】

Last updated at Posted at 2019-08-17

はじめに

英語の文章を構文解析したかったので、Stanford CoreNLPを使用することに。
導入時に2つのエラーが発生して苦労したのでメモ。

環境

Ubuntu 18.04.2
Anaconda 3 5.3.1
Python 3.7
Jupyter Notebook

ダウンロード

まずは以下のコマンドでStanford CoreNLPをダウンロードし、Pythonで使用できるようにしました(参考記事)。

$ curl -L -O http://nlp.stanford.edu/software/stanford-corenlp-full-2013-06-20.zip
$ unzip ./stanford-corenlp-full-2013-06-20.zip -d /usr/local/lib/
$ pip install corenlp-python

発生したエラーと解決策

その1

ダウンロードが終わりさっそく使ってみようと以下のようなコードを実行。

import pprint
import json
import corenlp

corenlp_dir = "/usr/local/lib/stanford-corenlp-full-2013-06-20/"
parser = corenlp.StanfordCoreNLP(corenlp_path=corenlp_dir)

result_json = json.loads(parser.parse("This is test."))
pprint.pprint(result_json)

すると、以下のエラーが発生。

ExceptionPexpect: The command was not found or was not executable: java.

Javaが実行できていないというエラーですね。
Stanford CoreNLPを動かすためには、Javaが必要らしいです。UbuntuにJavaを入れることで解決しました(UbuntuにJavaをインストールする方法)。

その2

Javaをインストールし、使えるようになったはず...と思っていたら、また新しいエラーが発生。実行したコードはその1に記述したものと同じです。

OSError Traceback (most recent call last)
OSError: [Errno 5] Input/output error

EOF Traceback (most recent call last)
EOF: End Of File (EOF). Exception style platform.

こちらの記事にあるように、user.propertiesファイルを作成したら動くようになりました。user.propertiesファイルは機能を制限したい場合のみ作成すれば良いと思っていたのですが、どうやら必須のようですね。気が付くまでかなり時間がかかった...

Stanford CoreNLPは英文用のパッケージなので、日本語の文献は少ないですね。また何かあれば記そうと思います。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0