検索
検索
Sakakibara Hiroshi / 榊󠄀原 寛
文書の表示
以前のリビジョン
トレース:
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
= [[FreeWnn]] LM: [2023-11-01 01:58:45] ~~NOCACHE~~ ====== - 概要 [2023-10-05] ====== FreeWnn は,1980 年代中盤に作成された,日本語変換エンジン.クライアントサーバモデルになっていて,Wnn サーバ (jserver) を立ち上げておいて,クライアントから変換要求を投げる.emacs の場合,egg/tamago を利用する. 論文など,長い文章を書く際,egg/FreeWnn のペアで書いていたため,ゆっくりと文章を考えたい場合,どうしてもこのセットを使いたくなる.今はもうほとんど使ってる人いないだろうな… 現在,インターネット上の FreeWnn に関する情報はかなり消え去りつつあり,よしだともこさんが残してくれている,http://www.tomo.gr.jp/FreeWnn/ こちらかなりの情報が残っている状態.むしろ,ソースコード内の mannual ディレクトリ内の情報がとても充実しているので,参考にするべきと思われる. ====== - 構造メモ [2023-10-16] ====== たまに把握した構造を書いておく場所: * jserver は,変換をつかさどるサーバ.TCP などで複数のクライアントからの変換を受ける. * クライアント実装はいくつか存在するっぽい. * uum は,FreeWnn の C ライブラリを用いた変換クライアント実装っぽい.jlib 内の関数を用いて jserver に接続する. * egg/tamago は,jlib 内の C 実装を何も使わず,全て elisp で書かれたクライアント.そう言えば,tamago v3 は C のライブラリがあって,v4 からは全て elisp と書いてある記事を見たことがある気がする. ====== - 環境構築 [2023-10-05] ====== FreeBSD なら ports で,Linux なら少なくとも Ubuntu ではまだバイナリパッケージが提供されているので,そちらからインストールすると良い. 僕はサーバは基本的に FreeBSD を利用しているが,仕事では Windows を使わなければならず,Windows の中で Unix 的なコマンド環境を利用するなら,今は WSL1 or 2 を利用することになる.その際に Linux/Ubuntu を利用している. ソースからコンパイルする場合,以下のように打っていけば多分コンパイルされると思われる.gcc などが必要といわれたら,適宜インストールすること. <code bash> % ./configure % make </code> ===== - jutil の準備 (Ubuntu) [2023-10-11] ==== Ubuntu の場合,atod や dtoa などの辞書を扱うためのコマンド群がパッケージに含まれていないので,自分でコンパイルする.ただし,''make install'' までしてしまうと,パッケージで管理したい FreeWnn を上書きしてしまうことになるので,atod などのコマンドのみ <HOME>/bin 以下に入れておくと良い. コンパイルをしようとすると,以下のようなエラーが出るかもしれない. <code bash> make FZK_FLAG=-DKANSAI std.fzk make[3]: ディレクトリ '/home/skk/download/freewnn/FreeWnn-1.1.1-a021/Wnn/pubdicplus' に入ります gcc -E -DKANSAI fzk.master-.c | egrep -v '^(# |#line |#pragma |$)' | ../..//Wnn/jutil/atof -h ../..//Wnn/jd/hinsi.data std.fzk Bad format near line 228 "@̿". Segmentation fault </code> これは,GNU grep の仕様が昔と比べて変わったという話なので,'/usr/local/bin/ggrep -E' などに書き換えればいいのかもしれない.FreeBSD でも同じエラーが出たが,僕が GNU grep を ports で入れていたからなので,'pubdicplus/Makefile' の該当部分を '/usr/bin/egrep' に書き換えたら,すんなりコンパイルが通った.多分,Linux でも ggrep に書き換えれば通るのではないだろうか(試してない).([2023-10-18]) その際,atod/dtoa は hinsi.data ファイルを利用するようなので,ソース内の ''Wnn/jd/hinsi.data'' を利用すればよい.atod/dtoa を良く利用するならば,''LIBDIR'' で指定されている ''/usr/local/lib/wnn/ja_JP/'' 以下に hinsi.data をコピーまたはシンボリックリンクなどで読み込めるようにしておくと,コマンドを使うたびに hinsi.data を指定しなくて良くなる. man は ''Wnn/man/'' 以下に存在していて,各コマンドなどは,6.jutil の中に格納されている.ただし,man でインストールされることを前提としているため,単に less するだけだと読みにくい.man は roff とかいうフォーマットのため,整形ツールを通す必要がある.今は,UTF の時代なので,以下のようなコマンドである程度閲覧しやすくなる. <code shell> nkf -w atod.man | groff -Dutf8 -Tutf8 -mandoc -mja -E | jless -R </code> -r/-R を less につけることで,色だったり強調表示が ESC のような化けた感じになるのを抑制できる.[[https://yanor.net/wiki/?UNIX/less%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7ls%E3%82%84man%E3%82%92%E8%89%B2%E4%BB%98%E3%81%8D%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B|参考]]. ====== - 辞書 [2023-11-01] [2021-05-29] ====== ソースコード内の Wnn/manual/intro の辞書の部分を見ると,FreeWnn の辞書は,登録可能形式と,固定形式,の二つに大きく分かれてるようである.登録可能形式は,最初に Wnn を利用する際に作成される ud のように,M-x egg-toroku-region などで単語を追加していける辞書のこと.固定形式は,辞書自体は変更できず,頻度情報を各ユーザ毎に保存しておく形式のこと. FreeWnn をインストールすると,pubdic(場所は以下の節参照)などに kihon.dic,computer.dic などの辞書が一緒にインストールされる.(デフォルトで有効になってない辞書も含まれているが)以下がインストールされる辞書群で,全部足して 47724 語程度(数十文字程度誤差あり)である. <code bash> % for HOGE in bio.dic chimei.dic computer.dic g-jinmei.dic jinmei.dic kihon.dic koyuu.dic setsuji.dic special.dic supplement.dic tankan.dic tankan2.dic tankan3.dic for> do for> wc -l $HOGE for> done 514 bio.dic 895 chimei.dic 698 computer.dic 1561 g-jinmei.dic 619 jinmei.dic 17892 kihon.dic 21 koyuu.dic 208 setsuji.dic 19 special.dic 19321 supplement.dic 1250 tankan.dic 1388 tankan2.dic 3338 tankan3.dic </code> ===== - FreeWnn のユーザ辞書 ===== Wnn の辞書データの文字コードは EUC.各種ドキュメントには UJIS と書かれている. インストール先: * 標準辞書データ * FreeBSD: /usr/local/lib/wnn/ja_JP/dic/pubdic * Ubuntu Linux: /usr/share/wnn/ja_JP/dic -> 実態は /var/lib/wnn 以下. * コマンドインストール先 * FreeBSD: /usr/local/bin/Wnn4/ * Ubuntu: atod/dtoa などはパッケージではインストールされない.ソースからコンパイルすれば良い. * ユーザ辞書 * FreeBSD: /usr/local/lib/wnn/ja_JP/dic/usr/<user>/ud * Ubuntu Linux: /usr/share/wnn/ja_JP/dic/usr/<user>/ud 辞書変換ツール: * atod: ascii to dictionary. * dtoa: dictionary to ascii. <code bash> % /usr/local/bin/Wnn4/dtoa /usr/local/lib/wnn/ja_JP/dic/pubdic/kihon.dic | nkf -w</code> ==== - フォーマット ==== $(SRC)/Wnn/manual/2.env/dic/ujis_dic に詳細が記述されている. Ubuntu では,man UJIS_DIC で表示された.FreeBSD の ports だとインストールしていないっぽい.FreeBSD 9.1 のころの ports では man ujis_dic があったようにも見える.詳細は subversion なりのレポジトリを追わないと分からない. <code> UJIS_DIC( ) UNIX Programmer's Manual UJIS_DIC( ) 名称 UJIS形式辞書ファイル — UJIS形式辞書ファイルの形式 機能 UJIS形式辞書ファイルは、バイナリ形式の固定形式辞書と登録 可能形式辞書をUJIS形式で表現したものである。UJIS形式 辞書ファイルと固定形式辞書,および登録可能形式辞書間の相互変 換は、辞書ユーティリティを用いて行う。バイナリ形式に変換する 場合、単語は読みでソートされていなければならない。UJIS辞 書ファイルに対する語句の追加,削除,及び変更は、 vi 等のエデ ィタで行う。 ファイルの形式 \comment コメント (CR) \total 総頻度 (CR) \hinsi (CR) 読み (SP) 単語 (SP) 品詞 (SP) 頻度 (SP)[ コメント ](CR) 読み (SP) 単語 (SP) 品詞 (SP) 頻度 (SP)[ コメント ](CR) 読み (SP) 単語 (SP) 品詞 (SP) 頻度 (SP)[ コメント ](CR) | | | | | | | | | | | | (EOF) コメント 辞書全体に付けられたコメントである。 総頻度 辞書全体の頻度 ( その辞書が経験した単文節変換の回数 ) である。 int 型。 読み 単語の読み。256文字までの長さで、ユーザ辞書はひら がな・「ー」・半角英数字、固定形式辞書はひらがな・「 ー」で逆順に表現する。なお、半角英字は大文字・小文字 の区別をしない。ソート時の文字の大小関係は、「ー」・ ひらがな・半角英数字の順である。 単語 256文字までの半角文字・全角文字・外字など全ての文 字表現が可能。スペース、改行文字などの制御文字は に続く2桁の8進数で表す。 \ に続く 0 以外の文字はそ の文字になる (\\ → \) 。 品詞 品詞名で、直接表現する。 名詞 固有名詞 品詞名は、 /usr/local/lib/wnn/hinsi.data 参照。 頻度 各単語の頻度である。 コメント 512文字まで。 Printed 9/6/93 6 Septemter 1993 1 </code> 実際に,computer.dic を dtoa すると,以下のようなデータが出てくる. ''\comment'' と ''コンピュータ関連用語(pubdic)'' の間はタブが一つ.''あーかいば''と''アーカイバ''の間はタブが二つ入っていた.ただ,上記 man を見ると ''SPC'' と書いてあるのでもしかしたらスペースでも問題ないのかもしれない. <code> \comment コンピュータ関連用語(pubdic) \total 0 \hinsi あーかいば アーカイバ 名詞 1 あーかいぶ アーカイブ サ行(する)&名詞 8 あーきてくちゃ アーキテクチャ 名詞 25 あーぎゅめんと アーギュメント 名詞 6 あーてぃくる アーティクル 名詞 1 あいこん アイコン 名詞 37 あいてむ アイテム 名詞 10 あいびーえむ アイビーエム 固有名詞 1 あかうんと アカウント 名詞 33 あきゅーむれーた アキュームレータ 名詞 1 あきゅむれーた アキュムレータ 名詞 1 あくせっしんぐ アクセッシング 名詞 1 </code> [2023-11-01] ''\comment'' は,''M-x egg-toroku-region'' の際に選択する辞書に表示される情報として利用されている. 参考: * [2023-10-06] [[https://docs.oracle.com/cd/E19455-01/806-2800/6jc09qd0b/index.html|Wnn6の辞書の説明]] ===== - 固定辞書 の扱い [2023-11-01] ===== ユーザ辞書は,dtoa/atod などのツールを用いて,バイナリ辞書形式とテキスト形式を相互変換できるので,別のホストにそこまで苦労せずに移行できるが,固定辞書の頻度情報をテキストに変換する方法は,[2023-11-01] 現在,見つかっていない.唯一可能なのが,固定辞書とユーザ毎の頻度情報を dtoa に両方指定し,ユーザの頻度情報を付与されたテキスト辞書データの出力である.Wnn が開発された時代は,かな漢字変換サーバを複数人で共有し,頻度情報を分離するのは効率的なリソース管理方法だったと思われるが,今でも FreeWnn を利用している人は,自分のマシンに FreeWnn をインストールし,一人だけで利用していると思われる.その場合,固定辞書を利用する必要はなく,すべての辞書をユーザ辞書として管理する方が,別の環境に移行する際に,頻度情報を含めた辞書データの移行が容易になると考えられる. 固定辞書からユーザ辞書に変更したくなり,すでに FreeWnn で日本語入力を行なっている場合,それぞれのユーザディレクトリに各辞書の頻度情報が書かれた .h ファイルがされている.これを辞書データにマージした上でユーザ辞書にするには,以下のようにすれば良い. <code bash> % cd /usr/local/lib/wnn/ja_JP/dic/usr/<user> % /usr/local/bin/Wnn4/dtoa ../../pubdic/kihon.dic kihon.h | sudo /usr/local/bin/Wnn4/atod kihon.dic </code> ===== - FreeWnn の付属語辞書 [2023-10-18] ===== 30 年前の Wnn が作られた際にほとんど使われてなかった語尾の用法が,今となってはいくつか存在する.例えば,「僕はビールが大好きです」の語尾を「〜っす」にしてみると「僕はビールが大素キッス」と変換されてしまった.「っす」の部分を入れずに変換していけば良いのだが,急いで入力する時は入力したくなる. 単語については前の節のように名詞・固有名詞などで登録していけばいいので単純だが,付属語については結構難しそう.そもそも,Wnn が変換時に付属語をどのように利用しているかの理解も必要になる. Wnn の辞書としては,.fzk という拡張子になっている.かなり詳細なデータ構造については,''Wnn/manual/2.env/wnn/fzk.u''に書かれているので,全部理解したらきっと簡単に登録できるのだろう. ざっと見た感じ,助動詞と他の単語のつながりがどういうケースがあるのかを記載しているファイルのように見える.そのつながりが「接続ベクトル」というものかもしれない.''Wnn/pubdicplus/fzk.master-.c'' が接続ベクトル定義ファイルになっていて,C のマクロである. <code c> ;;; Last modified date: 8,Feb.1999 ;;; ;;; ; ; Wnn version 4 接続ベクトル定義ファイル ; Pubdic Version 1989/11/7 ; #ifdef comment このファイルは、生の定義ファイルではなく、以下のマクロの 定義/未定義により、それぞれの目的に応じた接続ベクトル定義 ファイルを cpp を使って生成するようになっている。 マクロ名 意味 ======================================================= KOUGO 口語で、ややくだけた表現 KANSAI 主に関西地方で使われる口語表現 (KOUGO を仮定) #endif #if KANSAI && !KOUGO #define KOUGO #endif #include "fzk.attr" #include "fzk.jirattr" #include "fzk.fzkattr" #include "fzk.jircon" #include "fzk.con" #include "fzk.shuutan" \bye </code> fzk データを作成する方法のドキュメントはパッと見つからなかったので,make 時に出力されるコマンド履歴を参考にした.見付けたのは以下. <code bash> make FZK_FLAG=-DKANSAI std.fzk cc -E -DKANSAI fzk.master-.c | /usr/bin/egrep -v '^(# |#line |#pragma |$)' | ../..//Wnn/jutil/atof -h ../..//Wnn/jd/hinsi.data std.fzk mv -f std.fzk full.fzk make FZK_FLAG=-DKOUGO std.fzk cc -E -DKOUGO fzk.master-.c | /usr/bin/egrep -v '^(# |#line |#pragma |$)' | ../..//Wnn/jutil/atof -h ../..//Wnn/jd/hinsi.data std.fzk mv -f std.fzk kougo.fzk cc -E fzk.master-.c | /usr/bin/egrep -v '^(# |#line |#pragma |$)' | ../..//Wnn/jutil/atof -h ../..//Wnn/jd/hinsi.data std.fzk </code> C のコンパイル部分と,grep で不要な行を削除したデータを,atof に渡すと付属語辞書が出来上がるらしい. 取り急ぎ,''cc -E -DKOUGO fzk.master-.c | nkf -w'' として中身を見てみると,以下のような行がいくつか見つかった.以下は「〜っす」の元の日本語の「です」を検索したもの. <code> でしょ/助動詞です未然でしょ/@助動です幹.で: :助動である,ある止体:五段さ変等止体:一段等止体:助動ます止体: \伝聞助動そうだ,そうです幹 そう/伝聞助動詞そうだ・そうです語幹/助動ます止体:助動ない止体: :形動,助動だ止:助動た,だ止体: :助動である,ある止体:五段さ 変等止体:一段等止体:形体止: </code> …これを「〜っす」に関して書くのはかなり骨が折れそうな気がするので,また時間が取れる時にやってみるかな… [2023-10-20] 追記:上の fzk.master-.c は複数のファイルに対してマクロ展開しているので,元のデータをもうちょっと見るべきだなと思った.ざっと中身を見てみた感じ,以下のファイルに「です」が存在していて,怪しい感じ. * fzk.con * ;;; 付属語に関する接続情報 * 他の言葉とのつながりに関する情報か? * fzk.fzkattr * ;;; 付属語名定義 および 各付属語の属性定義 * 単品での付属語の定義が書かれてる.短い. * fzk.shuutan * ;;; 終端ベクタ * 終端ベクタ,というものがまだ理解できてないけど,ここにも「です」がいる. ====== - mozc の辞書の利用 ====== mozc は,Wnn に比べれば圧倒的に新しく開発された変換エンジンであり,かつ,Google が開発したと言うことで,Web からの情報を集めた辞書を内包している. さらに,LinuxPlayers さんが作成された [[http://linuxplayers.g1.xrea.com/mozc-ut.html|UT 辞書]] というものが存在していて,Wnn 向けの辞書をちまちま探すよりも,変化してしまった方が良さそうな気がする.古い辞書たちは,5 万語,10 万語の辞書だが,mozc 標準の辞書で 100 万語超の辞書を内包している.UT 辞書も追加すれば 200 万語.圧倒的(に見える). [2023-10-05] [[http://linuxplayers.g1.xrea.com/mozc-ut.html|UT 辞書]]の公開内容が変化していた.色々言われてげんなりしたのかな…さっと見た感じ,以前より少し面倒になっているが,ちゃんと情報を追えば 100 万語レベルの辞書は得られると思う. ===== - 辞書の DL ====== LinuxPlayers さんのところからダウンロードしてもよいし,以下の mozc の github からダウンロードしても良いと思う. https://github.com/google/mozc/tree/master/src/data/dictionary_oss ===== - mozc 辞書の解説 ===== Mozc の辞書は,以下のような形式になっている. <code> あせらん 835 45 7191 あせらん あせらん 835 45 6254 焦らん あせん 690 45 5677 あせん あそばん 835 45 6923 あそばん あそばん 835 45 5880 遊ばん あそべん 690 45 6353 遊べん </code> |変換前|左文脈ID|右文脈ID|コスト|変換後| 左文脈 ID とは,文章があるときに左から見た時の品詞,右文脈 ID とは文章の右側,つまり後ろの文章から見た時の品詞,という考え方だそう.形態素解析エンジンの MeCab も同じような構造だそう.Mozc がそもそも MeCab を参考に作成されているということなのだと思われる. ID がどの品詞を示すかは,id.def に記載されている. 参考: * [[https://null-i.net/index.html?Linux/Mozc%E8%BE%9E%E6%9B%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A7%E6%BC%A2%E5%AD%97%E5%A4%89%E6%8F%9B|null-i.net]]さんの説明がほぼ完璧に見える. * [[https://irukanobox.blogspot.com/2019/08/mecab.html|MeCabで固有名詞を単語として扱えるようにする]] * [[https://qiita.com/yukinoi/items/14a07958727bef5f8e9c|Mozcの辞書を使ってMeCabでかな漢字変換する]] ===== - mozc 辞書からの変換 ===== 左右文脈 ID を正確に理解できないため,左文脈 ID だけで変換してしまうこととした. ==== - 名詞 ==== 1847 から 1894 を名詞とする. ==== - 固有名詞 ==== 1916 から 1926 を全て固有名詞にしてしまう. <code> 1916 名詞,固有名詞,一般,*,*,*,* 1917 名詞,固有名詞,人名,一般,*,*,* 1918 名詞,固有名詞,人名,名,*,*,* 1919 名詞,固有名詞,人名,姓,*,*,* 1920 名詞,固有名詞,地域,一般,*,*,* 1921 名詞,固有名詞,地域,一般,*,*,府名 1922 名詞,固有名詞,地域,一般,*,*,県名 1923 名詞,固有名詞,地域,一般,*,*,都名 1924 名詞,固有名詞,地域,国,*,*,* 1925 名詞,固有名詞,組織,*,*,*,* </code> この番号は,上記のように定義されていて,Wnn 側の''地名''や''人名''に登録した方が良さそうな気もしたが,実際に内容を見てみると,以下のようになっており,変換結果の中に地名があれば 1920 のような番号が振られている模様.これはさすがに地名ではないので,最も広い''固有名詞''にしておくのが良いかな…と考えた. <code> にゅーよーくふう 1920 1944 7007 NY風 にゅーよーくへん 1920 1944 6716 NY編 にゅーよーくりゅう 1920 1944 6593 NY流 あいずしっき 1920 1847 7421 会津漆器 あいずちほう 1920 1847 7083 会津地方 </code> ==== - 変換 ==== 自分でスクリプト書いて,変換かけた. <TBD> 参考: * [[https://startide.jp/comp/im/userdic/|startide さんの辞書変換スクリプト]] ただし,Wnn についてはうまく動かなかった. ==== - Wnn 辞書へ変更 ==== Wnn 形式のテキスト辞書が出来たら,Wnn の辞書形式に変換する.Mozc で使われてる辞書は当然ながら UTF-8 で様々な文字が使われているが,FreeWnn の内部コードは EUC のため,使えない文字が多く存在する. UTF-8 から EUC への変換に nkf を利用したが,以下のようなオプションをつけることで変換できない文字が ''?'' になるので,この文字で grep して変換できなかった行は消してしまった.ちなみに,gnu grep は EUC の文字コードのファイルをバイナリファイルとして処理できない.BSD grep は EUC のままで処理できるので,FreeBSD の人は明示的に BSD grep を利用するようにするとよい. <code bash> % nkf --fb-subchar -e mozc_koyu_meishi.txt > mozc_koyu_meishi_euc.txt % /usr/bin/grep -v "?" mozc_koyu_meishi_euc.txt > mozc_koyu_meishi_noquestion.txt </code> 辞書が出来たら,atod をする.atod は何故か内部的に heap という形で使用メモリ量を制限する形になっている.これは Wnn のソースコードの ''include/jh.h'' の中で以下のように定義されている.エントリーと書いてあるが,行数のことである.つまり,7 万行までしか対応していない.30 年以上前に作られたコマンドなので,当時の PC のメモリ量を考えると必要な対応だったのかもしれない.…今でも,1000万語レベルでの登録などを考えたら,似たような仕組みは必要かもしれない. <code c> #define MAX_ENTRIES 70000 /* default of max-entries for atod */ </code> コードを眺めたり,atod を実行した時のヘルプを見ていたら,''-s'' オプションの部分にちゃんと書いてあったのに気がついた. <code> Usage : /usr/local/bin/Wnn4/atod [-r -R -S -U -e -s maximum word count(default 70000) -P passwd (or -N) -p hindo_passwd (or -n) -h hi> Input the ascii dictionary from stdin -r is for creating dictionary with normal and reverse index -R is for creating reverse (implies updatable) dictionary. (default) -S is for creating static dictionary. -U is for creating updatable dictionary. -e is for compacting kanji string. </code> もし,7 万行以上登録する場合は,事前に行数を調べてから登録すると良い.以下は 30万語超を登録するケース. <code bash> % cat mozc_ippan_meishi.dic | wc -l % /usr/local/bin/Wnn4/atod -s 310000 mozc_ippan_meishi.dic < mozc_ippan_meishi_euc_noquestion.txt </code> ===== - emacs からの利用 ===== OS に応じて,フォルダに配置する.今回は,dic/mozcdic というディレクトリを作成して,dic ファイルを配置した. * FreeBSD: /usr/local/lib/wnn/ja_JP/dic/ * Ubuntu Linux: /usr/share/wnn/ja_JP/dic/ -> 実態は /var/lib/wnn 以下. 追ってないのだが,何故か Wnn 側の設定ファイルで辞書の登録はする必要がない.emacs から使うことだけを考えるなら,egg の ''eggrc'' という設定ファイルだけ変更すれば良い.50 行目程度のところに,以下のように追記すれば良い. <code lisp> (wnn-add-dict "mozcdic/mozc_ippan_meishi.dic" '("mozc_ippan_meishi.h") 1 nil t) (wnn-add-dict "mozcdic/mozc_koyu_meishi.dic" '("mozc_koyu_meishi.h") 1 nil t) </code> [2023-11-01] [[https://www.sakaki.works/doku/doku.php?id=freewnn#%E5%9B%BA%E5%AE%9A%E8%BE%9E%E6%9B%B8_%E3%81%AE%E6%89%B1%E3%81%84_2023-11-01|辞書の節]]で書いたように,固定辞書をユーザ辞書に変換した場合,eggrc の記述を以下のように変更すると,例えば,kihon.dic の頻度情報が kihon.dic の中に追記されていくので,別のホストに辞書を持っていっても,頻度情報が引き継がれることになる.この時,ud を一番前に持ってきておくと,''M-x egg-toroku-region'' した時に,''ud'' が一番最初に候補に出てくるようになる. <code lisp> (wnn-add-dict '("ud") nil 5 t t) (wnn-add-dict '("kihon.dic") nil 5 t t) (wnn-add-dict '("setsuji.dic") nil 5 t t) (wnn-add-dict '("koyuu.dic") nil 1 t t) (wnn-add-dict '("chimei.dic") nil 1 t t) (wnn-add-dict '("jinmei.dic") nil 1 t t) (wnn-add-dict '("special.dic") nil 5 t t) (wnn-add-dict '("computer.dic") nil 5 t t) (wnn-add-dict '("symbol.dic") nil 1 t t) (wnn-add-dict '("tankan.dic") nil 1 t t) (wnn-add-dict '("bio.dic") nil 1 t t) (wnn-add-dict '("tankan2.dic") nil 1 t t) (wnn-add-dict '("tankan3.dic") nil 1 t t) (wnn-add-dict '("g-jinmei.dic") nil 1 t t) (wnn-add-dict '("supplement.dic") nil 1 t t) </code> ===== - その他 ===== あれ?変換した辞書って公開して良いのかな…?気が向いたらライセンスなどを確認してみるか… 品詞について分からなさすぎる,と思いつつ Web 眺めてたら,こんなのを見付けた.品詞を軽く説明してくれてる.今度読もう. https://yukinoi.hatenablog.com/ ====== - 現存ドキュメント ====== * ソースコード内の日本語ドキュメント * FreeBSD でコンソールだけで取得する方法.もちろん ftp なりで取ってくるのでも問題ない.<code bash> # cd /usr/ports/japanese/FreeWnn-server/ # make fetch # cp /usr/ports/distfiles/FreeWnn-1.1.1-a021.tar.bz2 ~/tmp/ # cd ~/tmp/ # tar yxvf FreeWnn-1.1.1-a021.tar.bz2 # cd FreeWnn-1.1.1-a021/Wnn/manual/ </code> * intro には詳細に,Wnn V4 の挙動や辞書について記述されている. ---- このページへのアクセス 今日: {{counter|today}} / 昨日: {{counter|yesterday}} 総計: {{counter|total}}
freewnn.txt
· 最終更新: 2023/11/01 01:59 by
skk
文書の先頭へ