Ejemplo n.º 1
0
// String Tagger.parse(String input)
static KMETHOD Tagger_Parse(KonohaContext *kctx, KonohaStack *sfp)
{
	mecab_t * mecab = ((struct _kTagger *)(sfp[0].asObject))->mecab;
	const char *input = kString_text(sfp[1].asString);
	const char* result = mecab_sparse_tostr(mecab, input);
	KReturn(KLIB new_kString(kctx, GcUnsafe, result, strlen(result), 0));
}
Ejemplo n.º 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));
}