前へ | 次へ | 目次 | 索引 |
JLB$TRA_TANGO_DONE, JSY$TRA_TANGO_DONE
単語候補の決定
単語候補の決定を行い,学習機能により次回の変換時に最初に現れるようにします。これを呼び出さずに別の読みによる単語変換を行った場合は,学習機能は働きません。
<形式>
status = JLB$TRA_TANGO_DONE
<引数>
なし
<形式>
status = JSY$TRA_TANGO_DONE
<引数>
なし
<戻り値>
status | SS$_NORMAL | 正常終了 |
0 | 変換ルーチンの内部エラーが起きた |
5.4 かな漢字変換辞書
かな漢字変換は,システム辞書,個人辞書と文節学習辞書の3つを用いて行われます。この節では,システム辞書,個人辞書および文節学習辞書の使用方法などについて説明します。
5.4.1 システム辞書
システム辞書は通常システムに1つ存在し,すべてのプロセスが共有します。省略時設定のファイル名は,JSY$DICTIONARY:JSYTANGO.JISHOです。この辞書には約10万語の単語,地名,氏名などが登録されています。論理名JSY$TANGOが定義されている場合は,そのファイルをシステム辞書として使用します。システム辞書は参照のみ可能で,その内容を変更することはできません。
5.4.2 個人辞書と文節学習辞書
プロセス単位で使用する個人辞書には2つの種類があります。 1つは,ユーザが使用した単語の使用順や単語登録の情報を保存するもの,もう1つは,かな漢字変換における文節の区切りや自立語,付属語の組み合わせなど,文節に関連する情報を保存するものです。
通常,前者を個人辞書,後者を文節学習辞書と呼びます。 1つのプロセスは1つの個人辞書と1つの文節学習辞書を使用します。複数のプロセスが,同時に1つの個人辞書と1つの文節学習辞書を共有して使用することが可能です。
個人辞書から単語を削除するには次の方法があります。
貴社の/記者が/汽車で/帰社した/ |
次回からは,上記の文章が1回で正しく変換されます。
文節学習辞書に文節学習データが書き込まれるのは,JLB$CNV_CLOSE_DICTIONARY またはJSY$CNV_CLOSE_DICTIONARYルーチンが呼ばれたときです。JLB$CNV_LEARN またはJSY$CNV_LEARNルーチンが呼ばれた時点では,メモリ中のデータの更新が行われるだけで文節学習辞書への書き込みは行われません。
個人辞書の使用モードを,論理名JSY$KOJIN_MODEの値で指定することができます。特に指定しない場合には0(共有モード)になります。
個人辞書の使用モードが“共有モード”または“学習モード”の場合,JLB$CNV_LEARN および JSY$CNV_LEARN ルーチンは,漢字変換した単語と 1 度漢字変換した後に文節ひらがな・カタカナ変換した単語を個人辞書に学習します。また JLB$CNV_CLOSE_DICTIONARY および JSY$CNV_CLOSE_DICTIONARY ルーチンは,文節学習結果を文節学習辞書に保存します。論理名 JSY$KOJIN_LEARN は,このうち文節ひらがな・カタカナ変換した単語の学習モードと文節学習のモードを制御します。
以下のいずれのモードの場合も,漢字変換された単語は学習します。
漢字変換された単語を学習します。
文節ひらがな変換された単語を学習します。
文節カタカナ変換された単語を学習します。
文節学習結果を文節学習辞書に保存します。
論理名 JSY$KOJIN_LEARN が定義されていない場合は,このモードです。
文節学習を行わない場合には,JSY$KOJIN_LEARN に0以外の値を指定します。
漢字変換された単語を学習します。
文節ひらがな変換された単語を学習します。
文節カタカナ変換された単語を学習します。
文節学習結果を文節学習辞書に保存しません。
漢字変換された単語を学習します。
文節ひらがな変換された単語を学習します。
文節カタカナ変換された単語は学習しません。
文節学習結果を文節学習辞書に保存しません。
漢字変換された単語を学習します。
文節ひらがな変換された単語は学習しません。
文節カタカナ変換された単語を学習します。
文節学習結果を文節学習辞書に保存しません。
漢字変換された単語を学習します。
文節ひらがな変換された単語は学習しません。
文節カタカナ変換された単語は学習しません。
文節学習結果を文節学習辞書に保存しません。
個人辞書に登録できる単語数には一部制限があります。
1つの読みに対して複数の表記が個人辞書に存在するとき,この読みに対して割り当てられる個人辞書のデータ・ブロックの最大は4ブロック(2048 バイト)です。したがって,同じ読みをもつ単語の登録数には限りがあります。しかし,読みの長さ,各々単語の表記の長さ,文法情報の数と組み合わせにより,登録可能な単語の数は変化します。以下におおよその目安を説明します。
読みの長さ : x 文字 (例 : しゃいん→ 4文字) 表記の平均の長さ : y 文字 (例 : 佐々木一郎,田中浩二郎... →平均5文字) 各々の表記の文法情報の平均数 : z 個 (例 : 人名→ 1個) このとき,同一読みの登録可能な単語数の目安は, 2048 − x − 1 ────────で表わされます。 2y + z + 3 例の場合は,(2048 − 4 − 1) ÷ (2 × 5 + 1 + 3) = 145.9... となり,約145語登録できるという目安が得られます。
1つの表記が複数の文法情報を持つとき,その文法情報の組み合わせによっては,文法情報データが縮小されて登録されることもあります。 |
かな漢字変換ルーチンを使用するときの注意事項および制限事項について説明します。
5.5.1 変換の開始と終了
かな漢字変換ルーチン群は,同時に 2 つ以上の読みを対象として変換を進行することはできません。変換開始ルーチンが呼び出された時点から新しい読み文字列による変換を開始します。また,学習機能ルーチンや単語登録/削除ルーチンを呼び出した後,再びかな漢字変換を行う場合は,変換開始ルーチンを呼び出し,読みを指定する必要があります。
5.5.2 複文節変換と単語単位変換の混用
1つの実行イメージで複文節変換 (JLB$CNV_xxxxxx および JSY$CNV_xxxxxx) と単語単位変換 (JLB$TRA_xxxxxx および JSY$TRA_xxxxxx) の両方のルーチンを使用する場合は次のような注意が必要です。
ある読みによる,かな漢字変換が進行している間の変換処理 (次候補要求など) および学習機能は,変換を開始したルーチンにより,複文節変換あるいは単語単位変換のどちらかのルーチンを統一して使用しなければなりません。
たとえば,複文節変換の JLB$CNV_CONVERT ルーチンにより変換を開始した場合,次候補要求には必ず JLB$CNV_NEXT_WORD ルーチンを呼び出し,また,学習機能を働かせるためには JLB$CNV_LEARN ルーチンを呼び出さなければなりません。同様に,単語単位変換の JLB$TRA_KANA_TANGO ルーチンにより変換を開始した場合には,次候補要求ルーチンとして JLB$TRA_TANGO_NEXT ルーチンを,学習機能を働かせるには JLB$TRA_TANGO_DONE ルーチンを呼び出さなければなりません。
1つの読みによる変換の進行中に複文節かな漢字変換ルーチン群(JLB$CNV_xxxxxxx または JSY$CNV_xxxxxx )と単語単位かな漢字変換ルーチン群(JLB$TRA_xxxxxx または JSY$TRA_xxxxxx)を混用した場合の結果については保証されません。
5.5.3 個人辞書を共用した場合の変換結果
日本語 OpenVMS Alpha では,複数のプロセスで個人辞書を共有することが可能になっていますが,この場合,学習結果は JSY$CNV_LEARN または JLB$CNV_LEARN が呼ばれた時点で個人辞書に反映されます。したがって,プロセス A で学習した単語と同じものをプロセス B がその直後に再学習した場合など,プロセス A から見た場合に直前の学習結果が反映されていないように見える場合があります。これは,日本語エディタなどのリカバリ機能を持つユーティリティに対して影響があります。
5.5.4 辞書アクセス時のエラー
複数のプロセスから同時に1つの個人辞書を共有している場合,個人辞書に対して書き込みが行われている間は他のプロセスからはアクセスできません。したがって,かな漢字変換ライブラリ内部では,辞書が解放されるのを最大3秒間だけ待ちます。その間に個人辞書が解放されれば通常どおり変換可能です。しかし時間内に辞書が解放されなかった場合,JSY$_RMSERR を返します。この場合,関数 jsy$cnv_io_error または jlb$cnv_io_error を呼び出せば RMS$_FLK が得られ,上記の事態が起きたことの確認ができます。
個人辞書がロックされるのは,次の6つの関数です。
jsy$cnv_open_dictionary | jlb$cnv_open_dictionary | 辞書のオープン |
jsy$cnv_convert | jlb$cnv_convert | かな漢字変換 |
jsy$cnv_clause_delete | jlb$cnv_clause_delete | 自立語削除 |
jsy$cnv_register_word | jlb$cnv_register_word | 単語登録 |
jsy$cnv_delete_word | jlb$cnv_delete_word | 単語削除 |
jsy$cnv_learn | jlb$cnv_learn | 変換確定と学習 |
個人辞書が存在している場合は,jsy$cnv_open_dictionay と jsy$cnv_convert, jsy$cnv_open_dictionay および jsy$cnv_convert,あるいは jsy$cnv_convert どうしは互いに,同時に辞書アクセスができます。
前へ | 次へ | 目次 | 索引 |