%%Title: Canna の使い方
%%Created: Mon Feb 11 19:02:18 JST 2002
%%Updated: Fri Feb 4 12:45:52 JST 2005
以下は多くの記述は FreeBSDの場合です。
NetBSDの場合、辞書は /var/dict/canna, サンプルは /usr/pkg/share/canna です。
o Cannaとは?
まずは本家http://www.nec.co.jp/canna/
こういう所も役に立つです。
o 設定
% cp /usr/local/canna/lib/default.canna ~/.canna
して適時いじる
o kinput2をFEPとして使う
Ctrl+Space で入力モードにするには
% cat .xinitrc
if ( -x /usr/X11R6/bin/kinput2 ) then
setenv XMODIFIERS '@im=kinput2'
/usr/X11R6/bin/kinput2 -xim &
endif
% cat .canna
(set-key 'alpha-mode "\C-@" 'japanese-mode)
(global-set-key "\C-@" 'alpha-mode)
% cat .Xdefaults
KTerm*VT100.Translations: #override \n\
Ctrlspace: begin-conversion(_JAPANESE_CONVERSION)
*inputMethod: kinput2
Kinput2*conversionStartKeys: Ctrlspace
メニューを開くには、kinput2 のクライアントを起動して、[HOME]を押す。
[HOME]キーがない時や、別のキーにバインドされている時は、
~/.canna に
(global-set-key "\F12" 'extend-mode)
とか書いとく。すると [F12]キーで代用できる。
o Cannaを育てる
Cannaをインストールしたばかりの時に、『わくせいたんさき』と入力すると、
『惑星単先』とか『惑星短先』と変換されて悲しくなる。
さて辞書を管理するために知っとくコマンドは以下の4つ
mkdic, lsdic, catdic, addwords, delwords
- ユーザ辞書を作る
例えば、basic と言う名前の辞書を作るには
% mkdic basic
New dictionary "basic" is created.
Please change customize file.
確認するには
% lsdic
basic
辞書を作ったら ~/.cannaの use-dictionaryに作った辞書を追加する。
% can ~/.canna
(use-dictionary
"iroha"
"fuzokugo"
"hojomwd"
"hojoswd"
"keishiki"
:bushu "bushu"
:user "basic"
:user "user"
)
kinput2や jvim-canna等のクライアントの再起動を忘れずに。
さて mkdic すると /usr/local/lib/canna/dic/user/sakane の下に
辞書が作られる。
% ls -R /usr/local/lib/canna/dic/user/sakane
#dics.dir dics.dir usr1.ctd
実際の辞書ファイルは dics.dirでマップ
されている usr1.ctd
% cat /usr/local/lib/canna/dic/user/sakane/dics.dir
#CANNA dics.dir [Mon Feb 11 19:33:25 2002] user/sakane
usr1.ctd(.mwd) -basic--w-
この状態で usr1.ctd はカラっぽ
- 単語の登録と削除
% addwords [読み] [品詞記号] [単語]
% delwords [読み] [品詞記号] [単語]
さて、『惑星探査機』を辞書 basicに登録するには、
% echo 'わくせいたんさき #T35 惑星探査機' | addwords basic
Addwords has done on "basic".
とする。
品詞記号は以下の通り。
マニュアルとソースコード(cmd/wtoc/wtoc.c, lib/canna/ulhinshi.c) から抜粋。
ほんとに処理してるかどうかは知らない。
#JCN は #JN と #CN で登録失敗したら使われるみたい。
#N2T17 は使うと mkbindic(正確には crxdic) でエラーになる。
品詞コード 品詞名 例
#T35 一般名詞 山, 本
#T30 サ変名詞 努力, 検査
#KK 固有名詞
#JN 人名
#CN 地名
#NN 数詞 何
#KJ 単漢字
#RT 連体詞
#PRE 接頭語 お、各
#CNPRE 接頭地名
#NNPRE 接頭数詞
#SUC 接尾語
#JSSUC 接尾助数詞
#JNSUC 接尾人名
#CNSUC1 接尾地名
#N2T30 サ行(する)&名詞化接尾語
#JCN 人名&地名
#K5 カ行五段活用動詞 描く
#G5 ガ行五段活用動詞 注ぐ
#S5 サ行五段活用動詞 倒す
#T5 タ行五段活用動詞 絶つ
#N5 ナ行五段活用動詞 死ぬ
#B5 バ行五段活用動詞 転ぶ
#M5 マ行五段活用動詞 住む
#R5 ラ行五段活用動詞 威張る
#W5 ワ行五段活用動詞 言う
#KS 上/下一段活用動詞 降りる
#KX カ行変格活用動詞 来る
#ZX ザ行変格活用動詞 感ずる
#SX サ行変格活用動詞 関する
#K5r カ行五段活用動詞(連用形が名詞) 動く
#C5r カ行(行く)
#L5 ラ行(下さい)
#kxo 来(こ)
#kxi 来(き)
#kxuru 来(く)
#sxi 為(し)
#sxuru 為(す)
#sxe 為(せ)
#G5r ガ行五段活用動詞(連用形が名詞) 行く
#S5r サ行五段活用動詞(連用形が名詞) 急ぐ
#T5r タ行五段活用動詞(連用形が名詞) 写す
#N5r ナ行五段活用動詞(連用形が名詞) 勝つ
#B5r バ行五段活用動詞(連用形が名詞) 遊ぶ
#M5r マ行五段活用動詞(連用形が名詞) 歩む
#R5r ラ行五段活用動詞(連用形が名詞) 見張る
#W5r ワ行五段活用動詞(連用形が名詞) 扱う
#KSr 上/下一段活用動詞(語幹が名詞) 生きる
#KY 形容詞 美しい, 早い
#KYT 形容詞 古い
#T00 形容動詞(サ変名詞としても使う) 心配だ
#T05 形容動詞(詳細の品詞を必要としない場合) 幸運だ
#F00 形容動詞(たる)
#F04 副詞
#F06 副詞
#F12 副詞
#F14 副詞(詳細の品詞を必要としない場合) 飽くまで
#CJ 接続詞/感嘆詞 及び
#D2T35 接尾動詞
#D2KY 形容詞化接尾動詞
#N2T17 形容動詞化接尾語
#JS 助数詞、接頭助数詞
- 辞書の削除
% rmdic basic
cannaserverが動いてなければ dics.dirから辞書を消して、
対応する辞書ファイルを消せばいい。
いずれにせよ、 ~/.canna の編集を忘れずに。
o 辞書の形式
- テキスト形式辞書
拡張子 .ctd
辞書を直接編集した時はサーバを再起動する。
[読み] [品詞記号] [単語 [単語 ... ]]
テキスト形式辞書をバイナリ形式辞書に変換するにはmkbindicを使う。
- バイナリ形式辞書
拡張子 .cbd
拡張子 .cld (頻度ファイル)
高速読み込みが可能になる
バイナリ形式辞書をテキスト形式辞書に変換するにはdpbindicを使う。
- 辞書目録 dics.dir
+ 辞書名とファイル名を関連付ける。
+ アクセス権を設定する。
形式:
辞書のファイル名(子辞書名) -辞書名--アクセス権-
辞書のファイル名
実際のファイル名。最初の文字はアルファベットから
始まらないといけないぽい。
子辞書名
テキスト形式辞書の場合、辞書名を省略して登録する。
ex. usr1.ctd(.mwd) -basic--w-
バイナリ形式の時は省略不可。(#子辞書を複数登録できるの?)
辞書名
.cannaで指定する辞書名
アクセス権
w: 書き込みのみ
r: 読み込みのみ
rw: どっちも
o 辞書を充実させる
http://www.vector.co.jp/vpack/filearea/data/writing/dic/index.html
http://www.kusastro.kyoto-u.ac.jp/~baba/dic/free-dic.html
とかから元になる辞書を拾ってきて、こんなスクリプトとかで頑張ってCanna形式に変換する。
EUCに変換するのを忘れずに。
全部1つの辞書にするとクライアントの起動に時間がかかるので、
mkbindic するとか、適当に分割して
用途にあわせてマウント/アンマウントすべし。
o テキスト形式辞書をバイナリ形式に変換する
例えば、テキスト形式辞書 basic.ctd を変換する。
mkbindic する前に sort | uniq しておく。
% mkbindic basic.ctd
forcpp -7 < basic.t | /usr/bin/cpp | forcpp -8 > /tmp/basic.cpp
:109295: possible real start of unterminated constant <== ' とか " が終端してない(?)
:235589: unterminated character constant
:253639: unterminated character constant <== ' とか " が終端してない
splitword /tmp/basic.cpp > /tmp/basic.spl
mv basic.t basic.bk
forsort -7 < /tmp/basic.spl | sort -d | forsort -8 | mergeword -X > basic.t
too long line
too long line <== 読みと漢字の合計が1024バイトを越えてる。無視
too long line
too long line
crxdic -m -o basic.cbd basic.t
Error in RkParseWrec <== N2T17 を使ってる
mkbindic: fatal error. exit
エラーを回避すると basic.cbd と basic.cld ができる。
一時ファイルを /tmp に作るので容量が足りなければ適時 TMPDIR を設定する。
cannaserver を止める。
/usr/local/lib/canna/dic/canna/dics.dir を編集する。
追加したいバイナリ辞書を basic.cbd とすると。
% cat dics.dir
:
(省略)
:
basic.cbd(.mwd) -basic--r--
basic.cld(.mwd) -basic--r--
として、できたファイルをこのディレクトリに置く。
更新する必要がないのでリンクしてもよい。
準備が出来たら cannaserver を起動する。
o バイナリ形式辞書をテキスト形式にする
バイナリ辞書を編集する時とかに有効
前述の basic.cbd を例に取ってテキスト形式 basic.txtに保存してみる。
最初にバイナリ形式辞書の中にある辞書名を調べる。
% dpbindic basic.cbd
dpxdic basic.cbd
basic.mwd [ Wed Feb 13 01:26:26 2002 ] = 304475 + 195663
basic.mwdという辞書が含まれている事がわかるので、これを引数として再度
dpbindicに渡す。
% dpbindic basic.cbd basic.mwd > basic.txt
o 世の中のフリー辞書
Canna用岩石学辞書
http://www.vector.co.jp/soft/data/writing/se125795.html
Kan君 部首変換と総画数
http://www.vector.co.jp/soft/data/writing/se001797.html
r-dic 鉄道関連データ辞書
http://www.vector.co.jp/soft/data/writing/se001883.html
WX3用【P】現代流行語辞書 PART.8
http://www.vector.co.jp/soft/data/writing/se021458.html
ATOK/WX3用 経済用語辞書
http://www.vector.co.jp/soft/data/writing/se060789.html
精神世界辞書TXT版
http://www.vector.co.jp/soft/data/writing/se132180.html
当て字難読語
http://www.vector.co.jp/soft/data/writing/se194451.html
特殊単語TЁχT辞書
http://www.vector.co.jp/soft/data/writing/se188089.html
日本史・文学史辞書(ATOK・IME)
http://www.vector.co.jp/soft/data/writing/se144944.html
Atok11辞書登録用の姓名のテキストdete date
http://www.vector.co.jp/soft/data/writing/se218823.html
ATOK13/14用 戦国人名辞書
http://www.vector.co.jp/soft/data/writing/se205703.html
ATOK8用 顔マーク辞書
http://www.vector.co.jp/soft/data/writing/se019194.html
ATOK8用 物理用語集
http://www.vector.co.jp/soft/data/writing/se039662.html
さくらの顔文字辞書2100 for ATOK
http://www.vector.co.jp/soft/data/writing/se083974.html
さくらの麻雀辞書 for ATOK11,12
http://www.vector.co.jp/soft/data/writing/se084007.html
花卉植物名辞書
http://www.vector.co.jp/soft/data/writing/se009721.html
会計用語辞書(ATOK)
http://www.vector.co.jp/soft/data/writing/se190306.html
古建築用語辞書
http://www.vector.co.jp/soft/data/writing/se023301.html
武道辞書
http://www.vector.co.jp/soft/data/writing/se029246.html
全国地名テキスト MS-IME95用
http://www.vector.co.jp/soft/data/writing/se044245.html
ATOK用人名辞書
http://www.vector.co.jp/soft/data/writing/se011392.html
沖縄人名地名辞書 ATOK8用
http://www.vector.co.jp/soft/data/writing/se018546.html
三国志人名辞書 MS-IME版
http://www.vector.co.jp/soft/data/writing/se090024.html
女の子の名前辞書用データ
http://www.vector.co.jp/soft/data/writing/se021655.html
人名辞書
http://www.vector.co.jp/soft/data/writing/se008149.html
元素名辞書
http://www.vector.co.jp/soft/data/writing/se016875.html
鉱物名辞書A型
http://www.vector.co.jp/soft/data/writing/se017251.html
VJEB用山名一括登録ファイル
http://www.vector.co.jp/soft/data/writing/se021124.html
軍事用語辞書
http://www.vector.co.jp/soft/data/writing/se119094.html
水滸伝・人名辞書 MS-IME2000版
http://www.vector.co.jp/soft/data/writing/se191693.html
pubdic+から作ったFreeWnn/Wnn4.2の辞書パッケージ
http://www.remus.dti.ne.jp/~endo-h/wnn/
gerodic 「人名に関する固有名詞辞書」
http://www.remus.dti.ne.jp/~endo-h/wnn/
私家版pubdic+補遺
http://www.remus.dti.ne.jp/~endo-h/wnn/
地球物理辞書
http://www.chibutsu.org/jisho/
天文・天体物理用語の辞書
http://www.kwasan.kyoto-u.ac.jp/~tanuma/
えっち・へんたい(えっへん)辞書
http://www.sf.airnet.ne.jp/kurasiki/ehhen.html
2ch用語辞書
http://omaemona.sourceforge.net/packages/Canna/