经过几天的开发与调试,mmseg4j 1.6 版可以发布了。1.6 版主要实现与下功能:
- 实现多分词,在complex基础上,把长的词(大于2)拆出多个词。按二元分词,且把不存在的词去了,如:“西伯利亚” -> "西|伯利|利亚","西伯" 不存在词库中;“中国人民银行”-> "中国|国人|人民|银行"
- 支持多个词库文件,在词库目录中放"words"前缀且".dic"后缀的文件。如:data/words-my.dic
- 单字的单位独立一个文件(data/units.dic, 已经放入jar包里),也可以自定义覆盖它。加单字的单位处理分词比较好点,如:“年”在units.dic文件中,“2008年中有很多事情” -> “2008|年|中有|很多|事情”,否则,就分成了“2008|年中|有|很多|事情”。这功能是试行,如果不喜欢它,可以空的units.dic文件覆盖它。
MMSegAnalyzer 和 MMSegTokenizerFactory 默认的分词方式改为max-word。当然你可以单独地使用SimpleAnalyzer、ComplexAnalyzer、MaxWordAnalyzer。
多分词的效果:
public void testEffect() throws IOException {
String words = segW.segWords("共和国", "|");
assertEquals("共和|国", words);
}
public void testEffect1() throws IOException {
String words = segW.segWords("中国人民银行", "|");
assertEquals("中国|国人|人民|银行", words);
}
public void testEffect2() throws IOException {
String words = segW.segWords("西伯利亚", "|");
assertEquals("西|伯利|利亚", words);
}
public void testEffect3() throws IOException {
String words = segW.segWords("中华人民共和国", "|");
assertEquals("中华|华人|人民|共和|国", words);
}
public void testEffect4() throws IOException {
String words = segW.segWords("羽毛球拍", "|");
assertEquals("羽毛|球拍", words);
}
public void testEffect6() throws IOException {
String words = segW.segWords("为什么", "|");
assertEquals("为|什么", words);
}
public void testEffect7() throws IOException {
String words = segW.segWords("很好听", "|");
assertEquals("很好|好听", words);
}
public void testEffect8() throws IOException {
String words = segW.segWords("强冷空气", "|");
assertEquals("强|冷|空气", words);
}
public void testEffect10() throws IOException {
String words = segW.segWords("清华大学", "|");
assertEquals("清华|大学", words);
}
public void testEffect11() throws IOException {
String words = segW.segWords("华南理工大学", "|");
assertEquals("华南|理工|工大|大学", words);
}
public void testEffect12() throws IOException {
String words = segW.segWords("广东工业大学", "|");
assertEquals("广东|工业|大学", words);
}
solr 中使用
<fieldType name="textMaxWord" class="solr.TextField" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
</analyzer>
</fieldType>
google code 已经提供下载。
分享到:
相关推荐
mmseg4j-solr-2.3.0.jar 支持 solr5.x 版本以上 分词器本身并未做升级还是mmseg4j-core-1.10.0 和 mmseg4j-analysis-1.9.1.jar为了方便也一并上传
mmseg4j中文分词器
mmseg4j1.8.4分词工具,可以方便的集成在lucene后者solr中。
在com.chenlb.mmseg4j.analysis包里扩展lucene analyzer。 MMSegAnalyzer默认使用max-word方式分词(还有:ComplexAnalyzer, SimplexAnalyzer, MaxWordAnalyzer)。
兼容solr4.10.3的mmseg4j-1.9.1分词器
欢迎下载mmseg4j分词器jar包
mmseg4j-1.9.1 分词器 包含修复bug的mmseg4j-analysis-1.9.1.jar dist\修复bug下是修复bug后的mmseg4j-analysis-1.9.1.jar
本人从搜狗词库下载后转化为Lucene中文分词所需的词库,里面搜集的都是官方推荐的内容本人亲测可用。使用Solr5.2.1测试
mmseg4j中文分词器 mmseg4j-core-1.10.0.jar mmseg4j-solr-2.3.0.jar两个主要依赖包
mmseg4j-analysis修改版直接用
mmseg4j-solr-2.3.0-with-mmseg4j-core是Solr的中文分词包,该压缩包含有mmseg4j-core-1.10.0.jar和mmseg4j-solr-2.3.0.jar。
mmseg4j分词器,版本1.9,内涵词库,位于加压后的data.zip中
friso是使用c语言开发的一个开源的中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等。
本人用的solr是4.10的,经过本人亲测可用,放心下载,包含以下3个jar包: mmseg4j-analysis-1.9.1.jar, mmseg4j-core-1.9.1.jar, mmseg4j-solr-2.2.0.jar
中文分词器 mmseg4j1.9.1.zip 配合solr 使用
与solr4.8匹配的mmseg4j分词器的版本
mmseg4j分词,比较精确,可以跟lucene里面用
mmseg4j-1.8.5中文分词器API
mmseg4j-core, 用于java中文分析器的mmseg4j核心 MMSEG <dependency> <groupId>com.chenlb.mmseg4j</groupId> <artifactId>mmseg4j-core</artif
mmseg4j用Chih-Hao Tsai 的MMSeg算法实现的中文分词器,并实现lucene的analyzer和solr的TokenizerFactory以方便在Lucene和Solr中使用。 MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex...