NIIBE Yutaka
gniib****@fsij*****
2005年 10月 15日 (土) 16:59:22 JST
wtype.h と wtype.c のメモです。 On Sat, 15 Oct 2005 16:16:04 +0900 NIIBE Yutaka <gniib****@m17n*****> wrote: > ここまでやっておくと、wtype_t の実装(今はビットに encode している) を > ハンドルがあってアクセサがテーブルを引くというのに変更できます。 > > 言いたかったのは、ビットに encode しているという実装を「使う側」も > 知っているというインタフェースってどうですかってことです。 知らないように隠せると嬉しい、という意味です。 以下、呼んでいてわかったことや、変更して作った関数の説明。 ----------------- * 名前のテーブルへアクセス const char *anthy_type_to_wtype(const char *name, wtype_t *w); anthy_type_to_wtype は、「辞書ファイル中の名前」(#KJ とか #T とか wtab.h がテーブル)から、品詞 (wtype_t)および「辞書ファイル中の名前」の 固定の文字列を得るルーチン。「辞書ファイル中の名前」は anthy が定義す るものではなく、辞書を作る人が決める(た)もの。名前から品詞は決まるが、 異なる名前でもanthy としては同一の品詞にマップされることもありうる(品 詞から名前は一意ではない)。 int anthy_init_wtype_by_name(const char *str, wtype_t *w); anthy_init_wtype_by_name は anthy の定義する品詞の名前から、品詞 (wtype_t)を得る。品詞は ptab.h がテーブルだが、これは名前から品詞(6次 元の数値データ)へのテーブルであり、目的は名前から品詞を得ることで重複 があるやもしれない。また、実行時にはこのテーブルにない品詞が生成されて 使われることもある。ptab.h は名前がつけられた固定の品詞が列挙されてい るテーブルということ。 * 品詞の空間の演算について wtype_t anthy_get_wtype(int pos, int cos, int scos, int cc, int ct, int wf); 6 次元のデータから品詞を得る。 wtype_t anthy_get_wtype_with_ct(wtype_t base, int ct); BASE の品詞から CT(活用形)を変えた品詞を得る。 int anthy_wtype_get_pos(wtype_t w); int anthy_wtype_get_cc(wtype_t w); int anthy_wtype_get_ct(wtype_t w); int anthy_wtype_get_cos(wtype_t w); int anthy_wtype_get_scos(wtype_t w); int anthy_wtype_get_wf(wtype_t w); 品詞から 6 次元のデータへのアクセサ。 --