Exemplo n.º 1
0
        public static Result[] ToResult(KiwiResHandle kiwiresult)
        {
            int resCount = kiwi_res_size(kiwiresult);

            if (resCount < 0)
            {
                throw new KiwiException(Marshal.PtrToStringAnsi(kiwi_error()));
            }
            Result[] ret = new Result[resCount];
            for (int i = 0; i < resCount; ++i)
            {
                int num = kiwi_res_word_num(kiwiresult, i);
                ret[i].morphs = new Token[num];
                for (int j = 0; j < num; ++j)
                {
                    ret[i].morphs[j].form         = Marshal.PtrToStringUni(kiwi_res_form_w(kiwiresult, i, j));
                    ret[i].morphs[j].tag          = Marshal.PtrToStringUni(kiwi_res_tag_w(kiwiresult, i, j));
                    ret[i].morphs[j].position     = kiwi_res_position(kiwiresult, i, j);
                    ret[i].morphs[j].length       = kiwi_res_length(kiwiresult, i, j);
                    ret[i].morphs[j].wordPosition = kiwi_res_word_position(kiwiresult, i, j);
                    ret[i].morphs[j].sentPosition = kiwi_res_sent_position(kiwiresult, i, j);
                }
                ret[i].prob = kiwi_res_prob(kiwiresult, i);
            }
            return(ret);
        }
Exemplo n.º 2
0
        public Result[] Analyze(string text, int topN = 1, Match matchOptions = Match.All)
        {
            KiwiResHandle res = KiwiCAPI.kiwi_analyze_w(inst, new Utf16String(text).IntPtr, topN, (int)matchOptions);

            if (inst == IntPtr.Zero)
            {
                throw new KiwiException(Marshal.PtrToStringAnsi(KiwiCAPI.kiwi_error()));
            }
            Result[] ret = KiwiCAPI.ToResult(res);
            KiwiCAPI.kiwi_res_close(res);
            return(ret);
        }
Exemplo n.º 3
0
 public static extern int kiwi_res_close(KiwiResHandle result);
Exemplo n.º 4
0
 public static extern int kiwi_res_sent_position(KiwiResHandle result, int index, int num);
Exemplo n.º 5
0
 public static extern int kiwi_res_length(KiwiResHandle result, int index, int num);
Exemplo n.º 6
0
 public static extern IntPtr kiwi_res_tag(KiwiResHandle result, int index, int num);
Exemplo n.º 7
0
 public static extern int kiwi_res_word_num(KiwiResHandle result, int index);
Exemplo n.º 8
0
 public static extern float kiwi_res_prob(KiwiResHandle result, int index);