= FreeWnn LM: [2023-11-01 01:58:45]

1. 概要 [2023-10-05]

FreeWnn は,1980 年代中盤に作成された,日本語変換エンジン.クライアントサーバモデルになっていて,Wnn サーバ (jserver) を立ち上げておいて,クライアントから変換要求を投げる.emacs の場合,egg/tamago を利用する.

論文など,長い文章を書く際,egg/FreeWnn のペアで書いていたため,ゆっくりと文章を考えたい場合,どうしてもこのセットを使いたくなる.今はもうほとんど使ってる人いないだろうな…

現在,インターネット上の FreeWnn に関する情報はかなり消え去りつつあり,よしだともこさんが残してくれている,http://www.tomo.gr.jp/FreeWnn/ こちらかなりの情報が残っている状態.むしろ,ソースコード内の mannual ディレクトリ内の情報がとても充実しているので,参考にするべきと思われる.

2. 構造メモ [2023-10-16]

たまに把握した構造を書いておく場所:

  • jserver は,変換をつかさどるサーバ.TCP などで複数のクライアントからの変換を受ける.
  • クライアント実装はいくつか存在するっぽい.
    • uum は,FreeWnn の C ライブラリを用いた変換クライアント実装っぽい.jlib 内の関数を用いて jserver に接続する.
    • egg/tamago は,jlib 内の C 実装を何も使わず,全て elisp で書かれたクライアント.そう言えば,tamago v3 は C のライブラリがあって,v4 からは全て elisp と書いてある記事を見たことがある気がする.

3. 環境構築 [2023-10-05]

FreeBSD なら ports で,Linux なら少なくとも Ubuntu ではまだバイナリパッケージが提供されているので,そちらからインストールすると良い.

僕はサーバは基本的に FreeBSD を利用しているが,仕事では Windows を使わなければならず,Windows の中で Unix 的なコマンド環境を利用するなら,今は WSL1 or 2 を利用することになる.その際に Linux/Ubuntu を利用している.

ソースからコンパイルする場合,以下のように打っていけば多分コンパイルされると思われる.gcc などが必要といわれたら,適宜インストールすること.

% ./configure
% make 

3.1 jutil の準備 (Ubuntu) [2023-10-11]

Ubuntu の場合,atod や dtoa などの辞書を扱うためのコマンド群がパッケージに含まれていないので,自分でコンパイルする.ただし,make install までしてしまうと,パッケージで管理したい FreeWnn を上書きしてしまうことになるので,atod などのコマンドのみ <HOME>/bin 以下に入れておくと良い.

コンパイルをしようとすると,以下のようなエラーが出るかもしれない.

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

これは,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 の時代なので,以下のようなコマンドである程度閲覧しやすくなる.

nkf -w atod.man | groff -Dutf8 -Tutf8 -mandoc -mja -E | jless -R 

-r/-R を less につけることで,色だったり強調表示が ESC のような化けた感じになるのを抑制できる.参考

4. 辞書 [2023-11-01] [2021-05-29]

ソースコード内の Wnn/manual/intro の辞書の部分を見ると,FreeWnn の辞書は,登録可能形式と,固定形式,の二つに大きく分かれてるようである.登録可能形式は,最初に Wnn を利用する際に作成される ud のように,M-x egg-toroku-region などで単語を追加していける辞書のこと.固定形式は,辞書自体は変更できず,頻度情報を各ユーザ毎に保存しておく形式のこと.

FreeWnn をインストールすると,pubdic(場所は以下の節参照)などに kihon.dic,computer.dic などの辞書が一緒にインストールされる.(デフォルトで有効になってない辞書も含まれているが)以下がインストールされる辞書群で,全部足して 47724 語程度(数十文字程度誤差あり)である.

% 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

4.1 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.
    % /usr/local/bin/Wnn4/dtoa /usr/local/lib/wnn/ja_JP/dic/pubdic/kihon.dic | nkf -w

4.1.1 フォーマット

