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