エイエイレトリック

なぐりがき

Mecab辞書、ipadicとneologdについてのメモ

主にMecabを使う時によくみるリンクとメモ。

ほぼ自分用のメモです。よって、Mac OSのことしか考慮していません。

Mecabのインストール方法や使い方は全く説明していません。 各所に記事があるので、そちらを参考にしてください。

以降、ですます調ではなくなります。

パス

品詞

IPA辞書 (以降ipadic) やUnidicは、品詞体系が国語の授業で習ったような分類と異なっている。 (※ここでいう国語の授業で習った分類とは、Wikipedia日本語の品詞に記載されているような 学校文法 のことを示す。)

例えば、ipadicには形容動詞はない。そのかわりに「形容動詞語幹」なるカテゴリが名詞の下の「品詞細分類1」に存在する。

「自分が取得したい情報は、この辞書で言うどの品詞か?」をちゃんと調べたほうが良い。

品詞ID

品詞一覧を表示するスクリプト

iconv -f EUC-JP  /path/to/pos-id.def | cut -f1 -d',' |uniq
  • ipadicは元の文字コードEUC-JPなので、変換処理を挟まないと文字化けする。
    • iconv もしくは nkf で変換
  • -f1-f1,2 に変更すれば 品詞細分類1 を含めて一覧を表示できる。

品詞体系についてまとめたページ

ipadic / IPA辞書

マニュアル

品詞体系

その他
フィラー
副詞
助動詞
助詞
動詞
名詞
形容詞
感動詞
接続詞
接頭詞
記号
連体詞

辞書引き

実際にどのような単語がどの品詞に該当するか手っ取り早く調べる方法

  • ディレクトリ下のcsvファイルに対して grep すればよい
    • brew でインストールした場合、バイナリ辞書のみでcsvファイルがない
    • Mecabのリンクから直接ダウンロードしましょう
  • csvファイルは品詞ごとに分かれている
