Wnn6 上級ユーザーおよびシステム管理者ガイド

第 3 章 オフライン学習の管理

3.1 オフライン学習の概要

オフライン学習機能を利用して、次の処理を行えます。

3.2 オフライン学習の機能と動作

3.2.1 かな漢字変換サーバー / 辞書引きサーバーのロック

オフライン学習の対象となる辞書、頻度ファイルを読み込む可能性のあるかな漢字変換サーバーと辞書引きサーバーをロックします。

ロックすると、かな漢字変換サーバーと辞書引きサーバーの機能は以下のように制御されます。

オフライン学習の終了時には、かな漢字変換サーバーと辞書引きサーバーに対する上記の制御を解除します。

3.2.2 登録語自動反映

登録語自動反映モジュールを起動し、すべてのユーザー辞書を調査して、複数のユーザーで登録されている単語をマージ辞書に登録します。

マージ辞書に登録された単語は、ユーザー辞書から削除されます。この削除によって FI 関係ユーザー辞書が影響を受ける場合は、FI 関係ユーザー辞書も更新されます。


注 -

登録語自動反映モジュールは、必ずオフライン学習機能から (自動的に) 起動してください。単独では起動しないでください。



注 -

登録語自動反映モジュールは、ユーザー辞書に直接アクセスします。登録語自動反映の機能を使用する場合は、オフライン学習の処理全体をユーザー辞書の存在するシステム上で行なってください。


図 3-1 登録語自動反映機能のイメージ

Graphic

3.2.2.1 機能説明

登録語自動反映機能について、その処理の流れに沿って解説します。

Graphic

3.2.3 学習処理

オフライン学習では、ユーザー辞書、頻度ファイル、FI 関係ユーザー辞書、FI 関係頻度ファイルに対して、変換効率の向上、 頻度の飽和防止、ディスクやメモリー容量の削減のための学習処理を行います。

3.2.3.1 頻度下げ

同一単語の過去 2 回の頻度をもとに、表 3-1 に示すパターンに従って頻度を下げます。

表 3-1 頻度下げパターン
パターン
処理
前々回、前回、今回の頻度がすべて同じ
前々回  	 前回 	 	 今回
●->->->●->->->●
頻度を下げる
前回の処理で頻度下げが発生
前々回				前回					今回
	●->->->		↓
												●->->->	↓ 
																							●->->->● 
頻度を下げる
上記以外のすべてのパターン
頻度はそのまま

3.2.3.2 単語削除

頻度が 0 になった単語を辞書から削除します。

辞書の種類によって対応が異なります。

3.2.4 保存ディレクトリの対応ファイル作成 (Entries)

Entries ファイルは、オフライン学習の環境とその保存ディレクトリの対応関係を定義します。このファイルは、システムから自動的に出力されます。

ファイル :

/usr/lib/locale/ja/wnn/offline/Entries

図 3-2 オフライン学習の環境を保存するためのディレクトリ構成

Graphic

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_directorytarget_directory のベース名と同じになります。

すでに save_directory 名が存在する場合は、「_」 に続いてシリアルナンバーが付加されます。

以下に、save_directory にシリアルナンバーが付加された場合の出力例を示します。


/usr/lib/locale/ja/wnn/ja/dic/usr/userA		userA
/home/userA																														userA_1
/opt/Wnn6/userA																										userA_2

3.3 オフライン学習の設定

システム管理者は、オフライン学習の前に、あらかじめ offlinerc ファイル、 udmergerc ファイル、cron の設定をすませておく必要があります。

3.3.1 offlinerc の設定

offlinerc は、オフライン学習の動作を規定するテキストファイルです。

オフライン学習を起動するときは、必ず offlinerc ファイルを設定しておきます。

ファイル :

/etc/lib/locale/ja/wnn/offlinerc

書式は次のとおりです。

<キーワード>  <設定値> /* パス名、数字など */ 
<キーワード>  <設定値> /* パス名、数字など */ 
<キーワード>  <設定値> /* パス名、数字など */ 
	   ・	      ・

キーワードと設定値の間には「空白文字」または「タブ文字」を入力して区切ります。

「;」 で始まる行と 「/*」 と 「*/」 で囲まれた範囲は、コメントとして解釈されます。

同一のキーワードが複数設定された場合は、ファイル中で最後に記述されている指定が有効になります。ただし、キーワード「target」は、ファイルの最後に記述されていても有効にはなりません。

表 3-3 に、offlinerc ファイルのキーワード一覧を示します。

表 3-3 offlinerc のキーワード一覧

キーワード 

設定内容 

target

オフライン学習を行う環境のディレクトリを指定する。 

指定したディレクトリの下のディレクトリもすべて指定される。 

target は複数回指定することができる。  

省略不可  

target <ディレクトリパス名 1>

target <ディレクトリパス名 2>

・ ・  

jserver_list

