=========== CRF++を使う =========== このページでは,`CRF++ `_ をRaSCで利用できるようにするための手順を説明します. CRF++ は,ファイルを通じた入出力を行うため, プログラムの変更が必要です(変更の内容については, :ref:`faq_modify_program` を参照してください). 以下では,プログラムにパッチをあてて変更し,RaSCサービスとして利用するための手順を説明します. CRF++をRaSC対応に変更する ========================= まず、CRF++のソースを入手し,解凍します。 .. code-block:: bash $ wget http://crfpp.googlecode.com/files/CRF%2B%2B-0.57.tar.gz $ tar zxvf CRF++-0.57.tar.gz 次にパッチファイルを入手します。 .. code-block:: bash $ wget https://alaginrc.nict.go.jp/rasc/resources/patch_rasc_crf.diff 次にパッチを当てます .. code-block:: bash $ patch -p0 < patch_rasc_crf.diff 次にビルドを行います .. code-block:: bash $ cd CRF++-0.57 $ ./configure $ make これにより,RaSCから使えるように改修した実行バイナリ ``crf_test`` が生成されます. CRF++に対応したサービス設定ファイルを書く ========================================= サービス定義XMLに,実行バイナリのパスとモデルファイルを含む,起動コマンドラインを記述してください (ダウンロードできます: :download:`サービス定義XML `). ``___BASE_DIR___`` と ``___PATH_TO_MODEL_FILE___`` を,それぞれ実際に ``crf_test`` がおかれたディレクトリと,モデルファイルのパスに修正してください. .. code-block:: xml :emphasize-lines: 8-10 - ``cmdLine`` に先ほどパッチを当てて作成したCRFのパスとモデルファイルを指定します。 最後の ``-`` は入力データを標準入力から受け付けるためのオプションになります。 - ``delimiterIn`` には、入力の区切り文字が ``[END_OF_INPUT]`` になるようにパッチを当てたので、 ``\n[END_OF_INPUT]\n`` と記述します。 - ``delimiterOut`` も同様に、出力の区切り文字が ``EOS\n`` になるようにパッチを当てたので、 ``EOS\n`` と記述します。 - ここに記述される ``\n`` はプログラム内でシステムに応じた改行コードに置換されます。 サービス起動の手順は, :doc:`rasc_core` または :doc:`rasc_basic` を参照してください.