あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

XenialDog(Puppy Linux系)Anthyの辞書をできる限り強化してみた(かなり頭が良くなった)

XenialDogに、rootで使えるMozcをビルドしてインストールする試みは失敗した…。

原因がまだ分からないのでとりあえずはAnthyを使うことにした。

arekorebibouroku.hateblo.jp

ここの記事にも書いてあるようにPuppy Linuxの日本語フォーラムでrootで使えるSCIM-Mozcがある。

これを使っても良いし、これまではこれを使っていたが、一度起動するとメモリ消費量が200MB近く大きくなるのがちょっと気になっていた。

今回は、Anthyを使い続けることを前提に辞書を強化することにした。

まず、Google日本語入力強化辞書をAnthy用に変換した。

変換するのにRubyというスクリプトを実行する環境が必要だ。

難しい場合はここは読み飛ばして、このあとの操作だけしてほしい。

https://www.mediafire.com/?cy1mxpjds5l5h

配布サイト自体はなくなってしまった様ですが、オンラインストレージは生きている。

ここからGoogle日本語入力強化辞書v5-1.7zをダウンロードして解凍する。

いろいろあるが、通常の文章を書く上で強化したい部分だけ考えると「Google日本語入力強化辞書.txt」だけで良いと思う。

どうもEUC-JPのようなので

nkf -e -w Google日本語入力強化辞書.txt > google_dic.txt

として文字コードUTF-8に変換。

XenialDogにはnkfがなかったのでapt-getやSyanpticパッケージマネージャでインストールする必要がある。

userdic - 日本語入力ユーザー辞書変換スクリプト

次に、上のリンクからuserdicスクリプトをダウンロードする。

ruby userdic <変換元> <変換先> < 変換元ファイル名 > 変換先ファイル名

で変換できるとのことなので

ruby userdic mozc anthy < google_dic.txt > anthy_dic_unsort.t

などとしてMozc(Google日本語入力)用からAnthy用に変換。

これをソートする必要がある。

env LC_ALL=C sort anthy_dic_unsort.t > anthy_dic.t

追記

薬などの医学用語が変換できないので、ここの辞書も追加してみた。

みんなで作る医学用語変換辞書

テキスト形式辞書をダウンロードする。

MS-IME用でもATOKでも大丈夫だと思うが、今回はATOK用にした。

文字コードの変換は必要ないようだ。

上のGoogle日本語入力強化辞書と同じようにuserdicを使って変換する。

userdic atok anthy < meddic.txt > meddic_unsort.t

同じようにソートする。

env LC_ALL=C sort meddic_unsort.t > meddic.t

追記

一部がGoogle日本語入力強化辞書と重複しているようなので入れなくても良いかもしれない。

追記終わり


次にAnthyと同じくらい有名な変換エンジンで、Anthyと辞書の互換性のあるCannaの辞書を手に入れる。

cannadic改 Wiki - cannadic改 - OSDN

本当はAnthyソースコードを手に入れてビルドが必要の様ですが今回は無理やりそのまま使ってみることにした。

ダウンロードファイル一覧 - cannadic改 - OSDN

ここからalt-cannadic-110208.tar.bz2をダウンロードして解凍する。

また、以下からも辞書ファイルをダウンロード。

GitHub - mt819/Canna-Dictionary: かんな辞書 / Dictionary for Canna

ページの右側にある「Clone or download」と書かれた緑のボタンを押して、現れたポップアップの右下の「Download ZIP」を押すとダウンロードできる。

これを解凍。


※注意

ここから先の操作が難しい場合は「~/.anthy/imported_words_default.d/」ディレクトリに「.t」ファイルを入れても辞書の登録ができる。

ただし、システム辞書の方が優先されるのできれいに変換できない場合もある。

「.ctd」ファイルを入れて有効になるかどうかは確認していないので分からない。

注意ここまで


二つのディレクトリの中にある「.t」ファイルと「.ctd」ファイルを「/usr/share/anthy/dic」へコピーする。

「katakana.t」ファイルは中身はコメントだけで変換語句は空だった。

それはコピーする必要はないが、コピーしても実害はないだろう。

これらのファイルはcanna用として作られているから、多分、ソートする必要は無いだろう。

最初に作ったGoogle日本語入力強化辞書をAnthyに変更した辞書ファイルも一緒にコピーする。

念のため、バックアップを取っておいた方が良いだろう。

同名ファイルがあるので上書きする。

これらのファイルの名前を/etc/anthy/diclistへ追加する。

diclistもバックアップをとっておいた方が良い。

ls -1 /usr/share/anthy/dic/ >> /etc/anthy/diclist

とすれば、辞書ファイル一覧が追加される。

このあと

update-anthy-dics

とすると辞書ファイルが更新される。

ログインしなおすかパソコンを再起動すれば、更新された辞書が使われるようになっているはずだ。

なお、これはroot環境で使われるPuppy LinuxやDebianDog系のディストリビューション(TahrPup,XenialPup,XenialDogなど)の話だ。

一般ユーザでログインして使うディストリビューションの場合は、各操作で「sudo」コマンドを頭につける必要があるだろう。

ディストリビューションによって場所は違うと思うが、Ubuntu系の場合は/var/lib/anthyディレクトリ以下にanthy.dicが、さらにmkworddic以下にanthy.wdicというファイルができる。

anthy.wdic文字コードUTF-8なのだと思う。

anthy.dicは40MB以上あり、強化前の2倍以上になった。


この文章もAnthyで書いている。

まだ使ってから間もないのでどの程度、良くなったのかわからないところもあるが、この記事を書いている分には不足はない。

不具合も今のところ出ていないのでうまくいっているのではないかと思う。

この程度使えるならMozcを使わなくても良いかもしれない。



Unified Anthyという改良版Anthyや、学習結果が消えてしまわないようにする方法もあるようだ。

くわしくはこちら。

arekorebibouroku.hateblo.jp


医学関係の辞書の語句で試してみたが、どうもきちんと反映されていない様だ。

辞書はある程度以上、大きくしても効かないのかも知れない。

だとすると辞書を肥大化させても意味がないから、「~/.anthy/imported_words_default.d/」ディレクトリに入れておいた方が良いかもしれない。


update-anthy-dicsコマンドがおかしく、文字コードUTF-8である辞書がきちんと読み込まれていないことがわかった。

修正してみた。

arekorebibouroku.hateblo.jp