\r
CHNLIB_UIPArray *AI_Think_SlideLookUpWordByHistory(CHNLIB_String *input)\r
{\r
+ //[UTF-8]\r
//入力文字列と履歴文字列を照らし合わせ、単語の候補を抜き出す。\r
//候補単語は、新たに確保されたUIPArrayに格納され、そのArrayへのポインタを返す。\r
//data32=入力文字列中に含まれる候補単語の数。\r
//pointer=候補単語を示すCHNLIB_String.\r
- //[UTF-8]\r
CHNLIB_UIPArray *candidatewordlist;\r
int i, i_max;\r
int j, j_max;\r
CHNLIB_UTF8_GetNextUnicodeOfCharacter(cstrp_input, &cstrp_input);\r
}\r
\r
- //各候補単語が入力文字列にいくつ含まれているかをdata32に保存する。\r
- i_max = CHNLIB_UIPArray_GetNumberOfDatas(candidatewordlist);\r
- for(i = 0; i < i_max; i++){\r
- CHNLIB_UIPArray_SetData32ByIndex(candidatewordlist, i, CHNLIB_String_GetCountOfContain(input, CHNLIB_UIPArray_GetPointerByIndex(candidatewordlist, i)));\r
+ //各候補単語が履歴文字列にいくつ含まれているかをdata32に保存する。\r
+ k_max = CHNLIB_UIPArray_GetNumberOfDatas(candidatewordlist);\r
+ for(k = 0; k < k_max; k++){\r
+ j = 0;\r
+ cstr_input = CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(candidatewordlist, k));\r
+ for(i = 0; i < i_max; i++){\r
+ cstr_history = CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(WorkingSet.InputHistory, i));\r
+ j += CHNLIB_UTF8_GetCountOfContain(cstr_history, cstr_input);\r
+ \r
+ }\r
+ CHNLIB_UIPArray_SetData32ByIndex(candidatewordlist, k, j);\r
}\r
\r
return candidatewordlist;\r
}\r
\r
+int AI_Think_CandidateWordList_Filter00(CHNLIB_UIPArray *candidatewordlist)\r
+{\r
+ //[Not implemented]\r
+ //[UTF-8]\r
+ //AI_Think_SlideLookUpWordByHistoryで返されたArray内の候補単語に対して、フィルターをかける。\r
+ int i, i_max;\r
+ CHNLIB_String *nowstr, *basestr;\r
+ int nowstrlen, basestrlen;\r
+ \r
+ i_max = CHNLIB_UIPArray_GetNumberOfDatas(candidatewordlist);\r
+ basestr = CHNLIB_UIPArray_GetPointerByIndex(WorkingSet.InputHistory, 0);\r
+ //basestrlen =\r
+ for(i = 1; i < i_max; i++){\r
+ nowstr = CHNLIB_UIPArray_GetPointerByIndex(WorkingSet.InputHistory, i);\r
+ \r
+ }\r
+ return 0;\r
+}\r
+\r
void AI_Memory_AddRootWordData(CHNLIB_String *tag)\r
{\r
//WorkingSet.RootWordListに文字列を追加する。\r