Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
85
Help us understand the problem. What is going on with this article?
@nnahito

MeCabでオリジナル辞書を作成する

More than 5 years have passed since last update.

MeCabにデフォルトで入っていない言葉を形態素解析した時に,意図しない区切られ方になることが有ります.

例えばレシピ中に出てくる「水を切る」という言葉は,「水」「を」「切る」と形態素解析されます.
これは間違いではありませんが,「水を切る」という意味ではなくなってしまい,それが困る場合があります.

なので,MeCabの辞書に登録されていない語句をまとめた,「オリジナル辞書」の作り方を書いていこうと思います.

辞書の作成方法

ここでは,MeCabのオリジナル辞書の作成方法を記載します.
データは全てCSV形式(カンマ区切り)で作成します.
文字コードはShift-JIS,改行コードは¥r(Linux)で作成してください.

名詞

名詞は,以下のように登録します.
スクリーンショット 2015-04-20 18.12.09.png
左から,
登録したい名詞,ID,ID,重み,品詞,品詞の説明,*,*,*,*,登録したい名詞,カタカナ表示,カタカナ表記
と並んでいます.

動詞

動詞は名詞とは違い,各活用形を書かなければいけません.
スクリーンショット 2015-04-20 18.17.34.png
表はそれぞれ,
登録したい名詞,ID,ID,重み,品詞,品詞の説明,*,*,活用,活用形,登録したい動詞の原形,カタカナ表示,カタカナ表記
となっています.
IDは,MeCabに登録されている「する」「きる」「つく」などのIDを,それぞれの動詞に合わせて登録します.

例えば,
から煎りにするであれば,599番ですし,
色がつくであれば,679番となります.
これは,MeCabの辞書を見て探すしかありません.

MeCab辞書にCSVファイルをコンパイル

名詞と動詞の表を一つのCSVファイルにまとめ,以下のコマンドを叩きます.
$ /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u original.dic -f utf-8 -t utf-8 オリジナル辞書CSVファイル名.csv
※「オリジナル辞書CSVファイル名.csv」の部分は作成したCSVファイル名に変えてください.

このコマンドを叩くと,「original.dic」というファイルがカレントディレクトリに作成されます.
これがMeCabの辞書となります.
なお,エラーが出る場合は,今一度文字コードがShift-JISで改行コードが¥rになっているか確認して下さい.
※私は「mi」というエディタでよく確認します.

辞書をMeCabに登録する

作成した辞書(original.dic)はどこにおいておいてもいいのですが,私は「/usr/local/lib/mecab/dic/ipadic/」の中に入れています.
なので,作成した辞書(original.dic)は,/usr/local/lib/mecab/dic/ipadic/の中に入っている前提でお話を進めていきます.

/usr/local/lib/mecab/dic/ipadic/dicrc」ファイルのどこかに,次の一文を付け加えます.
userdic = /usr/local/lib/mecab/dic/ipadic/original.dic

やり方としては,おそらくターミナルで編集するのがメジャーだと思いますので,
$ sudo vi /usr/local/lib/mecab/dic/ipadic/dicrc
を叩き,適当なところに挿入してください.

以上です

85
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
nnahito
基本的に技術メモを発信しています。 Qiitaにも書きますが、最近は自分のブログ作ってみました。 そちらもぜひ御覧ください。 PHP書きます。 まれにJSも書きます。Svelteにはまってます。 Nimも書きます。 C言語出身(もうかけないと思うけど)なので、型付き言語に抵抗はそこまでありません。 おっさんです。
nim-in-japan
Nim言語の日本コミュニティです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
85
Help us understand the problem. What is going on with this article?