JS_KANREN( )

名称
js_kanren()	連文節変換を行う。

形式
#include "jslib.h"
int
js_kanren(env,yomi,hinsi,fzk,vec,vec1,vec2,rb)
struct wnn_env *env;		/* 環境 */
w_char *yomi;			/* 読み列 */
int hinsi;			/* 品詞番号 */
w_char *fzk;			/* 付属語文字列 */
int vec;			/* 接続ベクター */
int vec1;			/* 接続ベクター */
int vec2;			/* 接続ベクター */
struct wnn_ret_buf *rb;		/* 変換結果を返すエリアへのポインタ */

機能

    読み yomi を連文節変換し、第一候補の列を返す。 hinsi, fzk は、yomi の文節の前の文節の品詞番号、付属語文字列を指定する。 品詞番号、付属語文字列を指定した場合は、yomi 先頭の文節を前の文節に接続 できる小文節列(前の文節を含めて大文節となる)として変換する。 前の文節に接続できる候補が無い場合は、大文節の先頭になれるものを返す。 それもない場合は、大文節の先頭になれないもの(その前に、指定した品詞以外 の品詞がこなくてはいけないもの。たとえば、hinsi に名詞を指定したときの 助数詞:助数詞の前には、数詞がきて大文節となる)を返す。 このうちどの候補が選ばれたかは、rb->buf->sbn->status に返される。
    	    WNN_CONNECT		指定された(品詞、付属語)に接続できた
    	    WNN_SENTOU		大文節の先頭
    	    WNN_NOT_CONNECT	大文節の先頭になれないし、前に接続できない
    	    WNN_GIJI		疑似文節として変換した
    前の文節に付属語が無い場合は、NULL を指定する。 前の小文節とは大別文節として変換する時は、hinsi に、
    	    WNN_BUN_SENTOU	(大文節の先頭になれるもの)
    	    WNN_ALL_HINSI	(全ての小文節)
    を指定する。 vec、vec1 は、変換のための終端ベクトルを指定する。 後ろの小文節の前端ベクトルを指定する。その場合は、yomi の最後の文節に 後ろの文節を含めたものが大文節となる。 後ろの小文節とは別大文節として変換する時は、vec、 vec1 に、
    	    WNN_VECT_KANREN (連文節変換の終端ベクトル)
    	    WNN_VECT_KANTAN (単文節変換の終端ベクトル)
    	    WNN_VECT_KANZEN (全候補取出しの終端ベクトル)
    	    WNN_VECT_BUNSETSU (文節の終端ベクトル)
    を指定する。 vec に指定した終端ベクトルは、vec1 に指定した終端ベクトルよりも、評価 基準が高くなる。 通常、vec には後ろの小文節の前端ベクトルを、vec1 には、WNN_VECT_KANREN を指定する。 vec1 に指定すべき終端ベクトルがない場合は、WNN_VECT_NO を指定する。 この場合 vec のみが変換に使用される。 vec2 は、連文節変換時の途中の文節で使用される。 通常、vec2 には WNN_VECT_BUNSETSU を指定する。 vec に接続できる文節か、vec1 に接続できる文節かは、 rb->buf->sbn->status_bkwd に返される。 vec に接続できた場合は、WNN_CONNECT_BK が、vec1 に接続できた場合は、 WNN_NOT_CONNECT_BK が返される。 この値は、yomi に指定した、最後語の文節のみが有効である。 rb には、変換結果が返るエリアへのポインタ(struct wnn_ret_buf *)を指定 する。rb は、ユーザが用意し *rb = {0, NULL} に初期化する。 rb->buf に変換結果の大文節の情報(struct wnn_dai_bunsetsu *)の先頭への ポインタが返される。そこから、大文節数だけ大文節の情報が、入っている。 付属語ファイルが読み込まれていない場合は、エラーとなる。

リターンバリュー
正常終了時には、大文節数を返す。
異常終了時には、-1 を返す。