ls -1 /path/to/mecab-ipadic-2.7.0-20070801/*.csv
>>
Adj.csv
Adnominal.csv
Adverb.csv
Auxil.csv
Conjunction.csv
Filler.csv
Interjection.csv
Noun.adjv.csv
Noun.adverbal.csv
Noun.csv
Noun.demonst.csv
Noun.nai.csv
Noun.name.csv
Noun.number.csv
Noun.org.csv
Noun.others.csv
Noun.place.csv
Noun.proper.csv
Noun.verbal.csv
Others.csv
Postp-col.csv
Postp.csv
Prefix.csv
Suffix.csv
Symbol.csv
Verb.csv

具体例: 動詞の「遊ぶ」の活用形を表示

iconv -f EUC-JP Verb.csv | grep "遊ぶ"
>>
遊ぶ,754,754,7372,動詞,自立,*,*,五段・バ行,基本形,遊ぶ,アソブ,アソブ
遊ば,756,756,6964,動詞,自立,*,*,五段・バ行,未然形,遊ぶ,アソバ,アソバ
遊ぼ,755,755,7372,動詞,自立,*,*,五段・バ行,未然ウ接続,遊ぶ,アソボ,アソボ
遊び,759,759,7949,動詞,自立,*,*,五段・バ行,連用形,遊ぶ,アソビ,アソビ
遊ん,758,758,7266,動詞,自立,*,*,五段・バ行,連用タ接続,遊ぶ,アソン,アソン
遊べ,752,752,7372,動詞,自立,*,*,五段・バ行,仮定形,遊ぶ,アソベ,アソベ
遊べ,757,757,7372,動詞,自立,*,*,五段・バ行,命令e,遊ぶ,アソベ,アソベ
遊びゃ,753,753,7372,動詞,自立,*,*,五段・バ行,仮定縮約1,遊ぶ,アソビャ,アソビャ

mecab-ipadic-NEologd

流行語につよい辞書。ネオログ辞書と呼ばれている印象。 正式名称の通り、ipadicに基づいて構築されている。

頻繁に更新されているので、検証や研究に使う場合はバージョンを固定した方がよい。

ちなみに、現在最新にしたところ (mecab-ipadic-2.7.0-20070801-neologd-20200130) 、以下がアップデートされた。

default system dictionary      | mecab-ipadic-NEologd
森山 未來             | 森山未來
す と ぷり            | すと ぷり
帰 蝶                   | 帰蝶
みき お                | みきお
西宮 市            | 西宮市
北九州 市             | 北九州市
向井 秀徳             | 向井秀徳
テセウス の 船              | テセウスの船
斎藤 道三             | 斎藤道三
ビュッ フェ              | ビュッフェ
野田 秀樹             | 野田秀樹
草間 リチャード 敬 太        | 草間リチャード敬太
警察 24 時             | 警察24時
わ た なべ 麻衣         | わたなべ麻衣

test-mecab-ipadic-neologd.sh の実行部分

流行してるっぽい人名・作品名に対応しているのがわかる。

品詞体系

  • 基本的にipadicと同じ
  • git clone した mecab-ipadic-neologd 下の /build/mecab-ipadic-2.7.0-20070801-neologd-XXXXXXXX に辞書のcsvファイルがある
  • ipadic (mecab-ipadic-2.7.0-20070801/*.csv) と同じcsv + neolog独自のcsvファイルで構成されている

現在、neolog独自のcsvファイルは以下だった。

mecab-user-dict-seed.20200130.csv
neologd-adjective-std-dict-seed.20151126.csv
neologd-adjective-verb-dict-seed.20160324.csv
neologd-adverb-dict-seed.20150623.csv
neologd-common-noun-ortho-variant-dict-seed.20170228.csv
neologd-ill-formed-words-dict-seed.20170127.csv
neologd-interjection-dict-seed.20170216.csv
neologd-noun-sahen-conn-ortho-variant-dict-seed.20160323.csv
neologd-proper-noun-ortho-variant-dict-seed.20161110.csv

辞書引き

主に mecab-user-dict-seed.XXXX.csv に最新の単語 (名詞・記号) が含まれているので、欲しい単語が登録されているか確かめることができる。

テセウスの船」が追加されたようなので、2020年冬開始ドラマが追加されているか調べた。【冬ドラマ一覧】2020年1月スタート! 注目の新ドラマ情報まとめ!! | ORICON NEWSを参考に、タイトルを何個かピックアップした。

検索例

grep "麒麟がくる," mecab-user-dict-seed.20200130.csv

辞書に収録されていた2020年冬開始ドラマ

麒麟がくる,1288,1288,4973,名詞,固有名詞,一般,*,*,*,麒麟がくる,キリンガクル,キリンガクル
恋はつづくよどこまでも,1288,1288,4700,名詞,固有名詞,一般,*,*,*,恋はつづくよどこまでも,コイハツヅクヨドコマデモ,コイワツズクヨドコマデモ
ゆるキャン△,1288,1288,5072,名詞,固有名詞,一般,*,*,*,ゆるキャン△,ユルキャン,ユルキャン
知らなくていいコト,1288,1288,4909,名詞,固有名詞,一般,*,*,*,知らなくていいコト,シラナクテイイコト,シラナクテイーコト
病室で念仏を唱えないでください,1288,1288,-2416,名詞,固有名詞,一般,*,*,*,病室で念仏を唱えないでください,ビョウシツデネンブツヲトナエナイデクダサイ,ビョーシツデネンブツオトナエナイデクダサイ

作品名などの新しい固有名詞は基本的に 名詞,固有名詞,一般 で登録されている。

ちなみに辞書に収録されていない「シロでもクロでもない世界で、パンダは笑う。」や「絶対零度~未然犯罪潜入捜査~」 *1 をneolog辞書で分かち書きすると以下のようになる。 サブタイトルを「〜」で括っていたり、句読点が含まれていたりすると、すごく分割されてしまう。 つらい

mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd

絶対零度~未然犯罪潜入捜査~
絶対零度    名詞,固有名詞,人名,一般,*,*,絶対零度,ゼッタイレイド,ゼッタイレイド
~ 記号,一般,*,*,*,*,*
未然  名詞,一般,*,*,*,*,未然,ミゼン,ミゼン
犯罪  名詞,一般,*,*,*,*,犯罪,ハンザイ,ハンザイ
潜入捜査    名詞,固有名詞,一般,*,*,*,潜入捜査,センニュウソウサ,センニューソーサ
~ 記号,一般,*,*,*,*,*
EOS

シロでもクロでもない世界で、パンダは笑う。
シロ  名詞,一般,*,*,*,*,シロ,シロ,シロ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
も 助詞,係助詞,*,*,*,*,も,モ,モ
クロ  名詞,一般,*,*,*,*,クロ,クロ,クロ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
も 助詞,係助詞,*,*,*,*,も,モ,モ
ない  形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ
世界  名詞,一般,*,*,*,*,世界,セカイ,セカイ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
、 記号,読点,*,*,*,*,、,、,、
パンダ   名詞,一般,*,*,*,*,パンダ,パンダ,パンダ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
笑う  動詞,自立,*,*,五段・ワ行促音便,基本形,笑う,ワラウ,ワラウ
。 記号,句点,*,*,*,*,。,。,。
EOS

ちなみに長すぎることで話題になりがちな、ラノベのタイトルも収録されています。

うちの娘の為ならば、俺はもしかしたら魔王も倒せるかもしれない。,1288,1288,-32750,名詞,固有名詞,一般,*,*,*,うちの娘の為ならば、俺はもしかしたら魔王も倒せるかもしれない。,ウチノムスメノタメナラバオレハモシカシタラマオウモタオセルカモシレナイ,ウチノムスメノタメナラバオレハモシカシタラマオーモタオセルカモシレナイ
通常攻撃が全体攻撃で二回攻撃のお母さんは好きですか?,1288,1288,-5927,名詞,固有名詞,一般,*,*,*,通常攻撃が全体攻撃で二回攻撃のお母さんは好きですか?,ツウジョウコウゲキガゼンタイコウゲキデニカイコウゲキノオカアサンハスキデスカ,ツージョーコーゲキガゼンタイコーゲキデニカイコーゲキノオカーサンワスキデスカ

neologdn

neolog辞書の解析前に行うことが望ましい文字列の正規化処理に対応したパッケージ。 pip install neologdn ですぐにインストールできる。

neologdと一文字違いなので、自分はよくtypoしてしまう。気をつけましょう。

import neologdn

neologdn.normalize("絶対零度~未然犯罪潜入捜査~")
>> '絶対零度未然犯罪潜入捜査'

先ほどの「絶対零度 (略)」はチルダっぽい文字は削除というルールに基づいて「〜 (波ダッシュ)」が削除された。

数字の扱い

neolog辞書の特徴的な点として、数字を含む単語も名詞として扱う点がある。

例えば、「2月29日」をipadicとneologdで解析した結果は、それぞれ以下のように異なる。 *2

ipadic

2月29日
2   名詞,数,*,*,*,*,*
月 名詞,一般,*,*,*,*,月,ツキ,ツキ
29  名詞,数,*,*,*,*,*
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
EOS

neologd

2月29日
2月29日   名詞,固有名詞,一般,*,*,*,2月29日,ニガツニジュウキュウニチ,ニガツニジュウキュウニチ

例えば数値をマスキングしたい場合、標準ipadicであれば、解析結果の 名詞,数 (と名詞,副詞可能)に対してマスキングすればよいが、neologdで分かち書きした場合はそれ以外の名詞単語にも数字が含まれている場合があるので、正規表現等で置換処理が必要。

数字を含む単語を 名詞,固有名詞,一般 として考慮しているとはいえ、全てを網羅しているわけではないので、以下のような結果になってしまうこともある。

neologd

相棒Season18
相棒      名詞,一般,*,*,*,*,相棒,アイボウ,アイボー
Season1 名詞,固有名詞,一般,*,*,*,Season 1,シーズンイチ,シーズンイチ
8   名詞,数,*,*,*,*,*

f:id:sh111h:20200302235707p:plain
"season[0-9]" を含む単語(neologd)。season1~season12までしか収録されていない。

おわりに

Mecab分かち書き辞書の、細々とした情報についてまとめました。

こういう分かち書きする上でつまずきがちな、ちょっとした知見を共有してくれる記事が増えたら良いなと思います。

自分は日本語分かち書き辞書にipadicとneologdしか使ってきていないのですが、 UnidicやJuman辞書を使うことがあれば改めてまとめるかもしれません。

⭐️⭐️⭐️⭐️⭐️

Starボタンは積極的に押していきましょう。

github.com

github.com

*1:絶対零度 (テレビドラマ) - Wikipedia シリーズの過去のタイトルは収録されていた e.g. 絶対零度〜未解決事件特命捜査〜絶対零度〜特殊犯罪潜入捜査〜

*2:実際には、レミオロメン3月9日 (曲) - Wikipediaなど、日付を含む固有名詞も世の中に存在するが、そういった単語に関係なく、neolog辞書には全ての日付が辞書に収録されている