java中文分词算法_Java实现逆向最大匹配中文分词算法
寫道
//Java實(shí)現(xiàn)逆向最大匹配中文分詞算法
public class SplitChineseCharacter {
public static void main(String[] args) {
String input = "太好了,今天是星期六啊"; // 要匹配的字符串
new Split(input).start();
}
}
class Split {
private String[] dictionary = {"今天","是","星期","星期六"}; //詞典
private String input = null;
public Split(String input) {
this.input = input;
}
public void start() {
String temp = null;
for(int i=0;i
temp = this.input.substring(i); // 每次從字符串的首部截取一個(gè)字,并存到temp中
// System.out.println("*****" + temp + "*********" + this.input);
// 如果該詞在字典中, 則刪除該詞并在原始字符串中截取該詞
if(this.isInDictionary(temp)) {
System.out.println(temp);
this.input = this.input.replace(temp, "");
i = -1; // i=-1是因?yàn)橐匦虏檎?#xff0c; 而要先執(zhí)行循環(huán)中的i++
}
}
// 當(dāng)前循環(huán)完畢,詞的末尾截去一個(gè)字,繼續(xù)循環(huán), 直到詞變?yōu)榭?/p>
if(null != this.input && !"".equals(this.input)) {
this.input = this.input.substring(0,this.input.length()-1);
this.start();
}
}
//判斷當(dāng)前詞是否在字典中
public boolean isInDictionary(String temp) {
for(int i=0;i
if(temp.equals(this.dictionary[i])) {
return true;
}
}
return false;
}
}
/**
過程分析:
第一詞循環(huán):
太好了,今天是星期六啊
好了,今天是星期六啊
了,今天是星期六啊
,今天是星期六啊
今天是星期六啊
天是星期六啊
是星期六啊
星期六啊
期六啊
六啊
啊
第一次循環(huán)沒有找到,則從“太好了,今天是星期六啊”中把最后一個(gè)截取,開始第二次循環(huán)
第二次循環(huán):
太好了,今天是星期六
好了,今天是星期六
了,今天是星期六
,今天是星期六
今天是星期六
天是星期六
是星期六
星期六 --------->輸出:星期六,并在原字符串中截去“星期六”-->變?yōu)椤疤昧?#xff0c;今天是”
太好了,今天是
好了,今天是
了,今天是
,今天是
今天是
天是
是 ----------> 輸出:是, 并在原字符串中截去“是”-->變?yōu)椤疤昧?#xff0c;今天”
直到原字符串變?yōu)榭铡?/p>
*/
總結(jié)
以上是生活随笔為你收集整理的java中文分词算法_Java实现逆向最大匹配中文分词算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自主可控的安全关键领域国产工业软件Sky
- 下一篇: mysql查询注意_mysql中sql查