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 になった単語を、辞書から削除します。

辞書の種類により、次のように対応が異なります。

同一単語の、前々回→前回→今回 (現在から 2 回前まで) の頻度がすべて 0 の場合に、単語を削除します。

接続頻度が 0 の場合に、単語に対する FI 関係データを削除します。

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
/home/userA
/opt/Wnn6/userA                          

userA
userA_1
userA_2

3.3 オフライン学習の設定

システム管理者は、オフライン学習の起動にあたってあらかじめ、offlinerc ファイル、 udmergerc ファイルと cron の設定を行う必要があります。

3.3.1 offlinerc の設定

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

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

ファイル :

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

書式は次のとおりです。

キーワード  設定値 (パス名 / 数字など) 
キーワード  設定値 (パス名 / 数字など) 
キーワード  設定値 (パス名 / 数字など) 
	   ・	      ・

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

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

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


注 -

ただし、キーワード 「target」 を除きます。


表 3-3offlinerc のキーワード一覧を示します。

表 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

一つの環境の使用回数がここで指定される数値を超えた時に、ファイル保存および処理が行われる。 

0 〜 4294967295 の整数値で指定する。 

省略時には 1000 が設定される  

update_count <回数>


注 -

offlinerc ファイルの記述で、target、jserver_list、wnnds_list の各キーワードを省略することはできません。jserver_list、wnnds_list のキーワードは、引数であるホスト名を省略することができますが、target のキーワードについては、必ず引数にオフライン学習を行う環境のディレクトリを指定しなければなりません。


また、offlinerc のキーワード jserver_list と wnnds_list のホスト指定の記述形式を表 3-4 に示します。

表 3-4 jserver_list と wnnds_list のホスト指定

記述形式 

説明 

host_name

ホスト名 (または、IP アドレス) のみを指定。 

標準ポート番号が適用される 

host_name:offset_number

標準ポート番号に offset_number を加算したポート番号を使用

host_name/port_number

ポート番号として port_number を使用

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

target
jserver_list
wnnds_list
udmerge_command
 
;delete_entry
delete_entry

decrease_percent
offline_dir
update_count	    

@LIBDIR/ja/dic/usr
hostA,hostA:3,133.210.2.10:1,hostB/22274
hostC:3,hostB,133.210.2.46,hostB/22374
/usr/lib/locale/ja/wnn/wnnudmerge

on
off

30
@LIBDIR/offline
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
    mergedic
    usernum	 
    uddir
    
    mergedic
    usernum

    @LIBDIR/ja/dic/usr/A,@LIBDIR/ja/dic/usr/B
    @LIBDIR/ja/udmerge/udmerge1.dic
    2
    @LIBDIR/ja/dic/usr/C,@LIBDIR/ja/dic/usr/D
    @LIBDIR/ja/dic/usr/E,@LIBDIR/ja/dic/usr/F
    @LIBDIR/ja/dic/udmerge/udmerge2.dic
    4

  2. 登録されているすべてのユーザーで、単語登録がされた場合に、辞書マージを行います。

    uddir
    mergedic
    usernum

    @LIBDIR/ja/dic/usr
    @LIBDIR/ja/dic/udmerge/udmerge.dic
    all

3.3.3 cron の設定

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


注 -

wnnoffline の設定がすべて終わってから cron の設定を行なってください。


  1. 以下の設定はスーパーユーザーで行なってください。

    sun# crontab -e
    

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

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

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

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