お手軽POS tagging(ペルシア語編)
また例によって,ペルシア語の話である.
きょうのお題は「ちょー簡単にペルシア語の品詞タグ付けをしよう!」
そもそも品詞タグ付けってなに?
読んで字の如く,単語に品詞情報をつけること.
「なにそれ?楽しいの?」と思うかもしれないが,自然言語処理では大切な技術である.次のような例を考えて欲しい.
Time fries like an arrow
普通の人間なら「光陰矢のごとし」と解釈するが,辞書を引いて卑屈な解釈をすると「時ハエは矢が好き」になる.
(この例は古くから,言語学分野で自然言語の曖昧性を示す例として使われてきた.そんな読み方しねーだろ!と思うかもしれないが,哲学とはそういうものなのだ.本当にひく...おっと,こんな時間に誰か来たようだ...)
つまり品詞系列は
Time/N fries/V like/ADJ an/DT arrow/N
と
Time/N fries/NN like/V an/DT arrow/N
の2種類が存在している.
ここで,「どっちの品詞系列の方が尤もらしいか?」を考えると,当然,前者になる.
この直感をアルゴリズムにしたのがHMM(Hidden Markov Model)だ.
賢い人がいっぱい情報を公開しているので,詳しく知りたいひとはそっちを見ればいいとおもうを!
あと,自然言語処理において,品詞情報は前処理的に扱われているので,それだけ重要な処理過程である.
ペルシア語の品詞タグ付きコーパスと学習済みモデル
すでにどっちもある.便利な世の中になったものだ. 論文はこれhttp://stp.lingfil.uu.se/~mojgan/TagPer.pdf
元々はBijankhan Corpusというコーパスっていう品詞タグ付きコーパスが存在しているのだが,ちょっと問題がある(文字コードの処理とか,品詞タグ体系とか..)ので,Mojganさんが修正したコーパスを公開している.ここhttp://stp.lingfil.uu.se/~mojgan/UPC.html
さらに,学習済みモデルも公開しているので,情弱でもすぐにタグ付けできる神仕様! さっそく,使ってみよう!
まずは,モデルはhunposhttps://code.google.com/p/hunpos/downloads/listで構築されているので,hunposを使えるようにしよう.
ぼくはMacなので,コンパイル済みのファイルをdownloadして展開するだけで,めっちゃんこ簡単にできる(windows?そんなの知らね...)
次に学習済みモデルをdownloadしてくる.ここからhttp://stp.lingfil.uu.se/~mojgan/tagper.html
あとはページにも説明書いてあるけど,
prompt> hunpos-tag model_TagPer < input_file.txt > output_file.txt
で楽勝っす!ww
ついでに,テストファイルもひょいひょい作った.
# او هدیه<U+200C>ی توالد داد .
さらにbashスクリプトも書いちゃった(うほほほーい)なので,簡単にデモができるを! やったね,たえちゃん!
echo -n "Type 'Y' to tag with HMM." read cmd if [ cmd = 'Y' ]; then ./hunpos-tag < test > out fi echo "Finished tagging"
論文によると,96.6%のAccuracyでタグ付けができるらしい. ま,新聞記事のようなきれいな文なら,大概はタグ付けできるってことですな.
余談だが,このMojganさん,Malt ParserのNivreの元で研究している.ちょっとうらやましい.