オフライン学習機能を利用して、次の処理を行えます。
ユーザー辞書、頻度ファイル、FI 関係ユーザー辞書、FI 関係頻度ファイルに対する変換効率向上のための頻度の再配置
ディスク、メモリー資源の削減 (不要な単語の削除)
登録語自動反映
オフライン学習の対象となる辞書、頻度ファイルを読み込む可能性のあるかな漢字変換サーバーと辞書引きサーバーをロックします。
ロックすると、かな漢字変換サーバーと辞書引きサーバーの機能は以下のように制御されます。
ロックすると使用できなくなる機能:
頻度学習
FI 学習
自動学習 (無変換 / 文節切り)
単語登録 / 単語削除
辞書 / 頻度ファイルの読み込み
ユーザー辞書 / ユーザー頻度ファイルの削除
ユーザー学習用ディレクトリ作成
辞書ファイル / 頻度ファイルの作成
コメントの設定 (ファイル / 単語)
ファイルのパスワード設定
辞書への品詞テーブル設定
オフライン学習の終了時には、かな漢字変換サーバーと辞書引きサーバーに対する上記の制御を解除します。
登録語自動反映モジュールを起動し、すべてのユーザー辞書を調査して、複数のユーザーで登録されている単語をマージ辞書に登録します。
マージ辞書に登録された単語は、ユーザー辞書から削除されます。この削除によって FI 関係ユーザー辞書が影響を受ける場合は、FI 関係ユーザー辞書も更新されます。
登録語自動反映モジュールは、必ずオフライン学習機能から (自動的に) 起動してください。単独では起動しないでください。
登録語自動反映モジュールは、ユーザー辞書に直接アクセスします。登録語自動反映の機能を使用する場合は、オフライン学習の処理全体をユーザー辞書の存在するシステム上で行なってください。
登録語自動反映機能について、その処理の流れに沿って解説します。
オフライン学習では、ユーザー辞書、頻度ファイル、FI 関係ユーザー辞書、FI 関係頻度ファイルに対して、変換効率の向上、 頻度の飽和防止、ディスクやメモリー容量の削減のための学習処理を行います。
同一単語の過去 2 回の頻度をもとに、表 3-1 に示すパターンに従って頻度を下げます。
表 3-1 頻度下げパターン
パターン |
処理 |
|
---|---|---|
前々回、前回、今回の頻度がすべて同じ 前々回 前回 今回 ●->->->●->->->● |
頻度を下げる |
|
前回の処理で頻度下げが発生 前々回 前回 今回 ●->->-> ↓ ●->->-> ↓ ●->->->● |
頻度を下げる |
|
上記以外のすべてのパターン |
頻度はそのまま |
頻度が 0 になった単語を辞書から削除します。
辞書の種類によって対応が異なります。
ユーザー辞書、頻度ファイル
同一単語の前々回->前回->今回 (現在から 2 回前まで) の頻度がすべて 0 の場合に単語を削除します。
FI 関係ユーザー辞書、FI 関係頻度ファイル
接続頻度が 0 の場合に、単語に対する FI 関係データを削除します。
Entries ファイルは、オフライン学習の環境とその保存ディレクトリの対応関係を定義します。このファイルは、システムから自動的に出力されます。
ファイル :
/usr/lib/locale/ja/wnn/offline/Entries |
Entries ファイルは次のような書式で出力されます。
target_directory save_directory target_directory save_directory ・ ・ |
表 3-2 Entries ファイル出力書式の内容
target_directory |
対象となる環境のディレクトリ名を絶対パス名で出力 |
save_directory |
保存ファイルのあるディレクトリ名を出力 上図の offline ディレクトリからの相対パス名で出力 |
次に、Entries ファイルの出力例を示します。
/usr/lib/locale/ja/wnn/ja/dic/usr/user1 user1 /usr/lib/locale/ja/wnn/ja/dic/usr/user2 user2 |
通常、save_directory は target_directory のベース名と同じになります。
すでに save_directory 名が存在する場合は、「_」 に続いてシリアルナンバーが付加されます。
以下に、save_directory にシリアルナンバーが付加された場合の出力例を示します。
/usr/lib/locale/ja/wnn/ja/dic/usr/userA userA /home/userA userA_1 /opt/Wnn6/userA userA_2 |
システム管理者は、オフライン学習の前に、あらかじめ offlinerc ファイル、 udmergerc ファイル、cron の設定をすませておく必要があります。
offlinerc は、オフライン学習の動作を規定するテキストファイルです。
オフライン学習を起動するときは、必ず offlinerc ファイルを設定しておきます。
ファイル :
/etc/lib/locale/ja/wnn/offlinerc |
書式は次のとおりです。
<キーワード> <設定値> /* パス名、数字など */ <キーワード> <設定値> /* パス名、数字など */ <キーワード> <設定値> /* パス名、数字など */ ・ ・ |
キーワードと設定値の間には「空白文字」または「タブ文字」を入力して区切ります。
「;」 で始まる行と 「/*」 と 「*/」 で囲まれた範囲は、コメントとして解釈されます。
同一のキーワードが複数設定された場合は、ファイル中で最後に記述されている指定が有効になります。ただし、キーワード「target」は、ファイルの最後に記述されていても有効にはなりません。
表 3-3 に、offlinerc ファイルのキーワード一覧を示します。
表 3-3 offlinerc のキーワード一覧
キーワード |
設定内容 |
オフライン学習を行う環境のディレクトリを指定する。 指定したディレクトリの下のディレクトリもすべて指定される。 target は複数回指定することができる。 省略不可 |
|
target <ディレクトリパス名 1> target <ディレクトリパス名 2> ・ ・ |
|
jserver が起動しているホスト名を指定する。 ここで指定された jserver に対して、ファイルのセーブ、ロックのプロトコルを送る。 ホスト名を省略すると、jserver のロックは行われない。 同時に複数個を指定する場合は、「,」 で区切る。 下記のキーワード wnnds_list での指定個数と合わせて 50 個のホストを指定できる。 省略不可 |
|
jserver_list <ホスト 1>, <ホスト 2>, <ホスト 3>, ... |
|
wnnds が起動しているホスト名を指定する。 ここで指定された wnnds に対して、ファイルのセーブ、ロックのプロトコルを送る。 ホスト名を省略すると、wnnds のロックは行われない。 同時に複数個を指定する場合は、「,」 で区切る。 上記のキーワード jserver_list での指定個数と合わせて 50 個のホストを指定できる。 省略不可 |
|
wnnds_list <ホスト 1>, <ホスト 2>, <ホスト 3>, ... |
|
オフライン学習から起動する登録語自動反映モジュールのコマンドライン (オプションを含む) を指定する。 省略すると /usr/lib/locale/ja/wnn/wnnudmerge が使用される |
|
udmerge_command <コマンドライン> |
|
オフライン学習で、単語削除を行うかどうかを ON または OFF で指定する。 省略すると、OFF に設定される |
|
delete_entry [ON/OFF] |
|
オフライン学習で、頻度を下げる場合の下げ率を % で指定する。0 〜 100 の整数値で指定。省略すると、50 % に設定される |
|
decrease_percent <下げ率> |
|
オフライン学習の環境とその保存ディレクトリの対応関係を出力する Entries ファイルのディレクトリパス名を指定する。 省略すると /usr/lib/locale/ja/wnn/wnnoffline が使用される |
|
offline_dir <ディレクトリパス名> |
|
1 つの環境の使用回数がここで指定される数値を超えたとき、ファイルの保存や処理が行われる。 0 〜 4294967295 の整数値で指定する。 省略すると、1000 に設定される |
|
update_count <回数> |
offlinerc ファイルの記述では、target、jserver_list、wnnds_list の 3 つのキーワードは省略できません。また、jserver_list、wnnds_list では引数であるホスト名を省略することができますが、target では引数にオフライン学習を行う環境のディレクトリを指定しなければなりません。
表 3-4 に、offlinerc のキーワード jserver_list と wnnds_list のホスト指定の記述形式を示します。
表 3-4 jserver_list と wnnds_list のホスト指定
記述形式 |
説明 |
---|---|
host_name |
ホスト名 (または、IP アドレス) のみを指定。 標準ポート番号が適用される |
host_name:offset_number |
標準ポート番号に offset_number を加算したポート番号を使用 |
host_name/port_number |
ポート番号として port_number を使用 |
target @LIBDIR/ja/dic/usr jserver_list hostA,hostA:3,133.210.2.10:1,hostB/22274 wnnds_list hostC:3,hostB,133.210.2.46,hostB/22374 udmerge_command /usr/lib/locale/ja/wnn/wnnudmerge ;delete_entry on delete_entry off decrease_percent 30 offline_dir @LIBDIR/offline update_count 2000 |
target または offline_dir のキーワードでのみ、@LIBDIR の記述を使用して /usr/lib/locale/ja/wnn のパスに置き換えることができます。
オフライン学習の動作中に発生するエラー内容については、付録 C 「エラーメッセージ一覧」を参照してください。
登録語自動反映モジュールを起動する前に、udmergerc ファイルの設定をすませておく必要があります。
ファイル :
/etc/lib/locale/ja/wnn/udmergerc |
udmergerc は、次のような書式で作成します。
<キーワード> <設定値 (パス名)> <- udmergerc ファイルは <キーワード> <設定値 (ファイル名)> 必ずこの順序で記述します。 <キーワード> <設定値 (数字)> ・ ・ ・ ・ |
キーワードと設定値は「空白文字」または「タブ文字」で区切ります。
udmergerc ファイルで使用できるキーワードは、uddir、mergedic、usernum の 3 つです。一組の uddir-mergedic-usernum の設定で、 1 ユーザーグループにおける辞書のマージ環境を指定することができます。
udmergercファイルで使用できるキーワードの解説を表 3-5に示します
表 3-5 udmergerc のキーワード一覧
キーワード |
設定内容 |
---|---|
マージ元辞書となるユーザー辞書を指定する。 ユーザー辞書が存在するディレクトリパス名を入力する。 複数のユーザー辞書を指定する場合は、「,」 で区切る。 すべてのユーザー辞書に対応する場合は、 /usr/lib/locale/ja/wnn/ja/dic/usr を指定する |
|
uddir <ユーザー辞書が存在するディレクトリパス名> |
|
マージ先辞書名を指定。ファイル名を指定する |
|
mergedic <マージ先辞書ファイル名> |
|
指定した数以上のユーザーが同一の単語を登録している場合、その単語をマージする。 all を指定すると、上記の uddir で指定された全ユーザー辞書で単語登録が行われた場合にマージが実行される |
|
usernum <ユーザー数> (/all) |
登録語自動反映機能で処理できるユーザー辞書数は、1024 個までです。
次に例を示します。
udmergerc ファイルでは @LIBDIR という記述はすべて /usr/lib/locale/ja/wnn/ に展開されます。
複数グループのマージ辞書を作成する場合には、3 つのキーワードをまとめて複数個指定します。
uddir @LIBDIR/ja/dic/usr/A,@LIBDIR/ja/dic/usr/B mergedic @LIBDIR/ja/udmerge/udmerge1.dic usernum 2 uddir @LIBDIR/ja/dic/usr/C,@LIBDIR/ja/dic/usr/D @LIBDIR/ja/dic/usr/E,@LIBDIR/ja/dic/usr/F mergedic @LIBDIR/ja/dic/udmerge/udmerge2.dic usernum 4 |
登録されているすべてのユーザーが同じ単語を登録した場合、辞書マージを行います。
uddir @LIBDIR/ja/dic/usr mergedic @LIBDIR/ja/dic/udmerge/udmerge.dic usernum all |
ここでは、wnnoffline を定期的に実行させるための設定方法を説明します。
cron の設定は、wnnoffline の設定が完了してから行なってください。