WSLのUbuntuにMeCabをインストールする
こんにちは、$@(ダラ~っと)です(๑Ò﹃ Ó๑)ゝ
はじめに
WSLのUbuntuに形態素解析のMeCabをインストールした時のメモです。
何がわかる?
- MeCabのインストール方法
- mecab-ipadic-neologdのインストール
- カスタム辞書登録
環境
- windows 11 Pro
- WSL:Ubuntu 22.04.2 LTS
MeCabのインストール
下記を実行して、MeCabをインストールします。
sudo apt update
sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8
インストール後の確認。MeCabを起動して文字を入力してEnterキーを押下する。
$ mecab
今日はいい天気
こんな感じの結果が出てきたらOK
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
EOS
Ctrl + C
で抜けましょう。
mecab-ipadic-neologdのインストール
次に、システム辞書のmecab-ipadic-neologdをインストールしていきます。
mecab-ipadic-neologdは、Web上の新語を追加したMeCab用のシステム辞書です。
任意のディレクトリに移動して、下記を実行する。
git clone https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
sudo bin/install-mecab-ipadic-neologd
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
にインストールされます。
ipadicの場所と異なるため、シンボリックリンクを貼っておく。
sudo ln -s /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd /var/lib/mecab/dic
MeCabの辞書をmecab-ipadic-neologd
に変更します。
MeCabの設定ファイルは、/etc/mecabrc
にあります。
sudo vi /etc/mecabrc
dicdir
を変更する。
; dicdir = /var/lib/mecab/dic/debian
dicdir = /var/lib/mecab/dic/mecab-ipadic-neologd
カスタム辞書登録
下記の手順で、MeCabのカスタム辞書を作成して使用するように設定します。
流れ
- CSVファイルにMeCabのフォーマットで用語を追加する
-
単語の追加方法
- エントリのフォーマット (活用しない語)
- エントリのフォーマット (活用する語)
-
単語の追加方法
- CSVファイルをコンパイルして、dicファイルを作成する(コマンド)
- dicファイルのパスをMeCabの設定ファイル(
/etc/mecabrc
)のuserdic
に設定する。
詳細
1. CSVファイルにMeCabのフォーマットで用語を追加する
CSVファイルの作成場所は、任意のディレクトリでOK。
ただし、後続手順でパスを登録するため、分かりやすい場所の方が良い。
辞書のフォーマットは、単語の追加方法の下記項目を参照
- エントリのフォーマット (活用しない語)
- エントリのフォーマット (活用する語)
フォーマット
表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音
- 左文脈IDと右文脈ID:その単語を左or右から見たときの内部状態IDです。空にしておくと mecab-dict-index が自動的に ID を付与してくれます。
- コスト:数値が小さいほど、優先して使用する。
例えば、下記のような感じ。
(金だけだと、人名のキムさんが優先的に使用されるため、キンとして登録する←子供の勉強用にマイクラの用語をカタカナのみに変換した時に知った教訓)
金,,,10,名詞,一般,*,*,*,*,金,キン,キン
2. CSVファイルをコンパイルして、dicファイルを作成する(コマンド)
下記のコマンドで、カスタム辞書のコンパイルする
- カレントディレクトリを、CSVファイルのディレクトリに変更しておく
-
mecab_custom_file_name
には、上記で作成したCSVファイルの拡張子なしのファイル名に書き換えて実行する
mecab_custom_file_name="custom"
/usr/lib/mecab/mecab-dict-index -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/ -u ${mecab_custom_file_name}.dic -f utf-8 -t utf-8 ${mecab_custom_file_name}.csv
-
-d
システム辞書があるディレクトリを指定する -
-u
カスタム辞書のdicファイルを作成する -
-f
charset: CSVの文字コード -
-t
charset: バイナリ辞書の文字コード
カレントディレクトリ直下に、dicファイルが出来ていることを確認する。
/etc/mecabrc
)のuserdic
に設定する。
3. dicファイルのパスをMeCabの設定ファイル(MeCabの設定ファイルにカスタム辞書を設定する。
sudo vi /etc/mecabrc
userdic
を上記2で生成したdicファイルパスに変更する。
userdic = /home/spluslat/mecab/custom.dic
おわりに
これで、カスタム辞書を使用したMeCabが使えるようになりました。
子供がマインクラフトにハマっているので、お勉強も兼ねてすべてひらがな表示、カタカナ表示にするリソースパックを作成する時にMeCabを使用しました。
形態素解析が簡単に使えてとても便利でしたが、カスタム辞書登録に詰まって苦労しました。。。
Discussion