Example #1
0
        public static List <(string word, double weight)> JiebaWeights2StringList(ref JiebaWeights weights)
        {
            var ret = new List <(string word, double weight)>();

            for (int i = 0; i < weights.Count; ++i)
            {
                var wordPtrEntryInArray = IntPtr.Add(weights.Words, IntPtr.Size * i);
                var weightPtr           = IntPtr.Add(weights.Weights, Marshal.SizeOf <double>() * i);
                var wordPtr             = Marshal.PtrToStructure <IntPtr>(wordPtrEntryInArray);
                var word   = Marshal.PtrToStringUTF8(wordPtr);
                var weight = Marshal.PtrToStructure <double>(weightPtr);
                ret.Add((word, weight));
            }

            return(ret);
        }
Example #2
0
 public static extern uint jieba_extract_full(IntPtr ctx, [MarshalAs(UnmanagedType.LPUTF8Str)] string sentence, int len, uint top_n, ref JiebaWeights weights);
Example #3
0
 public static extern void jieba_weights_free(ref JiebaWeights t);