差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
freewnn [2023/10/12 02:30] – skk | freewnn [2023/11/01 01:59] (現在) – skk | ||
---|---|---|---|
行 1: | 行 1: | ||
- | = [[FreeWnn]] | + | = [[FreeWnn]] |
+ | ~~NOCACHE~~ | ||
====== - 概要 [2023-10-05] ====== | ====== - 概要 [2023-10-05] ====== | ||
行 7: | 行 8: | ||
論文など,長い文章を書く際,egg/ | 論文など,長い文章を書く際,egg/ | ||
- | 現在,インターネット上の FreeWnn に関する情報はかなり消え去りつつあり,よしだともこさんが残してくれている,http:// | + | 現在,インターネット上の FreeWnn に関する情報はかなり消え去りつつあり,よしだともこさんが残してくれている,http:// |
+ | |||
+ | ====== - 構造メモ [2023-10-16] ====== | ||
+ | |||
+ | たまに把握した構造を書いておく場所: | ||
+ | |||
+ | * jserver は,変換をつかさどるサーバ.TCP などで複数のクライアントからの変換を受ける. | ||
+ | * クライアント実装はいくつか存在するっぽい. | ||
+ | * uum は,FreeWnn の C ライブラリを用いた変換クライアント実装っぽい.jlib 内の関数を用いて jserver に接続する. | ||
+ | * egg/tamago は,jlib 内の C 実装を何も使わず,全て elisp で書かれたクライアント.そう言えば,tamago v3 は C のライブラリがあって,v4 からは全て elisp と書いてある記事を見たことがある気がする. | ||
====== - 環境構築 [2023-10-05] ====== | ====== - 環境構築 [2023-10-05] ====== | ||
行 25: | 行 36: | ||
Ubuntu の場合,atod や dtoa などの辞書を扱うためのコマンド群がパッケージに含まれていないので,自分でコンパイルする.ただし,'' | Ubuntu の場合,atod や dtoa などの辞書を扱うためのコマンド群がパッケージに含まれていないので,自分でコンパイルする.ただし,'' | ||
+ | |||
+ | コンパイルをしようとすると,以下のようなエラーが出るかもしれない. | ||
+ | |||
+ | <code bash> | ||
+ | make FZK_FLAG=-DKANSAI std.fzk | ||
+ | make[3]: ディレクトリ '/ | ||
+ | gcc -E -DKANSAI fzk.master-.c | egrep -v '^(# |#line |#pragma |$)' | ../ | ||
+ | Bad format near line 228 " | ||
+ | Segmentation fault | ||
+ | </ | ||
+ | |||
+ | これは,GNU grep の仕様が昔と比べて変わったという話なので,'/ | ||
その際,atod/ | その際,atod/ | ||
行 36: | 行 59: | ||
-r/-R を less につけることで,色だったり強調表示が ESC のような化けた感じになるのを抑制できる.[[https:// | -r/-R を less につけることで,色だったり強調表示が ESC のような化けた感じになるのを抑制できる.[[https:// | ||
- | ====== - 辞書 [2021-05-29] ====== | + | ====== - 辞書 |
- | FreeWnn | + | ソースコード内の Wnn/ |
+ | |||
+ | 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 | ||
+ | </ | ||
- | ===== - Wnn4 の辞書 ===== | + | ===== - FreeWnn |
Wnn の辞書データの文字コードは EUC.各種ドキュメントには UJIS と書かれている. | Wnn の辞書データの文字コードは EUC.各種ドキュメントには UJIS と書かれている. | ||
インストール先: | インストール先: | ||
- | * 辞書データ | + | * 標準辞書データ |
* FreeBSD: / | * FreeBSD: / | ||
* Ubuntu Linux: / | * Ubuntu Linux: / | ||
行 51: | 行 96: | ||
* FreeBSD: / | * FreeBSD: / | ||
* Ubuntu: atod/dtoa などはパッケージではインストールされない.ソースからコンパイルすれば良い. | * Ubuntu: atod/dtoa などはパッケージではインストールされない.ソースからコンパイルすれば良い. | ||
+ | * ユーザ辞書 | ||
+ | * FreeBSD: / | ||
+ | * Ubuntu Linux: / | ||
+ | |||
辞書変換ツール: | 辞書変換ツール: | ||
行 149: | 行 198: | ||
</ | </ | ||
+ | [2023-11-01] '' | ||
参考: | 参考: | ||
* [2023-10-06] [[https:// | * [2023-10-06] [[https:// | ||
+ | |||
+ | ===== - 固定辞書 の扱い [2023-11-01] ===== | ||
+ | |||
+ | ユーザ辞書は,dtoa/ | ||
+ | |||
+ | 固定辞書からユーザ辞書に変更したくなり,すでに FreeWnn で日本語入力を行なっている場合,それぞれのユーザディレクトリに各辞書の頻度情報が書かれた .h ファイルがされている.これを辞書データにマージした上でユーザ辞書にするには,以下のようにすれば良い. | ||
+ | |||
+ | <code bash> | ||
+ | % cd / | ||
+ | % / | ||
+ | </ | ||
+ | |||
+ | ===== - FreeWnn の付属語辞書 [2023-10-18] ===== | ||
+ | |||
+ | 30 年前の Wnn が作られた際にほとんど使われてなかった語尾の用法が,今となってはいくつか存在する.例えば,「僕はビールが大好きです」の語尾を「〜っす」にしてみると「僕はビールが大素キッス」と変換されてしまった.「っす」の部分を入れずに変換していけば良いのだが,急いで入力する時は入力したくなる. | ||
+ | |||
+ | 単語については前の節のように名詞・固有名詞などで登録していけばいいので単純だが,付属語については結構難しそう.そもそも,Wnn が変換時に付属語をどのように利用しているかの理解も必要になる. | ||
+ | |||
+ | Wnn の辞書としては,.fzk という拡張子になっている.かなり詳細なデータ構造については,'' | ||
+ | ざっと見た感じ,助動詞と他の単語のつながりがどういうケースがあるのかを記載しているファイルのように見える.そのつながりが「接続ベクトル」というものかもしれない.'' | ||
+ | |||
+ | <code c> | ||
+ | ;;; Last modified date: 8,Feb.1999 | ||
+ | ;;; | ||
+ | ;;; | ||
+ | ; | ||
+ | ; Wnn version 4 接続ベクトル定義ファイル | ||
+ | ; | ||
+ | ; | ||
+ | #ifdef comment | ||
+ | このファイルは、生の定義ファイルではなく、以下のマクロの | ||
+ | 定義/ | ||
+ | ファイルを cpp を使って生成するようになっている。 | ||
+ | |||
+ | マクロ名 | ||
+ | ======================================================= | ||
+ | KOUGO | ||
+ | KANSAI | ||
+ | #endif | ||
+ | |||
+ | #if KANSAI && !KOUGO | ||
+ | #define KOUGO | ||
+ | #endif | ||
+ | |||
+ | #include " | ||
+ | #include " | ||
+ | #include " | ||
+ | #include " | ||
+ | #include " | ||
+ | #include " | ||
+ | |||
+ | \bye | ||
+ | </ | ||
+ | |||
+ | fzk データを作成する方法のドキュメントはパッと見つからなかったので,make 時に出力されるコマンド履歴を参考にした.見付けたのは以下. | ||
+ | |||
+ | <code bash> | ||
+ | make FZK_FLAG=-DKANSAI std.fzk | ||
+ | cc -E -DKANSAI fzk.master-.c | / | ||
+ | mv -f std.fzk full.fzk | ||
+ | make FZK_FLAG=-DKOUGO std.fzk | ||
+ | cc -E -DKOUGO fzk.master-.c | / | ||
+ | mv -f std.fzk kougo.fzk | ||
+ | cc -E fzk.master-.c | / | ||
+ | </ | ||
+ | |||
+ | C のコンパイル部分と,grep で不要な行を削除したデータを,atof に渡すと付属語辞書が出来上がるらしい. | ||
+ | |||
+ | 取り急ぎ,'' | ||
+ | |||
+ | |||
+ | < | ||
+ | でしょ/ | ||
+ | |||
+ | \伝聞助動そうだ, | ||
+ | そう/ | ||
+ | 変等止体: | ||
+ | </ | ||
+ | |||
+ | …これを「〜っす」に関して書くのはかなり骨が折れそうな気がするので,また時間が取れる時にやってみるかな… | ||
+ | |||
+ | [2023-10-20] 追記:上の fzk.master-.c は複数のファイルに対してマクロ展開しているので,元のデータをもうちょっと見るべきだなと思った.ざっと中身を見てみた感じ,以下のファイルに「です」が存在していて,怪しい感じ. | ||
+ | |||
+ | * fzk.con | ||
+ | * ;;; 付属語に関する接続情報 | ||
+ | * 他の言葉とのつながりに関する情報か? | ||
+ | * fzk.fzkattr | ||
+ | * ;;; 付属語名定義 および 各付属語の属性定義 | ||
+ | * 単品での付属語の定義が書かれてる.短い. | ||
+ | * fzk.shuutan | ||
+ | * ;;; 終端ベクタ | ||
+ | * 終端ベクタ,というものがまだ理解できてないけど,ここにも「です」がいる. | ||
+ | |||
行 281: | 行 424: | ||
追ってないのだが,何故か Wnn 側の設定ファイルで辞書の登録はする必要がない.emacs から使うことだけを考えるなら,egg の '' | 追ってないのだが,何故か Wnn 側の設定ファイルで辞書の登録はする必要がない.emacs から使うことだけを考えるなら,egg の '' | ||
- | < | + | < |
| | ||
| | ||
+ | </ | ||
+ | |||
+ | [2023-11-01] [[https:// | ||
+ | |||
+ | |||
+ | <code lisp> | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
+ | (wnn-add-dict ' | ||
</ | </ | ||
行 304: | 行 468: | ||
* intro には詳細に,Wnn V4 の挙動や辞書について記述されている. | * intro には詳細に,Wnn V4 の挙動や辞書について記述されている. | ||
+ | ---- | ||
+ | このページへのアクセス | ||
+ | 今日: {{counter|today}} / 昨日: {{counter|yesterday}} | ||
+ | 総計: {{counter|total}} | ||