public String Fmm(String source) {
String[] targets = new String[source.length()];
String target = "";
int MaxLen = source.length();
int temLen = MaxLen;
int primarylen = 0;
while (true) {
if (len.containsKey(temLen)) {
tem = source.substring(primarylen, temLen);//截取字串
if (mapDic.containsKey(tem) || temLen - primarylen == 1) {//如果匹配或者结束
primarylen = temLen;//如果匹配的到,就从下一个位置开始截取
temLen = MaxLen;//如果匹配得到,就把末端指针重新移到最后的地方
if (primarylen == MaxLen)//如果是结尾,就不用加上个"/"
target = target + tem;
else
target = target + tem + "/";//如果不是结尾,加上个"/"
} else
temLen--;//如果不匹配,就把末端指针前移,知道碰到匹配的为之
} else
temLen--;
if (primarylen == MaxLen)
break;
}
return target;
}
中文分词算法之fmm算法。
中文分词算法的初步研究
最新推荐文章于 2023-10-08 22:58:24 发布