一.导包
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
二.用法
/**
* 分词工具类
*/
public class IKSUtil {
public static List<String> getStringList(String text) throws Exception{
//独立Lucene实现
StringReader re = new StringReader(text);
IKSegmenter ik = new IKSegmenter(re, true);
Lexeme lex;
List<String> s = new ArrayList<>();
while ((lex = ik.next()) != null) {
s.add(lex.getLexemeText());
}
return s;
}
}
三.结果
public static void main(String[] args) {
try {
List<String> stringList = getStringList("我是中国人");
System.out.println(stringList);
} catch (Exception e) {
e.printStackTrace();
}
}
//结果 [我, 是, 中国人]
对词典的操作 (基于内存)
/**
* 词典管理类,单子模式
*/
public class Dictionary {
/**
* 批量加载新词条
* @param words Collection<String>词条列表
*/
public void addWords(Collection<String> words) {
if (words != null) {
for (String word : words) {
if (word != null) {
// 批量加载词条到主内存词典中
singleton._MainDict.fillSegment(word.trim().toLowerCase().toCharArray());
}
}
}
}
/**
* 批量移除(屏蔽)词条
* @param words
*/
public void disableWords(Collection<String> words) {
if (words != null) {
for (String word : words) {
if (word != null) {
// 批量屏蔽词条
singleton._MainDict.disableSegment(word.trim().toLowerCase().toCharArray());
}
}
}
}
参考文档