初步實現了乙個介面:
1 #include2 #include 3 #include4 #include "
lypublic/lycodeconvert.h"5
#define x_longsen 500
6#define y_longword 100
7struct
node 8;
1314 typedef struct
node node;
15char
z_str[y_longword];
1617
void inserttree(char *str, node *t, char *maxword, int
num_max);
18void findstr(char *str, node *t);
19int findnum(char *str, node *t);
20int sentencetransform(char *fromword,char *tostr);
2122
/*23
函式功能:
24將一句話裡面的部分詞 轉化為 權值最高的詞
25變數說明:
26fromword 原句子
27tostr 轉化後的句子
28*/
2930
int sentencetransform(char *fromword,char *tostr)
3195 hanzitoansi (getword, strlen(getword), toword, sizeof
(toword));
96inserttree (toword, t, maxword, num_max);
97while (getsentence[lesen] == '
' || ( getsentence[lesen] >='
0' && getsentence[lesen] <= '
9') || getsentence[lesen] == '-'
)98 lesen++;99}
100}
101102
103//
轉化句子
104 len =strlen(fromword);
105 at = 0
;106
for (i = 0; i 107134
}135
if(max_num != -1
)136
142 memset (getword, 0, sizeof
(getword));
143 memset(z_str, 0, sizeof
(z_str));
144 hanzitoansi(hanmax, strlen(hanmax), getword, sizeof
(getword));
145findstr(getword, t);
146 lenz_str =strlen(z_str);
147for(f = 0; f < lenz_str ;f++)
148 tostr[lentostr++] =z_str[f];
149 at =to;
150 i =to;
151}
152else
153160
}161
return0;
162}
163164
void inserttree(char *str, node *t, char *maxword, int
num_max)
165186 p = p->next[id];
187}
188if
(flag)
189193
else
194200
}201
}202
203void findstr(char *str, node *t)
204219 strcpy(z_str, p->mword);
220}
221222
223int findnum(char *str, node *t)
224239
return p->order;
240 }
1 #include2 #include 3 #include4 #include "
lypublic/lycodeconvert.h"5
#define x_longsen 500
6#define y_longword 100
7struct
node 8;
1314 typedef struct
node node;
15char
z_str[y_longword];
1617
void inserttree(char *str, node *t, char *maxword, int
num_max);
18void findstr(char *str, node *t);
19int findnum(char *str, node *t);
20int sentencetransform(char *fromword,char *tostr);
2122
/*23
函式功能:
24將一句話裡面的部分詞 轉化為 權值最高的詞
25變數說明:
26fromword 原句子
27tostr 轉化後的句子
28*/
2930
int sentencetransform(char *fromword,char *tostr)
3195 hanzitoansi (getword, strlen(getword), toword, sizeof
(toword));
96inserttree (toword, t, maxword, num_max);
97while (getsentence[lesen] == '
' || ( getsentence[lesen] >='
0' && getsentence[lesen] <= '
9') || getsentence[lesen] == '-'
)98 lesen++;99}
100}
101102
103//
轉化句子
104 len =strlen(fromword);
105 at = 0
;106
for (i = 0; i 107134
}135
if(max_num != -1
)136
142 memset (getword, 0, sizeof
(getword));
143 memset(z_str, 0, sizeof
(z_str));
144 hanzitoansi(hanmax, strlen(hanmax), getword, sizeof
(getword));
145findstr(getword, t);
146 lenz_str =strlen(z_str);
147for(f = 0; f < lenz_str ;f++)
148 tostr[lentostr++] =z_str[f];
149 at =to;
150 i =to;
151}
152else
153160
}161
return0;
162}
163164
void inserttree(char *str, node *t, char *maxword, int
num_max)
165186 p = p->next[id];
187}
188if
(flag)
189193
else
194200
}201
}202
203void findstr(char *str, node *t)
204219 strcpy(z_str, p->mword);
220}
221222
223int findnum(char *str, node *t)
224239
return p->order;
240 }
主函式:
#include#include#include
"analysisword.h
"int
main()
return0;
}
分析與分析器
分析 包含下面的過程 分析器執行上面的工作。分析器 實際上是將三個功能封裝到了乙個包裡 字元過濾器 首先,字串按順序通過每個 字元過濾器 他們的任務是在分詞前整理字串。乙個字元過濾器可以用來去掉html,或者將 轉化成 and 分詞器其次,字串被 分詞器分為單個的詞條。乙個簡單的分詞器遇到空格和標點...
詞法分析器
這是我自己的第一篇部落格,就分享一下最近才做完的編譯原理實驗,詞法分析器。本次實驗中我用mysql資料庫儲存自動機狀態表,這樣做的目的只是為了在後續的課設中可以繼續使用現在的 這一段 並不是太完善,發出來只是為了太完善。裡面還有很多問題,比如對字元和字串的識別,不知道為什麼資料庫無法將 和 轉換到我...
配置分析器
第三個重要的索引設定是analysis部分,用來配置已存在的分析器或針對你的索引建立新的自定義分析器。在 分析與分析器 我們介紹了一些內建的 分析器,用於將全文本串轉換為適合搜尋的倒排索引。standard分析器是用於全文本段的預設分析器,對於大部分西方語系來說是乙個不錯的選擇。它包括了以下幾點 預...