PythonでStanford Core NLPの固有表現抽出(NER)ができない時のメモ

4966 views
約5分

どうもー
自分用のメモです。
と言っても、これに悩まされたのは大分前なんだけど。
もしかしたら困っている方がいるのかもしれないので書きます。

ついでに、結論から言うと、


を書けば、うまくいくと思います。

スポンサーリンク

NERを使う

想定読者

NERした時に、なんか変なエラー出るなー。なんでやねん。った方用です。
前提として、stanford core nlp のインストール、およびサーバは立ち上げずみ (これわからん人はこちら) と思ってます。

設定

python でコード書きますが、他の何かでも、共通する部分はあるので、うまく適応してください。
pycorenlp と言うライブラリを使います。

python : 3.6.0
stanford-core-nlp : stanford-corenlp-full-2018-02-27
java : version 9
pycorenlp : 0.3.0

解決法

黄色いラインに注目です。
property を選択する部分で、nerの他に、nerのオプションであるuseSUTimeをFalse、もしくは0に設定してください。

で。出力を見てみると、

整形はちょっと見づらいですけど、
Hoge と言う名前を表す部分はちゃんと、PERSON の NER が取れてますし、
Tokyo と言う場所を表す部分は、CITY が取れました。

他のタグは、

For English, by default, this annotator recognizes named (PERSON, LOCATION, ORGANIZATION, MISC), numerical (MONEY, NUMBER, ORDINAL, PERCENT), and temporal (DATE, TIME, DURATION, SET) entities (12 classes). Adding the regexner annotator and using the supplied RegexNER pattern files adds support for the fine-grained and additional entity classes EMAIL, URL, CITY, STATE_OR_PROVINCE, COUNTRY, NATIONALITY, RELIGION, (job) TITLE, IDEOLOGY, CRIMINAL_CHARGE, CAUSE_OF_DEATH (11 classes) for a total of 23 classes. Named entities are recognized using a combination of three CRF sequence taggers trained on various corpora, including CoNLL, ACE, MUC, and ERE corpora. Numerical entities are recognized using a rule-based system.

とのこと。他に色々あるってことがわかればそれで良いでしょう。
メモは以上。

Stanford CoreNLPのセットアップ

続いて、stanford corenlp を使い始めたい人向けに、セットアップの方法を書いておきます。

stanford corenlpとは

パーズとか、固有表現抽出とか、なんかすごいことやってくれる自然言語処理ツールです。

python からの使用方法

pythonから使う場合にはサーバを立ち上げる必要があるので、まずそちらをやっていきます。

  1. ページにいく


  2. ダウンロードする。


  3. zipファイルを解凍する。好きなところに保存 (ここでは、aaa/hogeにします)

  4. ディレクトリ移動
  5. java

こんな感じになったら準備おっけーです。

次に、python側ですね。

  1. pycorenlp をインストールする
  2. コード書く
  3. コード実行
    上記を実行すると以下のような形で出力されます。(整形してるのでそのまんまではないですが)

以上。

この記事を書いた人

Toshiki Sasaki
某SaaS企業でデータアナリストとして、ログ解析やアンケート調査など、UXリサーチをしています。
高専で電気電子、大学で信号処理、大学院で自然言語処理と、ふらふらと専攻を変えてきた、怠惰で飽き性な男です。
Follow :

Comments

コメントはまだありません。

FacebookでシェアTwitterでシェアPinterestでシェア