IPADIC ユーザー向け辞書生成
注意:この作業は数時間から数日かかる可能性があります。
ベースになる辞書の準備
IPADIC のダウンロード
はじめに、https://taku910.github.io/mecab からIPADICをダウンロードしてください。
WORKDIR=/path/to/your/work/dir
cd $WORKDIR # move to the working directory
cp /path/to/your/download/dir/mecab-ipadic-2.7.0-XXXX.tar.gz $WORKDIR
tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
ダウンロードした圧縮ファイルを展開して得られたディレクトリの中を ls
などのコマンドで見てみると、多数の CSV ファイルと設定ファイルがあるのが確認できます。これらの辞書ファイルの文字コードは EUC-JP になっていますが、これを以下のコマンドにより UTF-8 に変換します。もし nkf
コマンドがある場合は以下のコマンドを実行してください。
find ./mecab-ipadic-2.7.0-* -type f -name "*.csv" | xargs -I{} nkf -w --overwrite {}
もし nkf
がない場合は Docker を使って以下のようなコマンドで変換できます。
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
find ./mecab-ipadic-2.7.0-* -type f -name "*.csv" | xargs -I{} nkf -w --overwrite {}
NEologd のダウンロード
同様に、NEologdの辞書ファイルをダウンロードしてください。
cd $WORKDIR # move to the working directory
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd/
次に unxz
コマンドで、NEologd の単語リスト(CSVファイル)を抽出します。もし unxz
コマンドがインストールされている場合は以下のようなコマンドを実行してください。
find ./mecab-ipadic-neologd/seed/ -type f -name "*.xz" | xargs -I{} unxz -k {}
unxz
がない場合は、dockerを使用して以下のコマンドで同様のことができます。
find ./mecab-ipadic-neologd/seed/ -type f -name "*.xz" | xargs -I{} \
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest unxz -k {}
この処理により、多数のCSVファイルが ./mecab-ipadic-neologd/seed/
配下に生成されます。
推論
注意: この処理はかなりの時間がかかります!
では、アクセント辞書を生成しましょう。ここでは、NEologd の辞書ファイルに掲載されている全ての単語について、機械学習ベースの手法により、アクセント情報を推定します。以下のコマンドにより、各単語にアクセント情報を付与した新しい辞書が生成されます。
IPADIC
find ./mecab-ipadic-2.7.0-*/ -type f -name "*.csv" | xargs -I{} \
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-convert -m ipadic --input {} --output {}.accent
もしくは、以下のコマンドでも同様に辞書を生成できます。
cat ./mecab-ipadic-2.7.0-*/*.csv > ipadic_all.csv
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-convert -m ipadic \
--input ipadic_all.csv \
--output ipadic_all.csv.accent
NEologd
まず、もし必要であれば以下のコマンドで前処理を行ってください。(-h
により前処理のオプションを表示できます。)
find ./mecab-ipadic-neologd/seed/ -type f -name "*.csv" | xargs -I{} \
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-neologd-preprocess -m ipadic --input {} --output {}.preprocessed
次に、以下のコマンドによりアクセントを推定します。
find ./mecab-ipadic-neologd/seed/ -type f -name "*.csv" | xargs -I{} \
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-convert -m ipadic --input {}.preprocessed --output {}.accent
以上の作業により、アクセント情報が付与された辞書ファイル *.csv.accent
が得られます。
もしくは、以下のようなコマンドでも辞書ファイルが得られます。
cat ./mecab-ipadic-neologd/seed/*.csv > neologd_all.csv
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-neologd-preprocess -m ipadic \
--input neologd_all.csv \
--output neologd_all.csv.preprocessed
docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
tdmelodic-convert -m ipadic \
--input neologd_all.csv.preprocessed \
--output neologd_all.csv.accent