日本語 Compaq OpenVMS
日本語ライブラリ 利用者の手引き


前へ 次へ 目次 索引


JLB$TRA_TANGO_DONEJSY$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. 個人辞書
    個人辞書の省略時設定のファイル名は SYS$LOGIN:JSYKOJIN.JISHO です。論理名 JSY$KOJIN が定義されている場合は,そのファイルを個人辞書として扱います。ただし,ネットワーク上の別ノードにある個人辞書へのアクセスはできません。
    個人辞書が存在しない場合は,辞書オープン・ルーチンが自動的に作成します。かな漢字変換ルーチンは個人辞書の単語をシステム辞書の単語に優先して使用します。
    この辞書には,ユーザの使用した単語が使用順に登録されます。また,日本語エディタなどを使用中に単語登録を行った場合にも,この辞書に登録されます。個人辞書編集ユーティリティを用いて,個人辞書を参照・追加・変更することもできます。
    個人辞書への単語の登録には次の方法があります。


    個人辞書から単語を削除するには次の方法があります。

  2. 文節学習辞書
    論理名 JSY$LEARN が定義されていない場合は,SYS$LOGIN:JSY$LEARN
    .DAT が使用されます。ただし,ネットワーク上の別ノードにある文節学習辞書へのアクセスはできません。文節学習辞書が存在しない場合は,辞書オープン・ルーチンが自動的に作成します。
    この辞書には,かな漢字変換における候補選択で最後に選ばれた単語が自立語と付属語とからなるとき,付属語も含む文節の情報を保存し,再使用するために用います。また,同じ読みに対して複数の文節区切りが可能な場合,文節の区切り方の情報もこの辞書に学習します。
    例えば,「きしゃのきしゃがきしゃできしゃした」を,次候補・文節移動などを使って正しい文章に変換します。


     
    貴社の/記者が/汽車で/帰社した/ 
     
    


    次回からは,上記の文章が1回で正しく変換されます。
    文節学習辞書に文節学習データが書き込まれるのは,JLB$CNV_CLOSE_DICTIONARY またはJSY$CNV_CLOSE_DICTIONARYルーチンが呼ばれたときです。JLB$CNV_LEARN またはJSY$CNV_LEARNルーチンが呼ばれた時点では,メモリ中のデータの更新が行われるだけで文節学習辞書への書き込みは行われません。

5.4.3 個人辞書の使用モードの選択

個人辞書の使用モードを,論理名JSY$KOJIN_MODEの値で指定することができます。特に指定しない場合には0(共有モード)になります。

5.4.4 個人辞書の学習モードの選択

個人辞書の使用モードが“共有モード”または“学習モード”の場合,JLB$CNV_LEARN および JSY$CNV_LEARN ルーチンは,漢字変換した単語と 1 度漢字変換した後に文節ひらがな・カタカナ変換した単語を個人辞書に学習します。また JLB$CNV_CLOSE_DICTIONARY および JSY$CNV_CLOSE_DICTIONARY ルーチンは,文節学習結果を文節学習辞書に保存します。論理名 JSY$KOJIN_LEARN は,このうち文節ひらがな・カタカナ変換した単語の学習モードと文節学習のモードを制御します。

以下のいずれのモードの場合も,漢字変換された単語は学習します。

5.4.5 個人辞書の単語数

個人辞書に登録できる単語数には一部制限があります。

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 注意事項および制限事項

かな漢字変換ルーチンを使用するときの注意事項および制限事項について説明します。

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 どうしは互いに,同時に辞書アクセスができます。


前へ 次へ 目次 索引