已遷移到我新博客,閱讀體驗更佳seg:NLP之正向最大匹配分詞
完整代碼實現放在個人github上:click megit
//param@seg:保存分詞段結果的vector //param@st:帶分詞的中文語句 void segment(vector<string> &seg, string st) { int pos = 0; int sz = st.length(); string t; int cnt = 0, spos; while (pos < sz) { cnt = pos; spos = pos; t = ""; while (st[cnt]) { t += st.substr(cnt, 2); if (wordmap.find(t) != wordmap.end()) pos = cnt + 2; cnt += 2; } if (pos == spos) { seg.push_back(st.substr(spos, 2)); pos += 2; }else { seg.push_back(st.substr(spos, pos - spos)); } } return; }
//gbk編碼,每行第一個詞是漢詞,後面是它對應的英譯單詞,以','分隔 阿彌陀佛,Amitabha 阿米巴,amoeba,amoebae 阿姆斯特丹,Amsterdam 阿斯匹林,aspirin