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 都有无参数的构造函数,还有一个带词库目录为参数的构造函数。

 

你可能感兴趣的:(Lucene)