WindowsでNEologd辞書を比較的簡単に入れる方法-システム辞書編


はじめに

MeCabの形態素解析用の辞書のNEologd辞書を導入にWSL(Windows Subsystem for Linux)+Ubuntuを使っていたのですが、git for Windowsと7-zipで比較的簡単に導入できました。

先の記事↓でユーザー辞書について記載したので今回はシステム辞書編です。
https://qiita.com/zincjp/items/c61c441426b9482b5a48

環境

Windows10 64bit 言語:日本語
MeCab 0.996-32bit

導入するもの

git for Windows 2.20.1 64-bit
7-Zip 18.06 64-bit

導入手順

MeCabにPATHを通す

MeCabの実行ファイルのある以下のフォルダを環境変数を設定しPATHを通す。
C:\Program Files (x86)\MeCab\bin

7-zipのインストールと環境変数への設定

7-zipのインストール

ダウンロードしてきたNEologd辞書はxz形式で圧縮されているので、展開するために7-zipを使います。
以下のサイトより7-zip 64bitをダウンロードしインストール。
https://sevenzip.osdn.jp/

7-zipにPATHを通す

以下を環境変数に設定
C:\Program Files\7-Zip

git for Windowsのインストール

以下のサイトを参考にgit for Windows 64bitをインストールする
https://qiita.com/taiponrock/items/632c117220e57d555099

NEologd辞書のダウンロード

gitより辞書をダウンロード(cloneを作成)

管理者でコマンドプロンプト立ち上げ以下のコマンドで作業フォルダへ移動

cd %homepath%

続いて以下のコマンドでNEologd辞書をダウンロード

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

NEologd辞書ファイルの確認

コマンドプロンプトより以下コマンドでC:\Users(ユーザー名)\mecab-ipadic-neologd\seedに移動しファイルを確認。

cd mecab-ipadic-neologd\seed
dir

NEologd辞書ファイルの展開

これら.csv.xzファイルを以下のコマンドで7-zipで展開。

7z X *.xz

.csvファイルのコピー

以下のコマンドでcsvファイルをMecabのdic\ipadicフォルダへコピーする。
ただしmecab-user-dict-seed.(日付).csvファイルは大きい&更新が頻繁なので、ユーザー辞書として使いたいので
今回の作業では削除。

copy *.csv "c:\Program Files (x86)\MeCab\dic\ipadic"
del "c:\Program Files (x86)\MeCab\dic\ipadic\mecab-user-dict-seed.*"

SHIFT-JIS形式のファイルをUTF-8形式に変換する。

c:\Program Files (x86)\MeCab\dic\ipadic内の.csvファイル全て、unk.defファイルの文字コードを
SHIFT-JIS(改行CR+LF)からをUTF-8(改行LF)にエディタなどで変換する。

自分はEmEditor(https://jp.emeditor.com/) で文字コードを変換しました。

これはneologd辞書のcsvファイルはUTF-8形式、デフォルトで入っているipa辞書のcsvファイルはSHIFT-JIS形式のためで、
異なるコード混在条件下で辞書をコンパイルすると、形態素解析した際に、品詞情報が「??」と表示される形態素が出てきます。

辞書ファイルのコンパイル

SHIFT-JIS辞書の作成

以下コマンドでipadicフォルダでSHIFT-JISのシステム辞書を作成する。

cd "c:\Program Files (x86)\MeCab\dic\ipadic"
mecab-dict-index -f utf-8 -t shift-jis

UTF-8辞書の作成

引き続きPythonなどUTF-8のシステムではUTF-8の辞書が必要なので以下コマンドでUTF-8のシステム辞書を作成する。
以下コマンドでipadicフォルダのファイル全てを新しく作成するipadic-UTF8フォルダにコピー。

mkdir "c:\Program Files (x86)\MeCab\dic\ipadic-UTF8"
copy * "c:\Program Files (x86)\MeCab\dic\ipadic-UTF8"

以下コマンドでc:\Program Files (x86)\MeCab\dic\ipadic-UTF8内のファイルよりUTF-8のシステム辞書を作成する。

cd "c:\Program Files (x86)\MeCab\dic\ipadic-UTF8"
mecab-dict-index -f utf-8 -t utf-8

解析のテスト

これでユーザー辞書に入っていなかった
"おいおいおい"等が解析できるようになります。

NEologdシステム辞書導入前
おいおいおい
おいおい        副詞,一般,*,*,*,*,おいおい,オイオイ,オイオイ
おい    感動詞,*,*,*,*,*,おい,オイ,オイ
EOS
NEologdシステム辞書導入後
おいおいおい
おいおいおい    感動詞,*,*,*,*,*,おいおい,オイオイオイ,オイオイオイ
EOS

参考

NEologd辞書のURL