$(SRC)/Wnn/manual/2.env/dic/ujis_dic に詳細が記述されている. Ubuntu では,man UJIS_DIC で表示された.FreeBSD の ports だとインストールしていないっぽい.FreeBSD 9.1 のころの ports では man ujis_dic があったようにも見える.詳細は subversion なりのレポジトリを追わないと分からない.

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

実際に,computer.dic を dtoa すると,以下のようなデータが出てくる. \commentコンピュータ関連用語(pubdic) の間はタブが一つ.あーかいばアーカイバの間はタブが二つ入っていた.ただ,上記 man を見ると SPC と書いてあるのでもしかしたらスペースでも問題ないのかもしれない.

\comment        コンピュータ関連用語(pubdic)
\total  0
\hinsi

あーかいば              アーカイバ              名詞            1
あーかいぶ              アーカイブ              サ行(する)&名詞 8
あーきてくちゃ          アーキテクチャ          名詞            25
あーぎゅめんと          アーギュメント          名詞            6
あーてぃくる            アーティクル            名詞            1
あいこん                アイコン                名詞            37
あいてむ                アイテム                名詞            10
あいびーえむ            アイビーエム            固有名詞        1
あかうんと              アカウント              名詞            33
あきゅーむれーた        アキュームレータ        名詞            1
あきゅむれーた          アキュムレータ          名詞            1
あくせっしんぐ          アクセッシング          名詞            1

[2023-11-01] \comment は,M-x egg-toroku-region の際に選択する辞書に表示される情報として利用されている.

参考:

4.2 固定辞書 の扱い [2023-11-01]

ユーザ辞書は,dtoa/atod などのツールを用いて,バイナリ辞書形式とテキスト形式を相互変換できるので,別のホストにそこまで苦労せずに移行できるが,固定辞書の頻度情報をテキストに変換する方法は,[2023-11-01] 現在,見つかっていない.唯一可能なのが,固定辞書とユーザ毎の頻度情報を dtoa に両方指定し,ユーザの頻度情報を付与されたテキスト辞書データの出力である.Wnn が開発された時代は,かな漢字変換サーバを複数人で共有し,頻度情報を分離するのは効率的なリソース管理方法だったと思われるが,今でも FreeWnn を利用している人は,自分のマシンに FreeWnn をインストールし,一人だけで利用していると思われる.その場合,固定辞書を利用する必要はなく,すべての辞書をユーザ辞書として管理する方が,別の環境に移行する際に,頻度情報を含めた辞書データの移行が容易になると考えられる.

固定辞書からユーザ辞書に変更したくなり,すでに FreeWnn で日本語入力を行なっている場合,それぞれのユーザディレクトリに各辞書の頻度情報が書かれた .h ファイルがされている.これを辞書データにマージした上でユーザ辞書にするには,以下のようにすれば良い.

% 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

4.3 FreeWnn の付属語辞書 [2023-10-18]

30 年前の Wnn が作られた際にほとんど使われてなかった語尾の用法が,今となってはいくつか存在する.例えば,「僕はビールが大好きです」の語尾を「〜っす」にしてみると「僕はビールが大素キッス」と変換されてしまった.「っす」の部分を入れずに変換していけば良いのだが,急いで入力する時は入力したくなる.

単語については前の節のように名詞・固有名詞などで登録していけばいいので単純だが,付属語については結構難しそう.そもそも,Wnn が変換時に付属語をどのように利用しているかの理解も必要になる.

Wnn の辞書としては,.fzk という拡張子になっている.かなり詳細なデータ構造については,Wnn/manual/2.env/wnn/fzk.uに書かれているので,全部理解したらきっと簡単に登録できるのだろう. ざっと見た感じ,助動詞と他の単語のつながりがどういうケースがあるのかを記載しているファイルのように見える.そのつながりが「接続ベクトル」というものかもしれない.Wnn/pubdicplus/fzk.master-.c が接続ベクトル定義ファイルになっていて,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

fzk データを作成する方法のドキュメントはパッと見つからなかったので,make 時に出力されるコマンド履歴を参考にした.見付けたのは以下.

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

