最近在做分词,在网上发现了MMSEG,论文简单入理。在code.google.com上搜到了java的实现版本,非常感谢chenlb开源自己的代码。
在学习mmseg4j对字典的结构比较困惑,做了些调研,写下自己的感受。
mmseg4j采用 key-tree的形式存储字典数据结构,这有点类似中科院的ictclas4j的字典结构,ictclas4j的字典结构含有6768个字块(好像是这么多,可能有误),每一个子块是由含有以该字开头的词组成。结构图如下所示:
mmseg4j原始字典有两个,一个是chars.dct,另一个是words.dct。mmseg4j先加载chars.dct,这个比较简单,直接就是字 和 在语料库中的频率。频率是在CharNode这个类中。在加载words.dct的时候,实际上是对第一步加载chars.dct的填充,填充 CharNode 的 KeyTree字段。
KeyTree类中含有一个 TreeNode 字段,该字段也是一个类,其总定义了
char key;
Map<Character, TreeNode> subNodes;
boolean alsoLeaf;
该定义是一个递归的数据结构结构。
程序首先是通过下面的语句
CharNode cn = dic.get(line.charAt(0));
找到dic 中的 CharNode,dic即为加载chars.dct后的dct。 其后开始逐渐的对CharNode填充,最后填充成这样的一种形式:所有同一个字开始的词语被放入到同一个CharNode中,而该规则是递归的,所有第二个词一样的也被列在同一个hashmap中,之后是第三个...依次类推下去。
这样构成了一个Character-CharNode的树状词典结构,在进行最大模式匹配时提升很大的效率。
以上的叙述有些粗浅。
- 大小: 31.7 KB
分享到:
相关推荐
mmseg4j-all-1.8.5中文分词器
如果需要预装词典,可以选择`mmseg4j-all-1.8.5-with-dic.jar`,它包含了完整的词典数据,能够更好地支持分词任务。`build.xml`是Ant构建工具的配置文件,用于编译、打包和测试项目。`dist`目录通常存放的是打包后的...
mmseg4j-1.8.5中文分词器API
在**mmseg4j-1.8.5** 版本中,开发者可以期待以下特性: 1. **高性能**:经过优化的分词引擎,能快速处理大量文本数据,适合大规模文档索引和搜索。 2. **高准确率**:通过结合多种分词策略,如最长匹配、前后文...
《mmseg4j-solr全版本与配置详解》 在大数据时代,搜索引擎技术成为信息检索的关键工具。其中,Solr作为一款强大的开源全文搜索引擎,广泛应用于各类信息系统的搜索功能。而mmseg4j则是Solr中常用的中文分词组件,...
mmseg4j-all-1.8.5.jar
而mmseg4j-solr-2.4.0.jar是mmseg4j分词库的Solr插件版本,专为Solr设计,使得开发者可以方便地将mmseg4j的分词功能集成到Solr中,以提升搜索性能和精确度。 在Solr 6.3版本下,要使用mmseg4j-solr-2.4.0.jar,首先...
本文将深入探讨mmseg4j-1.8.5版本的特性、功能以及在Lucene中的应用。 mmseg4j是由陈学燕开发的开源项目,其全称为“Maxent Segmentation for Java”,基于最大熵模型进行中文分词。最大熵模型是一种统计学习方法,...
前者是mmseg4j分词器的核心库,包含了所有必要的分词算法和数据结构。后者则是mmseg4j为Solr定制的插件,它使得Solr能够无缝集成mmseg4j的分词功能,为Solr的索引和查询提供强大的中文处理能力。 为了在Solr4.8中...
本人用的solr是4.10的,经过本人亲测可用,放心下载,包含以下3个jar包: mmseg4j-analysis-1.9.1.jar, mmseg4j-core-1.9.1.jar, mmseg4j-solr-2.2.0.jar
《mmseg4j-solr在搜索引擎优化中的应用与实现》 ...对于需要处理大量中文数据的系统,mmseg4j-solr是一个值得信赖的选择。开发者可以通过深入研究和实践,充分发挥其潜力,以满足不断增长的中文搜索需求。
- **日志分析**:对于服务器日志分析,mmseg4j可以快速处理大量文本数据,帮助找出其中的模式和异常。 总的来说,mmseg4j作为一款强大的中文分词工具,无论是在传统的信息检索还是现代的大数据分析中,都有着广泛的...
lucene中文分词工具包,自己用ant编译成功的。可以进行定制的分词器,同义词开发。作为工具包使用。官网没有提供,组要自己编译,方便用传上来
1. **下载和准备mmseg4j的依赖**:这通常包括mmseg4j的jar包,以及对应的字典文件(dic文件)。这些文件可以从mmseg4j的官方网站或者通过GitHub等渠道获取。字典文件是mmseg4j进行分词的基础,包含了常见的词汇和...
- `mmseg4j-core-1.10.0.jar`:mmseg4j的核心库,包含了分词算法和基本数据结构。 - `mmseg4j-solr-2.3.0.jar`:针对Solr的扩展库,方便在Solr中使用mmseg4j。 - `README.md`:通常包含项目的基本介绍、使用说明和...
1. `mmseg4j-core-1.9.1.jar`:这是mmseg4j的核心库文件,包含了mmseg4j的主要分词算法和数据结构。该版本号1.9.1与标题中的版本相匹配,用于实现基本的中文分词功能。 2. `mmseg4j-analysis-1.9.2-SNAPSHOT.jar`:...
在上述配置中,`<updateRequestProcessorChain>`定义了一个名为“mmseg4j-analysis”的处理链,其中`Mmseg4jTokenizerFactory`是mmseg4j的分词处理器,需要指定字典路径(`dictPath`)以供分词器使用。 完成配置后...
本文将深入探讨mmseg4j-1.9.1版本的特点、功能以及如何在实际项目中应用。 首先,我们来了解mmseg4j的核心原理。mmseg4j基于“最大匹配”算法,即MaxMatch(MM)算法,同时结合了动态规划思想,旨在提高分词的准确...
1. **高效性**:mmseg4j设计时考虑了性能,采用优化的数据结构和算法,使得分词速度较快,适合大规模文本处理。 2. **灵活性**:支持自定义词典,用户可以根据需求添加或修改词汇,以适应不同的领域和应用场景。 3. ...
本文将围绕"mmseg4j-all-with-dic-1.8.6-sources.jar"和"mmseg4j-all-with-dic-1.8.6.jar"这两个核心文件,详细解析mmseg4j的使用方法及其在Lucene中的应用。 首先,我们来看"mmseg4j-all-with-dic-1.8.6.jar"。这...