OSDN Git Service

AI003:AI_Think_CandidateWordList_Filter()は実装途中。
[chnosproject/CHNOSProject.git] / CHNOSProject / AI003 / AI003 / main.c
index 10775b5..1f3f6b4 100755 (executable)
@@ -83,11 +83,11 @@ int main(int argc, const char * argv[])
 \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
@@ -131,15 +131,41 @@ CHNLIB_UIPArray *AI_Think_SlideLookUpWordByHistory(CHNLIB_String *input)
         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