jserver が起動しているホスト名を指定する。 

ここで指定された jserver に対して、ファイルのセーブ、ロックのプロトコルを送る。 

ホスト名を省略すると、jserver のロックは行われない。 

同時に複数個を指定する場合は、「,」 で区切る。  

下記のキーワード wnnds_list での指定個数と合わせて 50 個のホストを指定できる。  

省略不可  

jserver_list <ホスト 1>, <ホスト 2>, <ホスト 3>, ...

wnnds_list

wnnds が起動しているホスト名を指定する。 

ここで指定された wnnds に対して、ファイルのセーブ、ロックのプロトコルを送る。 

ホスト名を省略すると、wnnds のロックは行われない。 

同時に複数個を指定する場合は、「,」 で区切る。  

上記のキーワード jserver_list での指定個数と合わせて 50 個のホストを指定できる。  

省略不可  

wnnds_list <ホスト 1>, <ホスト 2>, <ホスト 3>, ...

udmerge_ command

オフライン学習から起動する登録語自動反映モジュールのコマンドライン (オプションを含む) を指定する。  

省略すると /usr/lib/locale/ja/wnn/wnnudmerge が使用される

udmerge_command <コマンドライン>

delete_entry

オフライン学習で、単語削除を行うかどうかを ON または OFF で指定する。 

省略すると、OFF に設定される  

delete_entry [ON/OFF]

decrease_percent

オフライン学習で、頻度を下げる場合の下げ率を % で指定する。0 〜 100 の整数値で指定。省略すると、50 % に設定される  

decrease_percent <下げ率>

offline_dir

オフライン学習の環境とその保存ディレクトリの対応関係を出力する Entries ファイルのディレクトリパス名を指定する。

省略すると /usr/lib/locale/ja/wnn/wnnoffline が使用される

offline_dir <ディレクトリパス名>

update_count

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 を使用

次に、offlinerc ファイルの記述例を示します。


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 「エラーメッセージ一覧」を参照してください。

3.3.2 udmergerc の設定

登録語自動反映機能の動作を規定するテキストファイルです。

登録語自動反映モジュールを起動する前に、udmergerc ファイルの設定をすませておく必要があります。

ファイル :

/etc/lib/locale/ja/wnn/udmergerc

udmergerc は、次のような書式で作成します。

<キーワード>	<設定値 (パス名)> 	<- udmergerc ファイルは
<キーワード>	<設定値 (ファイル名)> 必ずこの順序で記述します。
<キーワード>	<設定値 (数字)> 
	・	・
	・	・

キーワードと設定値は「空白文字」または「タブ文字」で区切ります。

udmergerc ファイルで使用できるキーワードは、uddir、mergedic、usernum の 3 つです。一組の uddir-mergedic-usernum の設定で、 1 ユーザーグループにおける辞書のマージ環境を指定することができます。

udmergercファイルで使用できるキーワードの解説を表 3-5に示します

表 3-5 udmergerc のキーワード一覧

キーワード 

設定内容 

uddir

マージ元辞書となるユーザー辞書を指定する。 ユーザー辞書が存在するディレクトリパス名を入力する。 複数のユーザー辞書を指定する場合は、「,」 で区切る。 すべてのユーザー辞書に対応する場合は、 /usr/lib/locale/ja/wnn/ja/dic/usr を指定する

uddir <ユーザー辞書が存在するディレクトリパス名>

mergedic

マージ先辞書名を指定。ファイル名を指定する  

mergedic <マージ先辞書ファイル名>

usernum

指定した数以上のユーザーが同一の単語を登録している場合、その単語をマージする。 all を指定すると、上記の uddir で指定された全ユーザー辞書で単語登録が行われた場合にマージが実行される

usernum <ユーザー数> (/all)


注 -

登録語自動反映機能で処理できるユーザー辞書数は、1024 個までです。


次に例を示します。


注 -

udmergerc ファイルでは @LIBDIR という記述はすべて /usr/lib/locale/ja/wnn/ に展開されます。


  1. 複数グループのマージ辞書を作成する場合には、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											
  2. 登録されているすべてのユーザーが同じ単語を登録した場合、辞書マージを行います。


    uddir								@LIBDIR/ja/dic/usr
    mergedic					@LIBDIR/ja/dic/udmerge/udmerge.dic
    usernum						all

3.3.3 cron の設定

ここでは、wnnoffline を定期的に実行させるための設定方法を説明します。


注 -

cron の設定は、wnnoffline の設定が完了してから行なってください。


  1. スーパーユーザーになり、次のコマンドを入力します。

    sun# crontab -e
    

  2. エディタが起動したら、wnnoffline のエントリを追加します。

    0 1 * * 0 /usr/lib/locale/ja/wnn/wnnoffline

    例 : 毎週日曜日の 1 時に wnnoffline が実行されるように設定する

  3. crontab コマンドから起動したエディタを終了します。