#品詞付与プログラム
英文への品詞付与を行うために,POS (Part of Speech) tagger を利用することがある。老舗的な Brill tagger や,NLTK など,いくつかの選択肢があるが,わりとすぐに使える(気がした)Stanford Log-linear Part-Of-Speech Taggerで試してみた,というメモ書き。
#実行環境
- OS: macOS Mojave (ver.10.14.5)
- POS Tagger: Stanford POS Tagger (ver. 3.9.2)
#事前準備
Stanford Log-linear Part-Of-Speech Tagger にアクセスし,Download の項目にある "Download basic English Stanford Tagger version 3.9.2 [25 MB]"(2019/06/20 時点の最新版)のリンクをクリックして,ZIP ファイルをダウンロードして展開する。
#ひとまず実行
Mac の Terminal.app を起動して,展開したファイル一式まで移動(cd)して,一覧を確認。
$ cd stanford-postagger-2018-10-16
$ ls
LICENSE.txt stanford-postagger-3.9.2-javadoc.jar
README.txt stanford-postagger-3.9.2-sources.jar
TaggerDemo.java stanford-postagger-3.9.2.jar
TaggerDemo2.java stanford-postagger-gui.bat
build.xml stanford-postagger-gui.sh
models stanford-postagger.bat
sample-input.txt stanford-postagger.jar
続いて,品詞付与プログラム実行のため,次のコマンドを入力する。実行時に,「Java がない!」と怒られることがあるので,その警告が出たら,ORACLE の Java 配布サイトからダウンロードしてインストールしておく必要がある。
$ ./stanford-postagger.sh models/english-left3words-distsim.tagger sample-input.txt
シェルスクリプト(stanford-postagger.sh)を,english-left3words-distsim.tagger に含まれたモデルを使い,sample-input.txt 内の英文に品詞を付与せよ,というコマンド。ちなみに,sample-input.txt はダウンロードしたファイル一式に最初から含まれているお試し用のファイル。
以下のような結果が得られる。「単語_品詞」の形式で出力され,最後の行に処理した単語数や時間が出力される。
A_DT passenger_NN plane_NN has_VBZ crashed_VBN shortly_RB after_IN take-off_NN from_IN Kyrgyzstan_NNP 's_POS capital_NN ,, Bishkek_NNP ,, killing_VBG a_DT large_JJ number_NN of_IN those_DT on_IN board_NN ..
The_DT head_NN of_IN Kyrgyzstan_NNP 's_POS civil_JJ aviation_NN authority_NN said_VBD that_IN out_IN of_IN about_IN 90_CD passengers_NNS and_CC crew_NN ,, only_RB about_IN 20_CD people_NNS have_VBP survived_VBN ..
The_DT Itek_NNP Air_NNP Boeing_NNP 737_CD took_VBD off_RP bound_VBN for_IN Mashhad_NNP ,, in_IN north-eastern_JJ Iran_NNP ,, but_CC turned_VBD round_RB some_DT 10_CD minutes_NNS later_RB ..
Tagged 72 words at 827.59 words per second.
ちなみに,品詞付与に使う「タグセット」というタグの一覧があるが,上記のモデルで処理する際には,Penn-treebank の(有名な)タグセットが使っている。タグ一覧は,こちらを参照。
他の品詞付与プログラムの使い方については,また後日...。