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 を返す。