“……他不回答,对柜里说,“温两碗酒,要一碟茴香豆。”便排出九文大钱。他们又故意的高声嚷道,“你一定又偷了人家的东西了!”孔乙己睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你偷了何家的书,吊着打。”孔乙己便涨红了脸,额上的青筋条条绽出,争辩道,“窃书不能算偷……窃书!……读书人的事,能算偷么?”接连便是难懂的话,什么“君子固穷”,什么“者乎”之类,引得众人都哄笑起来;店内外充满了快活的空气。”
哈哈,在实际分词切词当中,庖丁解牛和MMSeg4j各有千秋,但MMSeg4j的思想更先进一些,提供两种类型的分词:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。从技术实现原理上,MMSeg4j更先进些,但是效果并不理想,究其原因,原来是词库太少,默认的带dic的jar包只有三个dic文件,太少太少。
而庖丁解牛的分词效果,我觉得跟他的词库有很关系,效果当然跟词库有关系,所以,本人就想了一个办法:MMSeg4j来借用庖丁解牛的词库,“借书算窃吗?”
从MMSeg4j官方说明,可以看出如何指定词库的位置:有关说明如下:
-----------------------------------------------------
6、运行,词典用mmseg.dic.path属性指定、在classpath 目录下或在当前目录下的data目录,默认是 classpath/data 目录。如果使用 mmseg4j-with-dic.jar 包可以不指定词库目录(如果指定也可以,它们也可以被加载)。
java -jar mmseg4j-core-1.8-with-dic.jar 这里是字符串。
java -cp .;mmseg4j-1.6.jar -Dmmseg.dic.path=./other-dic com.chenlb.mmseg4j.example.Simple 这里是字符串。
java -cp .;mmseg4j-1.6.jar com.chenlb.mmseg4j.example.MaxWord 这里是字符串
8、词库(强制使用 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。
- 由于 utf-8 文件有带与不带 BOM 之分,建议词库第一行为空行或为无 BOM 格式的 utf-8 文件。
-----------------------------------------------------
更多的请参考官网。
开始动手了。
第一步,把庖丁解牛下载后,有一个dic的目录,把其中第二级的目录location里面的文本COPY到一级目录后。
第二步,把庖丁解牛的所有dic文件,前面加一个前缀words-xxx,最后的结果如图所示:
第三步,在程序中动态执行的加入字典目录,如下所示:
public String segStr(String text,String mode) throws IOException{
String returnStr = "";
Seg seg = null;
Properties p = System.getProperties();
p.setProperty("mmseg.dic.path", "C:\\dic");
Dictionary dic = Dictionary.getInstance();
if ("simple".equals(mode)) {
seg = new SimpleSeg(dic);
} else {
seg = new ComplexSeg(dic);
}
MMSeg mmSeg = new MMSeg(new InputStreamReader(new ByteArrayInputStream(text.getBytes())), seg);
Word word = null;
while ((word = mmSeg.next()) != null) {
//切词为单字的无实际意思,所以词组做为返回结果,仅仅为测试
if (word.getString().length()>=2){
returnStr += word.getString()+" ";
}
}
return returnStr;
}
呵呵,同样了,你也可以自己加入一些词库,比如拉登,奥巴马,还有中地沟油,中国加油贵,中国加油真贵.....
"引得众人都哄笑起来;店内外充满了快活的空气。"
- 描述: 修改后的字典
- 大小: 6 KB
分享到:
相关推荐
《mmseg4j 词库详解与应用》 在中文文本处理领域,分词是至关重要的第一步,它决定了后续分析的准确性和效率。mmseg4j 是一个专门为Java设计的中文分词工具,它以其高效、灵活的特点在众多分词库中脱颖而出。本文将...
mmseg4j中的词库是其核心组成部分之一,它包含了大量预先定义的常用词汇和专有名词。词库的质量直接影响到分词的准确性和效率。词库通常会定期更新,以适应语言的发展和社会热点的变化。在提供的"data.zip"文件中,...
本人用的solr是4.10的,经过本人亲测可用,放心下载,包含以下3个jar包: mmseg4j-analysis-1.9.1.jar, mmseg4j-core-1.9.1.jar, mmseg4j-solr-2.2.0.jar
mmseg4j是一款广泛使用的Java实现的中文分词库,它提供了高效且精准的中文分词功能。而“兼容solr4.10.3”意味着这个分词器已经过测试,可以无缝集成到Solr 4.10.3的搜索引擎环境中,用于提高中文文本处理的性能。 ...
mmseg4j是Java实现的中文分词库,广泛应用于搜索引擎、文本分析等领域。在Java社区中,它因其高效、灵活的特点而备受青睐。本篇文章将围绕mmseg4j的核心组件、功能特性以及在实际项目中的应用展开详细讨论。 首先,...
mmseg4j是Java实现的中文分词库,它支持多种分词模式,包括最短路径分词、最长匹配分词以及全模式分词等,可以根据实际需求选择合适的模式。 当mmseg4j与Solr结合时,mmseg4j-solr便成为了一个强大的中文处理插件。...
1. **高效性**:mmseg4j采用四向图最大匹配算法(Four-Directional Maximum Matching, 4DMM),该算法可以在保证分词精度的同时,提高分词速度。它通过向前、向后、向左、向右四个方向查找最长匹配,从而快速找到...
mmseg4j是基于MaxEnt(最大熵模型)算法的中文分词库,由陈利人开发。它借鉴了jieba分词的思想,但更专注于搜索引擎的分词需求。mmseg4j 2.3版本相较于早期版本,优化了性能,增加了更多功能,提高了分词准确率。 *...
**mmseg4j-1.9.1** 是一个基于Java实现的中文分词库,它的出现是为了满足在Java环境中进行高效、精准的中文文本分词需求。在自然语言处理领域,分词是预处理阶段的关键步骤,它将连续的汉字序列切割成具有语义的词汇...
**mmseg4j分词器** 是一个专为Java平台设计的中文分词库,它在中文信息处理领域中扮演着重要的角色。该库的主要功能是将连续的汉字序列分割成具有语义意义的词语,这是自然语言处理(NLP)中的基础任务,对搜索引擎...
在Java环境下,mmseg4j是一个广泛使用的开源中文分词库,它为Java开发者提供了强大的中文处理能力。本文将深入探讨mmseg4j在Solr中的应用,以及如何在Solr 6.3版本中集成并使用mmseg4j-solr-2.4.0.jar这个库。 首先...
**mmseg4j jar包** 是一个专门为Java开发的中文分词库,广泛应用于搜索引擎、文本分析、自然语言处理等领域。这个资源包适用于Solr5.3.1版本,表明它与Apache Solr的集成非常良好,使得用户可以方便地在Solr中实现...
里面包含了mmseg4j-solr-2.0.0.jar,mmseg4j-solr-2.1.0.jar,mmseg4j-solr-2.2.0.jar,mmseg4j-solr-2.3.0.jar总共4个文件,其中: mmseg4j-solr-2.0.0.jar 要求 lucene/solr >= 4.3.0。在 lucene/solr [4.3.0, 4.7.1]...
mmseg4j是一个专为Java设计的高效中文分词库,它的核心是基于"最小编辑距离"算法的分词方法,旨在提高中文文本处理的效率和准确性。在Java开发环境中,面对海量中文文本的处理,mmseg4j扮演了至关重要的角色。 在...
《mmseg4j-solr-2.1.0-with-mmseg4j-core.zip:Solr4.8与mmseg4j分词器的集成详解》 在信息检索和文本挖掘领域,搜索引擎扮演着至关重要的角色,而Apache Solr作为一款高效、可扩展的开源全文搜索平台,被广泛应用...
mmseg4j是一个基于Java实现的中文分词库,它主要用于将中文文本拆分成一系列的词语,是信息检索、自然语言处理、搜索引擎等领域的基础工具。在1.9.1版本中,开发者对原有的功能进行了优化,并修复了一些已知的bug,...
《MMseg4j中文分词词库:深入理解与应用》 在中文信息处理领域,分词是文本分析的基础步骤,它将连续的汉字序列分割成具有语义的词汇单元。MMseg4j是一个广泛应用于Java环境中的中文分词工具,它以其高效、灵活和...
Mmseg Analysis插件将Lucene mmseg4j-analyzer: : 集成到elasticsearch中,支持自定义词典。 该插件随附以下分析器: mmseg_maxword , mmseg_complex , mmseg_simple和令牌生成器: mmseg_maxword , mmseg_...
本文将深入探讨mmseg4j的特性和使用方法,帮助读者更好地理解和应用这一强大的分词库。 mmseg4j源自搜狗公司的开源项目,它的全称是"Minimum Edit Distance Segmentation for Java",即基于最小编辑距离的Java分词...
mmseg4j是基于Java的一个高性能中文分词库,它提供了多种分词算法,如最长匹配、最短路径等,以满足不同的分词需求。 首先,我们需要理解Solr6的基本架构。Solr是一个基于Apache Lucene的搜索服务器,它提供了一个...