Exemple #1
0
// String Tagger.NBestParse(int n, String input)
static KMETHOD Tagger_NBestParse(KonohaContext *kctx, KonohaStack *sfp)
{
	struct _kTagger *mecab = (struct _kTagger *)sfp[0].asObject;
	kint_t ival = sfp[1].intValue;
	const char *input = kString_text(sfp[2].asString);
	const char* result = mecab_nbest_sparse_tostr(mecab->mecab, ival, input);
	KReturn(KLIB new_kString(kctx, GcUnsafe, result, strlen(result), 0));
}
Exemple #2
0
static emacs_value
Fmecab_sparse_to_string(emacs_env *env, ptrdiff_t nargs, emacs_value args[], void *data)
{
	mecab_t *mecab = env->get_user_ptr(env, args[0]);
	ptrdiff_t size;
	char *input = retrieve_string(env, args[1], &size);
	int nbest = (int)env->extract_integer(env, args[2]);

	const char *ret;
	if (nbest < 0) {
		ret = mecab_sparse_tostr(mecab, input);
	} else {
		ret = mecab_nbest_sparse_tostr(mecab, nbest, input);
	}

	free(input);

	return env->make_string(env, ret, strlen(ret));
}