中古和文UniDicをつかおうぞ!
生きてます。音楽と英語のことしか殆ど書いてこなかったお前が突然何書いとるねんって話ですが唐突に技術系の話をし始めます。2018年はアーカイブをモットーにしていきます。 ちゃんとGithubも使って作ったものどんどんオープンにしていきます。そのうち。
Q.技術系のことならQiitaに書けば?
A.うるさい。
Q.ならせめて新しいブログ作れば?
A.うるさい。
はい論破。ということで本題です。
「いやあ、今日は寒いなあ。お出かけするのも嫌になるから今日は家で源氏物語でも形態素解析しようかなぁ」って時が日本人なら年に数回くらい誰にでもあると思うんですよ。僕もあります。
じゃあ一番シンプルな方法は何かなあと考えるとMeCabに中古和文UniDicを辞書として使ったやつかなあなんて思うじゃないですかきっと。なので今日はMeCabのインストールと中古和文UniDicを辞書として設定して、実際に源氏物語の本文をちょっと形態素解析してみようと思います。
はい、大学の課題の一環です。
環境
- Debian 9.6 (Windows Subsystem for Linuxを使ってます。ほぼ実機。)
- MeCab 0.996
- unidic-mecab 2.1.2
- 中古和文UniDic ver.1603
MeCabのインストール
公式の通り。公式に書いてあるソースコードをコピペすることにあまり価値はないと思うの。
ただ、文字コードをutf-8でコンパイルしたほうがいいらしいので、
$ ./configure --with-charset=utf-8と公式の表記からオプションを一つ加えます(どう重要なのかは知らん。)。
辞書のインストール
Linux版だと辞書も別で入れないといけないので入れます。というかこれが目的です。(これ書いている段階ではどうやって中古和文UniDicを乗っけるのかイマイチわかってないので)とりあえずベーシックなUniDicを入れて動作を確かめます。
MeCab公式ページのUniDicへのリンク切れてますね。
最新版はここからダウンロード。
MeCabのページのソースコードと比べると圧縮がgzでなくzipになっているとこだけ差分でしょう。あとは殆ど公式のソースに従えば大丈夫。
$ unzip unidic-mecab-2.1.2_src.zip他は一緒。
テストしてみる
中古和文UniDicを入れるのがゴールなのでもうワンステップ必要ですが、普通のUniDicはエラーも吐かずにすんなり入ったようなのでとりあえずここまででテスト。
別でIPA辞書(インストールはUniDicとほぼ一緒なので省略)もインストールして違いを比べます。
サンプルは源氏物語の冒頭一文。
「いづれの御時にか、女御、更衣あまたさぶらひたまひけるなかに、いとやむごとなき際にはあらぬが、すぐれて時めきたまふありけり。」
[IPA辞書版]
[UniDic版]
参考にしたサイトだとmecabrcをいじってデフォルト辞書をUniDicにしてるみたいなんですがオプションで辞書指定するんじゃダメなん?ちゃんと違いも出ているのでたぶんこれで大丈夫でしょ。
中古和文UniDicを追加する
ここまで、中古和文UniDicをどうやって使えばいいのかわからずやってたんですが、「ははーん、もしや /usr/local/lib/mecab/dic/ 以下に中古和文UniDicを置くんだな」って気がしたんでそれを試してみます。
中古和文UniDicはここからダウンロード。
執筆時点で最新版はUniDic-wabun_1603のファイル名のver, 1603。
解凍したものを辞書のディレクトリに置きます。
$ unzip UniDic-wabun_1603.zip力業なのかなぁ。俺は雰囲気でNLPをやっているしLinuxなんてようわからん。詳しい人いたら教えてください。
$ sudo mv UniDic-wabun_1603 /usr/local/lib/mecab/dic/
で、動かしてみる。
動きました。「たまひ」あたり良くなりましたね。
若干怪しいところ(名詞%F1)とかがあり、これがエラーなのか正しくてこの結果なのかよくわからない。公式のdocumentation見ろよって感じですね。タグセットに興味持ったらやります。
僕の課題に使う素材としては、古文がなるべく高い精度で分かち書きができればOKなのでこれで満足しておきます。-O wakatiのオプションを付けて使います。
オマケ
データが欲しいだけならWeb茶まめにファイルアップすれば分かち書きしてくれる。参考にしたもの
以下の2つのサイトを参考にしながら書きました。ありがとうございます。MeCabとUNIDICをUbuntu 14.04にインストール
MeCabのシステム辞書・ユーザー辞書の利用方法について