IBM Content AnalyzerのPEAR モジュールをIBM OmniFind Enterprise Editionで使う方法

このセクションでは、IBM Content AnalyzerのPEAR モジュールをカスタム・テキスト分析としてOmniFind Enterprise Editionで利用する方法について解説します。文書の中で使われる$ES_INSTALL_ROOT と$ES_NODE_ROOTの定義については、http://publib.boulder.ibm.com/infocenter/discover/v8r4/index.jsp?topic=/com.ibm.discovery.es.in.doc/installing/iiysidirs.htm を参照してください。
PEARのセットアップ
http://publib.boulder.ibm.com/infocenter/discover/v8r4/index.jsp?topic=/com.ibm.discovery.es.ad.doc/administering/iiysauima.htm を参照し、IBM Content AnalyzerのPEAR モジュールをOmniFind Enterprise Editionのインデックスサーバにアップロードします。このPEARモジュールは8MBを超えるので、OmniFind Enterprise Editionのインデックスサーバにコピーしてインストールする必要があります。IBM Content Analyzer のPEARモジュールは$TAKMI_HOME/pearディレクトリにあります。PEARモジュールは言語ごとにパッケージされています。
PEARモジュールの内容は $ES_NODE_ROOT/data/pearsupport/PearIDN にインストールされます。ここでN はインデックスサーバ上でPEARを識別するためにつけられる番号です。以下、このディレクトリを $PEAR_ROOT として参照します。
このインデックスサーバにIBM Content Analyzer をインストールしていない場合、日本語用PEARモジュールを使うためにはシステムのライブラリパスに $PEAR_ROOT/bin ディレクトリを含める必要があります。詳しくはこちらのセクションを参照してください。 また、OmniFind Enterprise EditionのメタデータをIBM Content Analyzerにマッピングする方法を指定することもできます。 このマッピングの指定方法についてはこちらのマニュアルを参照してください。
言語処理リソースの配置
デフォルトでは、PEARモジュールのIBM Content Analyzer データベース構造は $PEAR_ROOT/databaseになります。カテゴリツリーや辞書を編集するときは、このデータベースを通常通り編集し、 takmi_nlp_resource_deploy コマンドを実行してください。
英語用のPEARモジュールについては、IBM Content Analyzerの辞書をOmniFind Enterprise Editionのパーサーに読み込ませるため、以下の手順が必要になります。
  1. OmniFind Enterprise Editionを停止します。
  2. 辞書ファイル $PEAR_ROOT/database/dic/LangWare50/en-XX-TAKMIUserNE.dic を $ES_INSTALL_ROOT/configurations/parserservice/jediidata/frost/resources ディレクトリにコピーします。
  3. $ES_NODE_ROOT/master_config/collection_id.parserdriver/specifiers/jfrost.xml をバックアップします。ここで collection_id は目的のコレクションのコレクションIDです。
  4. 下記のように $ES_NODE_ROOT/master_config/collection_id.parserdriver/specifiers/jfrost.xml を編集します。
    1. IBM Content Analyzer の辞書を使うため、英語用のLexicalDicts エントリに下記のように en-XX-TAKMIUserNE.dic を加えます:
      
            <!-- English -->
            <settingsForGroup name="en">
              <nameValuePair>
                <name>LexicalDicts</name>
                <value>
                  <array>
                    <string>en-XX-TAKMIUserNE.dic</string>
                    <string>en-XX-Lex.dic</string>
                  </array>
                </value>
              </nameValuePair>
              <nameValuePair>
                 <name>StopwordDicts</name>
                 <value>
                   <array>
                     <string>en-Stw.dic</string>
                   </array>
                 </value>
              </nameValuePair>
              <nameValuePair>
                  <name>SpellCorrectionDicts</name>
                  <value>
                    <array>
                      <string>en-XX-Rules.dic</string>
                    </array>
                  </value>
              </nameValuePair>
            </settingsForGroup>
      
    2. デフォルトでは、OmniFind Enterprise EditionのパーサーはURLやメールアドレスを分割します。たとえば「somebody@jp.ibm.com」は次のような単語の列として扱われます:「somebody」、「@」、「jp」、「.」、「ibm」、「.」、「com」。URLやメールアドレスを一語として扱いたい場合は、以下のように DoURISegmentation オプションをfalseにしてください:
      
      <nameValuePair>
        <name>DoURISegmentation</name>
        <value>
          <boolean>false</boolean>
        </value>
      </nameValuePair>
      
      なお、この変更はOmniFind Enterprise Editionの動作にも影響することにご注意ください。たとえば「somebody」というクエリが「somebody@jp.ibm.com」にマッチしなくなります。
言語処理
PEARモジュールをOmniFind Enterprise Editionのパーサーに関連付けると、このパーサーがPEARモジュールに入力するドキュメントから作られるMIMLファイルが $PEAR_ROOT/database/db/miml ディレクトリに出力されます。
構成パラメータ
データベースディレクトリ
デフォルトでは、PEARモジュールは $PEAR_ROOT/database をデータベースディレクトリとして利用します。 データベースディレクトリを変更するには、 $PEAR_ROOT/desc ディレクトリの下にあるすべてのデスクリプタについて、 $PEAR_ROOT/database を新しいデータベースディレクトリのパスで置換します。 このデータベースディレクトリは、OmniFind Enterprise Edition および IBM Content Analyzer の管理者が読み書きできなければなりません。
出力MIMLファイル
出力MIMLファイルのための構成パラメータは MIMLWriteAnnotator.xml で定義され、OAE_PACK_en.xml と OAE_PACK_ja.xml で値が指定されます。 これらのデスクリプタは $PEAR_ROOT/desc/text_analysis_engine ディレクトリにあります。下記の構成パラメータが定義されています。
Language
出力に使う言語: “en” または “ja”。
DocumentsPerMIML
1つのMIMLファイルに出力される文書数の最大値。
OutputDirectory
MIMLファイルを出力するディレクトリ。
OutputBasename
MIMLファイルのファイル名の一部。デフォルトは「docset」で、MIMLファイル名は「docset_YYYYMMDD_HHMMSS_N.miml”」のようになります。
問題判別
Out of memoryエラー
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0702baessler/index.html#pear_heap_size を参照して、PEARモジュールの使うヒープサイズを変更してください。
JSAライブラリモジュールがロードできない
日本語用PEARモジュールは日本語のテキスト解析エンジンであるJSAを呼び出します。 PEARモジュールからロードできるよう、JSAのモジュールはシステムのライブラリパスに入っていなくてはなりません。 IBM Content Analyzer のインストーラが適切な設定を行いますが、下記の環境変数が OmniFind Enterprise Edition のパーサーにも有効か確認してください。
オペレーティングシステム 環境変数 JSAモジュール
Windows PATH libjsa.dll, JniJSA.dll
AIX LIBPATH libjsa.so, libJniJSA.so
Linux LD_LIBRARY_PATH libjsa.so, libJniJSA.so
IBM Content Analyzer インストーラは、JSAがインストールされている $TAKMI_HOME/uima/component/jsa ディレクトリを 環境変数に追加します。また、PEARモジュールを IBM Content Analyzer がインストールされていない環境で動かすために、JSAモジュールは $PEAR_ROOT/bin ディレクトリにも含まれています。 このPEARに含まれたJSAモジュールを使うためには、環境変数を適切に変更する必要があります。