樓上的大哥,人家問的是java語言的。你給回答盤古,您不知道盤古是.net特有的么?

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、昌吉網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
樓主可以使用ik analyzer,是正向匹配算法,目前最新版本是2012版,可以支持最大粒度分詞和最小粒度分詞。并且算法不難,易二次開發(fā)。
import?java.io.Reader;
import?java.io.StringReader;
import?org.apache.lucene.analysis.*;
import?org.apache.lucene.analysis.cjk.CJKAnalyzer;
import?org.apache.lucene.analysis.cn.ChineseAnalyzer;
import?org.apache.lucene.analysis.standard.StandardAnalyzer;
import?org.mira.lucene.analysis.MIK_CAnalyzer;
public?class?JeAnalyzer?{
public?static?void?testStandard(String?testString)?{
try?{
Analyzer?analyzer?=?new?StandardAnalyzer();
Reader?r?=?new?StringReader(testString);
StopFilter?sf?=?(StopFilter)?analyzer.tokenStream("",?r);
System.err.println("=====standard?analyzer====");
Token?t;
while?((t?=?sf.next())?!=?null)?{
System.out.println(t.termText());
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
public?static?void?testCJK(String?testString)?{
try?{
Analyzer?analyzer?=?new?CJKAnalyzer();
Reader?r?=?new?StringReader(testString);
StopFilter?sf?=?(StopFilter)?analyzer.tokenStream("",?r);
System.err.println("=====cjk?analyzer====");
Token?t;
while?((t?=?sf.next())?!=?null)?{
System.out.println(t.termText());
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
public?static?void?testChiniese(String?testString)?{
try?{
Analyzer?analyzer?=?new?ChineseAnalyzer();
Reader?r?=?new?StringReader(testString);
TokenFilter?tf?=?(TokenFilter)?analyzer.tokenStream("",?r);
System.err.println("=====chinese?analyzer====");
Token?t;
while?((t?=?tf.next())?!=?null)?{
System.out.println(t.termText());
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
public?static?String?transJe(String?testString,?String?c1,?String?c2)?{
String?result?=?"";
try?{
Analyzer?analyzer?=?new?MIK_CAnalyzer();
Reader?r?=?new?StringReader(testString);
TokenStream?ts?=?(TokenStream)?analyzer.tokenStream("",?r);
Token?t;
while?((t?=?ts.next())?!=?null)?{
result?+=?t.termText()?+?",";
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?result;
}
public?static?void?main(String[]?args)?{
try?{
String?testString?=?"中文分詞的方法其實不局限于中文應(yīng)用,也被應(yīng)用到英文處理,如手寫識別,單詞之間的空格就很清楚,中文分詞方法可以幫助判別英文單詞的邊界";
System.out.println("測試的語句????"+testString);
String?sResult[]?=?transJe(testString,?"gb2312",?"utf-8").split(",");
for?(int?i?=?0;?i??sResult.length;?i++)?{
System.out.println(sResult[i]);
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
jar包??
lucene-analyzers-2.4.1.jar
lucene-core-2.4.1.jar
IKAnalyzer2.0.2OBF.jar
現(xiàn)可以提供兩種思路:
1.String或是StringBuffer(建議用)
中的indexOf("中華")方法,查找給定的的字符串中是否有給定詞表中的詞。
2.借鑒編譯原理中的狀態(tài)裝換的思想。
先編寫一個狀態(tài)機,用于測試給定字符串中的詞是否滿足詞表中的內(nèi)容。
寫在最后:1)建議使用第一種方法,因為在java
內(nèi)部實現(xiàn)的查找操作其實
和你想得思路是相同的,不過他的效率會高些。
2)如果個人的編程能力比較強或是不考慮效率只是想實現(xiàn)專有的分詞算法。可以使用第二種方法。
3)以上的兩種方法都可以使用多線程來提高程序的效率。
標題名稱:java中文分詞源代碼 java中文分詞工具
本文URL:http://www.chinadenli.net/article2/hipcic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、網(wǎng)站維護、響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)