lucene 中文分词器
mmseg4j用Chih-Hao Tsai 的MMSeg算法实现的中文分词器,并实现lucene的analyzer和solr的TokenizerFactory以方便在Lucene和Solr中使用。 MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j已经实现了这两种分词算法。
词库(强制使用 UTF-8):
data/chars.dic 是单字与语料中的频率,一般不用改动,1.5版本中已经加到mmseg4j的jar里了,我们不需要关心它,当然你在词库目录放这个文件可能覆盖它。
data/units.dic 是单字的单位,默认读jar包里的,你也可以自定义覆盖它,这功能是试行,如果不喜欢它,可以空的units.dic文件覆盖它。
data/words.dic 是词库文件,一行一词,当然你也可以使用自己的,1.5版本使用 sogou 词库,1.0的版本是用 rmmseg 带的词库。
data/wordsxxx.dic 1.6版支持多个词库文件,data 目录(或你定义的目录)下读到"words"前缀且".dic"为后缀的文件。如:data/words-my.dic。
public class ChineseWordAnalyze {
@Test
public void test1() {
// Analyzer a5 = new MMSegAnalyzer(new
// File("G:\\c参考资料\\lucene\\mmseg4j-1.8.5\\data"));
System.setProperty("mmseg.dic.path", "G:\\c参考资料\\lucene\\mmseg4j-1.8.5\\data");
System.getProperty("mmseg.dic.path");
Analyzer a5 = new MMSegAnalyzer();
String txt = "我是*公民";
AnalyzerUtils.displayToken(txt, a5);
}
}
使用命令查看分词
G:\c参考资料\lucene\mmseg4j-1.8.5>java -Dmmseg.dic.path=G:\\c参考资料\\lucene\\mmseg4j-1.8.5\\data -jar mmseg4j-all-1.8.5.jar
mmseg4j 也实现了两种分词方式:Simple和Complex。
mmseg4j 扩展 lucene的analyzer,叫MMSegAnalyzer默认使用Complex方式,也可以用SimpleAnalyzer(Simple方式)。
mmseg4j 有几个 analyzer:SimpleAnalyzer、ComplexAnalyzer、MaxWordAnalyzer、MMSegAnalyzer。前面 三个都是继承 MMSegAnalyzer,MMSegAnalyzer 默认使用 max-word 方式分词。这些 analyzer 都有无参数的构造函数,还有一个带词库目录为参数的构造函数。
下一篇: 搞笑儿童,个个都是国家栋梁,可堪大用啊~