🤖

tdmelodic を試す

2022/01/30に公開

環境

  • windows 11
  • wsl2

マニュアル通り動かす

$ git clone --depth 1 https://github.com/PKSHATechnology-Research/tdmelodic
$ cd tdmelodic/
$ wget https://ccd.ninjal.ac.jp/unidic_archive/cwj/2.1.2/unidic-mecab_kana-accent-2.1.2_src.zip
$ docker build -t tdmelodic:latest .

$ docker run --rm tdmelodic:latest /bin/bash -c "echo 深層学習 | mecab -d \`mecab-config --dicdir\`/unidic"
深層    シンソー        シンソウ        深層    名詞-普通名詞-一般                      0
学習    ガクシュー      ガクシュウ      学習    名詞-普通名詞-サ変可能                  0
EOS

UniDic ユーザー向け辞書生成

$ git clone --depth 1 https://github.com/neologd/mecab-unidic-neologd/
$ unxz -k `ls mecab-unidic-neologd/seed/*.xz | tail -n 1`

$ docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
    tdmelodic-neologd-preprocess \
    --input `ls mecab-unidic-neologd/seed/mecab-unidic-user-dict-seed*.csv | tail -n 1` \
    --output neologd_modified.csv \
    --no-rmdups --no-rm_wrong_yomi
    
$ docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
    tdmelodic-convert \
    -m unidic \
    --input neologd_modified.csv \
    --output tdmelodic_original.csv
47934it [1:48:49,  7.34it/s]
$ cp tdmelodic_original.csv tdmelodic.csv

$ cp tdmelodic.csv tdmelodic.csv.bak
$ docker run --rm -v $(pwd):/root/workspace tdmelodic:latest \
    tdmelodic-modify-unigram-cost \
    -i tdmelodic.csv.bak \
    -o tdmelodic.csv

UniDic-tdmelodic を MeCab 辞書として活用

$ sudo apt install -y unzip libmecab-dev mecab-ipadic-utf8 mecab

$ cp tdmelodic/unidic-mecab_kana-accent-2.1.2_src.zip .
$ unzip unidic-mecab_kana-accent-2.1.2_src.zip
$ cd unidic-mecab_kana-accent-2.1.2_src/
$ cat ../tdmelodic.csv >> lex.csv

$ ./configure --with-dicdir=`mecab-config --dicdir`/tdmelodic
$ make
$ sudo make install

動作確認

$ $ echo 一昔前は人工知能のプログラミング言語といえばCommon LispやPrologだった。 |     mecab -d `mecab-config --dicdir`/tdmelodic/
一昔    ヒトムカシ      ヒトムカシ      一昔    名詞-普通名詞-一般                      2,3
前      マエ    マエ    前      名詞-普通名詞-副詞可能                  1
は      ワ      ハ      は      助詞-係助詞
人工知能        ジ[ンコーチ]ノー        ジンコウチノウ  人工知能        名詞-固有名詞-一般                      @
の      ノ      ノ      の      助詞-格助詞
プログラミング言語      プ[ログラミングゲ]ンゴ  プログラミングゲンゴ    プログラミング言語      名詞-固有名詞-一般                      @
と      ト      ト      と      助詞-格助詞
いえ    イエ    イウ    言う    動詞-一般       五段-ワア行     仮定形-一般     0
ば      バ      バ      ば      助詞-接続助詞
Common Lisp     コ[モンリ]スプ  コモンリスプ    Common Lisp     名詞-固有名詞-一般                      @
や      ヤ      ヤ      や      助詞-副助詞
Prolog  プ[ロログ       プロログ        Prolog  名詞-固有名詞-一般                      @
だっ    ダッ    ダ      だ      助動詞  助動詞-ダ       連用形-促音便
た      タ      タ      た      助動詞  助動詞-タ       終止形-一般
。                      。      補助記号-句点
EOS

参考サイト

Discussion