C のコンパイル部分と,grep で不要な行を削除したデータを,atof に渡すと付属語辞書が出来上がるらしい.

取り急ぎ,cc -E -DKOUGO fzk.master-.c | nkf -w として中身を見てみると,以下のような行がいくつか見つかった.以下は「〜っす」の元の日本語の「です」を検索したもの.

でしょ/助動詞です未然でしょ/@助動です幹.で: :助動である,ある止体:五段さ変等止体:一段等止体:助動ます止体:

\伝聞助動そうだ,そうです幹
そう/伝聞助動詞そうだ・そうです語幹/助動ます止体:助動ない止体: :形動,助動だ止:助動た,だ止体: :助動である,ある止体:五段さ
変等止体:一段等止体:形体止:

…これを「〜っす」に関して書くのはかなり骨が折れそうな気がするので,また時間が取れる時にやってみるかな…

[2023-10-20] 追記:上の fzk.master-.c は複数のファイルに対してマクロ展開しているので,元のデータをもうちょっと見るべきだなと思った.ざっと中身を見てみた感じ,以下のファイルに「です」が存在していて,怪しい感じ.

  • fzk.con
    • ;;; 付属語に関する接続情報
    • 他の言葉とのつながりに関する情報か?
  • fzk.fzkattr
    • ;;; 付属語名定義 および 各付属語の属性定義
    • 単品での付属語の定義が書かれてる.短い.
  • fzk.shuutan
    • ;;; 終端ベクタ
    • 終端ベクタ,というものがまだ理解できてないけど,ここにも「です」がいる.

5. mozc の辞書の利用

mozc は,Wnn に比べれば圧倒的に新しく開発された変換エンジンであり,かつ,Google が開発したと言うことで,Web からの情報を集めた辞書を内包している. さらに,LinuxPlayers さんが作成された UT 辞書 というものが存在していて,Wnn 向けの辞書をちまちま探すよりも,変化してしまった方が良さそうな気がする.古い辞書たちは,5 万語,10 万語の辞書だが,mozc 標準の辞書で 100 万語超の辞書を内包している.UT 辞書も追加すれば 200 万語.圧倒的(に見える).

[2023-10-05] UT 辞書の公開内容が変化していた.色々言われてげんなりしたのかな…さっと見た感じ,以前より少し面倒になっているが,ちゃんと情報を追えば 100 万語レベルの辞書は得られると思う.

5.1 辞書の DL

LinuxPlayers さんのところからダウンロードしてもよいし,以下の mozc の github からダウンロードしても良いと思う.

https://github.com/google/mozc/tree/master/src/data/dictionary_oss

5.2 mozc 辞書の解説

Mozc の辞書は,以下のような形式になっている.

あせらん        835     45      7191    あせらん
あせらん        835     45      6254    焦らん
あせん  690     45      5677    あせん
あそばん        835     45      6923    あそばん
あそばん        835     45      5880    遊ばん
あそべん        690     45      6353    遊べん
変換前左文脈ID右文脈IDコスト変換後

左文脈 ID とは,文章があるときに左から見た時の品詞,右文脈 ID とは文章の右側,つまり後ろの文章から見た時の品詞,という考え方だそう.形態素解析エンジンの MeCab も同じような構造だそう.Mozc がそもそも MeCab を参考に作成されているということなのだと思われる.

ID がどの品詞を示すかは,id.def に記載されている.

参考:

5.3 mozc 辞書からの変換

左右文脈 ID を正確に理解できないため,左文脈 ID だけで変換してしまうこととした.

5.3.1 名詞

1847 から 1894 を名詞とする.

5.3.2 固有名詞

1916 から 1926 を全て固有名詞にしてしまう.

1916 名詞,固有名詞,一般,*,*,*,*
1917 名詞,固有名詞,人名,一般,*,*,*
1918 名詞,固有名詞,人名,名,*,*,*
1919 名詞,固有名詞,人名,姓,*,*,*
1920 名詞,固有名詞,地域,一般,*,*,*
1921 名詞,固有名詞,地域,一般,*,*,府名
1922 名詞,固有名詞,地域,一般,*,*,県名
1923 名詞,固有名詞,地域,一般,*,*,都名
1924 名詞,固有名詞,地域,国,*,*,*
1925 名詞,固有名詞,組織,*,*,*,*

