PythonとMeCabでUniDicを使うでは、MeCabとUniDicで形態素解析して、IPA辞書との結果を比較してみた。UniDicにしてもIPA辞書にしても、よく使われる固有名詞には対応しているものの、世の中のさまざまな固有名詞には対応しきれない。ネット資源をもとにIPA辞書をカスタマイズしたmecab-ipadic-NEologdなら、最近登場した新語にも対応できる(mecab-ipadic-NEologdで形態素解析を新語に対応させる)。UniDicにも同様のmecab-unidic-NEologdがあるので、今回はmecab-unidic-NEologdをPythonで使ってみる。
環境
WSL2(Ubuntu20.04)。
$ lsb_release -dr Description: Ubuntu 20.04.3 LTS Release: 20.04 $ python3 -V Python 3.8.10 $ git version git version 2.25.1
MeCabのインストール
IPA辞書やUniDicを使うだけならMeCabのPythonラッパーであるmecab-python3をpipでインストールすればよかったが、NEologdを使うためにはMeCabをインストールする。MeCabのインストールはRaspberry PiのPython3でMecabを使うを参照。
mecab-unidic-NEologdのインストール
gitでリポジトリをクローンして、インストールスクリプトを実行する。
$ git clone --depth 1 https://github.com/neologd/mecab-unidic-neologd.git $ cd mecab-unidic-neologd $ ./bin/install-mecab-unidic-neologd -n
インストールできたら、mecab-unidic-NEologdのインストール先ディレクトリを確認しておく。
$ echo `mecab-config --dicdir`"/mecab-unidic-neologd" /usr/local/lib/mecab/dic/mecab-unidic-neologd
mecab-unidic-NEologdで形態素解析
準備ができたのでmecab-unidic-NEologdで形態素解析してみる。dオプションでmecab-unidic-NEologdのインストールディレクトリを指定する。
import MeCab tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-unidic-neologd') text = '青いカザミドリがクルクル回る' res = tagger.parse(text) print(res)
上記コードを実行すると次のような結果になる。書字形出現形、発音形出現形、語彙素読み、語彙素、品詞(ハイフン区切り)、活用型、活用形が出力される。この出力項目のフォーマットは、/usr/local/lib/mecab/dic/mecab-unidic-neologd/dicrcで指定されている。
青い アオイ アオイ 青い 形容詞-一般 形容詞 連体形-一般
カザミ カザミ カザミ Kazami 名詞-固有名詞-一般
ドリ ドリ トリ 鳥 名詞-普通名詞-一般
が ガ ガ が 助詞-格助詞
クルクル クルクル クルクル クルクル 名詞-固有名詞-一般
回る マワル マワル 回る 動詞-非自立可能 五段-ラ行 終止形-一般
EOS
以下はUniDicで同じ文字列を形態素解析した結果で、mecab-unidic-NEologdの結果とけっこう違う。またmecab-unidic-NEologdのデフォルトでは、UniDicに比べて取得できる項目が少なくなっている。
青い 形容詞,一般,,,形容詞,連体形-一般,アオイ,青い,青い,アオイ,青い,アオイ,和,"","","","","","",相,アオイ,アオイ,アオイ,アオイ,"2","C1","",73950814151361,269
カザミドリ 名詞,普通名詞,一般,,,
が 助詞,格助詞,,,,,ガ,が,が,ガ,が,ガ,和,"","","","","","",格助,ガ,ガ,ガ,ガ,"","動詞%F2@0,名詞%F1","",2168520431510016,7889
クルクル 副詞,,,,,,クルクル,くるくる,クルクル,クルクル,クルクル,クルクル,和,"","","","","","",相,クルクル,クルクル,クルクル,クルクル,"1","","",2892273994048000,10522
回る 動詞,非自立可能,,,五段-ラ行,連体形-一般,マワル,回る,回る,マワル,回る,マワル,和,"","","","","","",用,マワル,マワル,マワル,マワル,"0","C2","",9928873533907649,36121
EOS
次に、mecab-unidic-NEologdの効果がわかるように「カールおじさんインスタ映え」を形態素解析してみる。以下はmecab-unidic-NEologdを使用した結果。
カールおじさん カールオジサン カールオジサン カールおじさん 名詞-固有名詞-一般
インスタ映え インスタハエ インスタハエ インスタ映え 名詞-固有名詞-一般
EOS
固有名詞と「インスタ映え」とがちゃんと形態素解析できている。対して以下がUniDicの結果。固有名詞などが形態素として認識されていない。
カール 名詞,固有名詞,人名,一般,,,カール,カール-Karl,カール,カール,カール,カール,固,"","","","","","",人名,カール,カール,カール,カール,"1","","",2166596286161408,7882
おじ 名詞,普通名詞,一般,,,,オジ,伯父,おじ,オジ,おじ,オジ,和,"","","","","","",体,オジ,オジ,オジ,オジ,"0","C4","",1362303530443264,4956
さん 接尾辞,名詞的,一般,,,,サン,さん,さん,サン,さん,サン,和,"","","","","","",接尾体,サン,サン,サン,サン,"","C4","",3984363884782080,14495
インスタ 名詞,固有名詞,一般,,,,インスタ,インスタ,インスタ,インスタ,インスタ,インスタ,固,"","","","","","",固有名,インスタ,インスタ,インスタ,インスタ,"","","",92251508095197696,335609
映え 名詞,普通名詞,一般,,,,ハエ,映え,映え,バエ,映え,バエ,和,"ハ濁","濁音形","","","","",体,バエ,バエ,バエ,ハエ,"2","C3","",17388235261100544,63258
EOS
0 件のコメント:
コメントを投稿