欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lucene 中文分词器

程序员文章站 2022-07-01 15:30:06
...

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