============== SVM Perfを使う ============== このページでは,`SVM Perf `_ の分類器(svm_perf_classify)をRaSCで利用できるようにするための手順を説明します. SVM Perfは,ファイルを通じた入出力を行うため, プログラムの変更が必要です(変更の内容については, :ref:`faq_modify_program` でCRF++を例に説明しています). 以下では,プログラムにパッチをあてて変更し,RaSCサービスとして利用するための手順を説明します. まず,SVM Perfのソースを入手し,解凍します. .. code-block:: bash $ wget http://download.joachims.org/svm_perf/current/svm_perf.tar.gz $ mkdir svm_perf $ tar zxvf svm_perf.tar.gz -C svm_perf パッチ適用のために必要なファイルを新規作成します. .. code-block:: bash $ touch svm_perf/svm_light/svm_classify_stdin.c $ touch svm_perf/svm_struct/svm_struct_classify_stdin.c 次にパッチファイルを入手します. .. code-block:: bash $ wget https://alaginrc.nict.go.jp/rasc/resources/patch_rasc_svm_perf.diff 次にパッチを当てます .. code-block:: bash $ patch -p0 < patch_rasc_svm_perf.diff 次にビルドを行います .. code-block:: bash $ cd svm_perf $ ./configure $ make これにより,RaSCから使えるように改修した実行バイナリ svm_perf_classify_stdin が生成されます. サービス定義XMLに,実行バイナリのパスとモデルファイルを含む,起動コマンドラインを記述してください (ダウンロードできます: :download:`サービス定義XML `). ``___SVM_PERF_DIR___`` と ``___PATH_TO_MODEL_FILE___`` を,それぞれ実際に ``svm_perf_classify_stdin`` がおかれたディレクトリと,モデルファイルのパスに修正してください. .. code-block:: xml :emphasize-lines: 8-10 - ``cmdLine`` に先ほどパッチを当てて作成したSVMのパスおよび,読み込ませるモデルファイルを指定します. - ``delimiterIn`` には,入力の区切り文字が ``\n[END_OF_INPUT]\n`` になるようにパッチを当てたので, ``\n[END_OF_INPUT]\n`` と記述します. - ``delimiterOut`` も同様に,出力の区切り文字が ``EOS\n`` になるようにパッチを当てたので, ``EOS\n`` と記述します. - ここに記述される ``\n`` はプログラム内でシステムに応じた改行コードに置換されます. サービス起動の手順は, :doc:`rasc_core` または :doc:`rasc_basic` を参照してください.