C/C++/Perl/Ruby/Python ライブラリ

$Id: libcabocha.html,v 1.1 2003/01/30 17:26:14 taku-ku Exp $;


C ライブラリ仕様

CaboChaには, C/C++ 共用のライブラリ (cabocha.h, libcabocha.so/licabocha.dll) があります.

C ライブラリは以下の関数を提供しています.

cabocha_t *cabocha_new(int argc, char **argv)
cabocha のインスタンスを生成します.
引数には, C 言語の, main 関数で使用される argc, argv スタイルの引数を与えます.
この引数は, cabocha コマンドと同じ方法で処理されます.
成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います.
cabocha_t *cabocha_new2(char *arg)
cabocha のインスタンスを生成します.
引数には, 一つの文字列として表現したパラメータを与えます.
この引数は, cabocha コマンドと同じ方法で処理されますが,
文字列を解釈するルーチンが貧弱なので留意してください.
成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います.
char *cabocha_sparse_tostr(cabocha_t *p, char *str)
解析を行います. 引数には, cabocha_new で得られた cabocha_t 型のポインタと,
各レイヤの1解析単位を1つの文字列で表現した char 型のポインタ文字列を与えます.
デフォルトの動作ならば, 引数の文字列は生文となります.
成功すれば, 解析後の結果が char 型のポインタとして返ってきます.
戻り値のポインタが指すメモリ領域は, 呼び出し側で管理する必要はありませんが,
cabocha_sparse_tostr を呼ぶ度に上書きされます.
また, cabocha_destroy を呼ぶと解放されます.
char *cabocha_sparse_tostr2 (cabocha_t *m, char *str, unsigned int len)
cabocha_sparse_tostr とほぼ同じですが, len にて, 解析する文の長さを指定できます.
char *cabocha_sparse_tostr3 (cabocha_t *m, char *istr,unsigned int ilen char *ostr,unsigned int olen)
cabocha_sparse_tostr2 に加え, 出力用の バッファ領域 (ostr), 及びその長さ (olen) を指定できます. ostr の領域の管理は, 呼び出し側が行います. 成功すれば, 解析後の結果が char 型のポインタとして返ってきます. これは, ostr と同じになります. もし, 解析結果の長さが olen 以上になった場合は, 解析失敗とみなし, NULL を返します.
char *cabocha_strerror (cabocha_t* m)
エラーの内容を文字列として取得します. cabocha_sparse_tostr 等で, NULL が返ってきた場合に, cabocha_strerror を呼ぶことで, エラーの内容を取得できます. cabocha_new,cabocha_new2 のエラーは, m を NULL と指定してください.
void cabocha_destroy(cabocha_t *p)
cabocha_t 型のポインタを解放します.

C サンプル

example.c

#include <cabocha.h>
#include <stdio.h>

int main (int argc, char **argv) 
{
   cabocha_t *c;
   char p[1024] = "太郎は次郎が持っている本を花子に渡した。";

   c = cabocha_new(argc, argv);

   printf ("INPUT: %s\n", p);
   printf ("RESULT:\n%s", cabocha_sparse_tostr(c, p));

   cabocha_destroy(c);
   
   return 0;
}

C++ ライブラリ仕様

準備中. src/cabocha.h, example/example2.cpp を参考にしてください.

コンパイル方法

Perl/Ruby/Python バインディング

Perl, Ruby, Python といったスクリプト言語から, 直接 CaboChaを呼ぶことができます.
詳しくは, ruby/README, perl/README, python/README をご覧ください.


$Id: libcabocha.html,v 1.1 2003/01/30 17:26:14 taku-ku Exp $;

taku-ku@is.aist-nara.ac.jp