句子分析器

2022-05-06 07:45:11 字數 4649 閱讀 4284

初步實現了乙個介面:

1 #include2 #include 3 #include 

4 #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 #include 

4 #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分析器是用於全文本段的預設分析器,對於大部分西方語系來說是乙個不錯的選擇。它包括了以下幾點 預...