Python
自然言語処理
NLP
TreeTagger
python3

TreeTaggerの環境構築からPythonで動かすまで

はじめに

日本語を形態素解析して情報を取るときはMeCabとかJumanppとかあるのですが,英語の品詞解析の結果が欲しくてggったらTreeTaggerというツールがあるそうなので導入からPythonで動かすまでのメモを残します.
TreeTaggerは英語以外にも解析できる言語の種類が豊富そうなので,他の言語の解析結果が欲しい人も使えると思います.

TreeTaggerのインストール

TreeTaggerの公式通りにやれば躓かないと思います.

  1. 自分の環境に沿ったtagger packageをダウンロードする.もしLinuxのkernel versionに問題がある人は古いバージョンをダウンロードしてtree-tagger-linux-3.2.1.tar.gzと名前に置き換える.

  2. 同じディレクトリにtagging scriptsをダウンロードする.

  3. インストールスクリプトのinstall-tagger.shをダウンロードする.

  4. 自分の処理したい言語のparameter filesをダウンロードする.

  5. コンソールを開いて,インストールスクリプトを走らせる.: sh install-tagger.sh

  6. 動作確認する.: echo 'Hello world!' | cmd/tree-tagger-english or echo 'Das ist ein Test.' | cmd/tagger-chunker-german

TreeTaggerWrapperのインストール

TreeTaggerのラッパーのインストールです.
pipで一発です.

pip install treetaggerwrapper

動くか確認します.

treetaggerwrapper.py
import treetaggerwrapper as ttw

def main():
    tagger = ttw.TreeTagger(TAGLANG='en')
    tags = tagger.TagText('I have a pen.')
    print(tags)

if __name__ == '__main__':
    main()

出力はこんな感じになると思います.

$python3 treetaggerwrapper.py
I       PP      I
have    VHP     have
a       DT      a
pen     NN      pen
.       SENT    .

単語ごとに「表層形」「品詞」「原型」が出力されます.
これでTreeTaggerをPythonで動かす環境の構築は完了です.

おまけ

品詞タグのガイドラインがあったのですが日本語に翻訳してくれている人がいました.
すぐ使いたかったので大変参考になりました.ありがたや.

この記事にも同じものを載せておきます.

品詞タグ タグの説明
CC 等位接続詞 and, but, or
CD 基数 1, three
DT 限定詞 the
EX 存在文のthere There is
FW 外国語 d'œuvre
IN 前置詞または従位接続詞 in, of, like, after, whether
IN/that 補文素 that
JJ 形容詞 green
JJR 形容詞の比較級 greener
JJS 形容詞の最上級 greenest
LS リスト項目のマーカー (1)
MD 法助動詞 could, will
NN 名詞の単数形または不可算名詞 table
NNS 名詞の複数形 tables
NP 固有名詞の単数名 John
NPS 固有名詞の複数形 Vikings
PDT 前限定詞 both the boys
POS 所有格語尾 friend's
PP 人称代名詞 I, he, it
PP$ 所有代名詞 my, his
RB 副詞 however, usually, here, not
RBR 副詞の比較級 better
RBS 副詞の最上級 best
RP 不変化詞(句動詞を構成する前置詞) give up
SENT 文末の句読点記号 ?, !, .
SYM 記号 @, +, *, ^, =
TO to to go, to him
UH 間投詞 uhhuhhuhh
VB be動詞の原形 be
VBD be動詞の過去形 was, were
VBG be動詞の動名詞または現在分詞 being
VBN be動詞の過去分詞 been
VBZ be動詞の三人称単数形現在 is
VBP be動詞の三人称単数形以外の現在 am, are
VD do動詞の原形 do
VDD do動詞の過去形 did
VDG do動詞の動名詞または現在分詞 doing
VDN do動詞の過去分詞 done
VDZ do動詞の三人称単数形現在 does
VDP do動詞の三人称単数形以外の現在 do
VH have動詞の原形 have
VHD have動詞の過去形 had
VHG have動詞の動名詞または現在分詞 having
VHN have動詞の過去分詞 had
VHZ have動詞の三人称単数形現在 has
VHP have動詞の三人称単数形以外の現在 have
VV 動詞の原形 take
VVD 動詞の過去形 took
VVG 動詞の動名詞または現在分詞 taking
VVN 動詞の過去分詞 taken
VVP 動詞の三人称単数形現在 take
VVZ 動詞の三人称単数形以外の現在 takes
WDT Wh限定詞 which
WP Wh代名詞 who, what
WP$ 所有関係代名詞 whose
WRB Wh副詞 where, when
: 一般結合記号 ;, -, --
$ 通貨記号 $, £