文件IKAnalyzer.cfg.xml必須放在classpath的根目錄下,這個配置文件的位置可以在源代碼中修改,但沒有必要修改。
& lt?xml版本="1.0 "編碼="UTF-8 "?& gt
& lt!DOCTYPE屬性系統“/dtd/properties . dtd”& gt;
& lt屬性& gt
& lt評論& gtIK分析器擴展配置
& ltentry key = " ext _ dict " & gt/ikdic/ext _ keyword . DIC;& lt/entry & gt;classpath根目錄下的ikdic包下的ext_keyword.dic是壹個擴展字典。
& ltentry key = " ext _ stopwords " & gt/ikdic/ext _ stop word . DIC & lt;/entry & gt;classpath根目錄下的ikdic包下的ext_stopword.dic是停止字典。
& lt/properties & gt;
至於通話,很簡單:
包org . BDP . util;
導入Java . io . bytearray inputstream;
導入Java . io . io exception;
導入Java . io . inputstream;
導入Java . io . inputstreamreader;
導入Java . io . reader;
導入Java . util . ArrayList;
導入Java . util . list;
導入org . wl tea . analyzer . core . ik segmenter;
導入org . wl tea . analyzer . core . lexeme;
公共類CZIKAnaUtil {
公共靜態void main(String[] args) {
String str = "文佳(1501-1583)";
ik analysis(str);
}
公共靜態列表& lt字符串& gtIKAnalysis(字符串str) {
列表& lt字符串& gtkeywordList = new ArrayList & lt字符串& gt();
嘗試{
byte[]Bt = str . getbytes();
InputStream IP = new bytearray InputStream(Bt);
reader read = new InputStreamReader(IP);
iksegment er iks = new ik segment er(read,true);//true打開僅分詞模式。如果默認不設置為false,則為細粒度分段。
lexeme t;
while ((t = iks.next())!= null) {
keywordlist . add(t . getlexemetext());
}
} catch (IOException e) {
e . printstacktrace();
}
/* for(int I = 0;我& ltkeyword list . size()-1;i++) {
for(int j = keyword list . size()-1;j & gt我;j - ) {
if (keyWordList.get(j)。equals(keyWordList.get(i))) {
keyword list . remove(j);
}
}
}
Collections.sort(關鍵字列表,新比較器& lt字符串& gt() {
@覆蓋
public int compare(String o 1,String o2) {
返回O2 . length()-o 1 . length();
}
})*/
System.out.println(關鍵字列表);
返回關鍵字列表;
}
}