この番号は,上記のように定義されていて,Wnn 側の地名人名に登録した方が良さそうな気もしたが,実際に内容を見てみると,以下のようになっており,変換結果の中に地名があれば 1920 のような番号が振られている模様.これはさすがに地名ではないので,最も広い固有名詞にしておくのが良いかな…と考えた.

にゅーよーくふう       1920    1944    7007    NY風
にゅーよーくへん       1920    1944    6716    NY編
にゅーよーくりゅう     1920    1944    6593    NY流
あいずしっき   1920    1847    7421    会津漆器
あいずちほう   1920    1847    7083    会津地方

5.3.3 変換

自分でスクリプト書いて,変換かけた.

<TBD>

参考:

5.3.4 Wnn 辞書へ変更

Wnn 形式のテキスト辞書が出来たら,Wnn の辞書形式に変換する.Mozc で使われてる辞書は当然ながら UTF-8 で様々な文字が使われているが,FreeWnn の内部コードは EUC のため,使えない文字が多く存在する.

UTF-8 から EUC への変換に nkf を利用したが,以下のようなオプションをつけることで変換できない文字が ? になるので,この文字で grep して変換できなかった行は消してしまった.ちなみに,gnu grep は EUC の文字コードのファイルをバイナリファイルとして処理できない.BSD grep は EUC のままで処理できるので,FreeBSD の人は明示的に BSD grep を利用するようにするとよい.

% 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 

辞書が出来たら,atod をする.atod は何故か内部的に heap という形で使用メモリ量を制限する形になっている.これは Wnn のソースコードの include/jh.h の中で以下のように定義されている.エントリーと書いてあるが,行数のことである.つまり,7 万行までしか対応していない.30 年以上前に作られたコマンドなので,当時の PC のメモリ量を考えると必要な対応だったのかもしれない.…今でも,1000万語レベルでの登録などを考えたら,似たような仕組みは必要かもしれない.

#define MAX_ENTRIES 70000       /* default of max-entries for atod */

コードを眺めたり,atod を実行した時のヘルプを見ていたら,-s オプションの部分にちゃんと書いてあったのに気がついた.

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.

もし,7 万行以上登録する場合は,事前に行数を調べてから登録すると良い.以下は 30万語超を登録するケース.

% cat mozc_ippan_meishi.dic | wc -l 
% /usr/local/bin/Wnn4/atod -s 310000 mozc_ippan_meishi.dic < mozc_ippan_meishi_euc_noquestion.txt

5.4 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 行目程度のところに,以下のように追記すれば良い.

 (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)

[2023-11-01] 辞書の節で書いたように,固定辞書をユーザ辞書に変換した場合,eggrc の記述を以下のように変更すると,例えば,kihon.dic の頻度情報が kihon.dic の中に追記されていくので,別のホストに辞書を持っていっても,頻度情報が引き継がれることになる.この時,ud を一番前に持ってきておくと,M-x egg-toroku-region した時に,ud が一番最初に候補に出てくるようになる.

  (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)

5.5 その他

あれ?変換した辞書って公開して良いのかな…?気が向いたらライセンスなどを確認してみるか…

品詞について分からなさすぎる,と思いつつ Web 眺めてたら,こんなのを見付けた.品詞を軽く説明してくれてる.今度読もう. https://yukinoi.hatenablog.com/

6. 現存ドキュメント

  • ソースコード内の日本語ドキュメント
    • FreeBSD でコンソールだけで取得する方法.もちろん ftp なりで取ってくるのでも問題ない.
      # 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/ 
    • intro には詳細に,Wnn V4 の挙動や辞書について記述されている.

このページへのアクセス 今日: 1 / 昨日: 6 総計: 755

freewnn.txt · 最終更新: 2023/11/01 01:59 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0