Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
OpenNLPの固有表現抽出器に関する調査

Apache OpenNLPに関する調査

構成

Apache OpenNLPは自然言語処理のツールキットであり、Javaライブラリとコマンドライン・インタフェースを提供している。 Pythonの spaCy , NLTK , Stanford NLP Groupが提供するJavaライブラリ群 などと同種のもの。

プロジェクトメンバー の所属先は、 確認できた範囲でLucidworks(エンタープライズサーチの会社), Rockwell Collins(航空機関連のメーカ), Google, バスク大学など。どこか1企業が主導しているというわけではなさそう。

OpenNLPが提供する機能は以下の通り。

  • 本体
    • Language Detector (言語判別器)
    • Sentence Detector (文区切り器)
    • Tokenizer (単語区切り器)
    • Name Finder / Named Entity Recognition (固有表現抽出器)
    • Part-of-Speech Tagger (単語に品詞を割り当てる)
    • Lemmatizer (原型化)
    • Parser (構文木を作る)
    • Chunker (浅い構文木を作る)
    • Document Categorizer (文書分類器)
    • Coreference Resolution (指示語の参照先を見つける)
  • Apache UIMA(自然言語処理パイプラインのフレームワーク)などとの統合

固有表現抽出の例

参照:

ソースコードリーディング

  • NameFinderME#find(String[] tokens)
  • NameFinderME#find(String[] tokens, String[][] additionalContext)
  • BeamSearch#bestSequences()
    •  ここが本命の処理っぽい。
    •  呼び出し先
      • MaxentModel#eval(String[], double[])
      • MaxentModel#getOutcome(index)

参考リンク

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment