基于MMSeg算法的中文分词类库

原文:基于MMSeg算法的中文分词类库

最近在实现基于lucene.net的搜索方案,涉及中文分词,找了很多,最终选择了MMSeg4j,但MMSeg4j只有Java版,在博客园上找到了*王员外*(http://www.cnblogs.com/land/archive/2011/07/19/mmseg4j.html )基于Java版的翻译代码,但它不支持最新的Lucene.Net 3.0.3,于是基于它的代码升级升级到了最新版Lucene.Net (≥ 3.0.3),同时将其中大部分Java风格代码修改为.Net风格,并修正了其中几个小错误。

为了方便大家使用,我把修改后代码放到Github上了,并包含简单示例代码。另外,为了方便使用,制作了NuGet安装包,上传到了NuGet上,使用时,直接NuGet搜索Lucene.Net.Analysis.MMSeg即可。

Git地址

https://github.com/JimLiu/Lucene.Net.Analysis.MMSeg

NuGet地址

https://nuget.org/packages/Lucene.Net.Analysis.MMSeg/

PM> Install-Package Lucene.Net.Analysis.MMSeg

使用

一共三种搜索模式供选择:

SimpleAnalyzer

Analyzer analyzer = new SimpleAnalyzer();

MaxWordAnalyzer

Analyzer analyzer = new MaxWordAnalyzer();

ComplexAnalyzer

Analyzer analyzer = new ComplexAnalyzer();

具体使用方法,请参考代码中的示例和lucene.net的文档

时间: 2024-10-13 09:19:03

基于MMSeg算法的中文分词类库的相关文章

基于互联网内容的中文分词小实验

分词对于搜索引擎,输入法输入提示,语音识别等其它人机交互系统等都很有用.互联网的海量信息为分词研究提供了大量的,动态更新的原始资料库.很多互联网公司都有基于互联网内容的分词系统.并且采用HADOOP等分析大量数据.这些听上去很高大上,但是仔细想想基本原理应该是比较容易理解的,我们每个程序员也很容易可以研究这个领域.所以做了一个简单的POC实验. 首先写一个Spider,从互联网页面抓取内容.因为只是简单实验,我只抓取一个页面,没有做递归抓取链接页面.抓取内容过滤掉HTML标签留下纯文本. 第二部

基于JAVA的IKAnalyzer中文分词运用

一.前提 IKAnalyzer分词器常应用于大数据开发的数据准备阶段,它能对任意长的文字进行关键字提取.文字重组.数据清洗等二次处理,并将处理好的关键数据通过某种分割符重新拼接起来,形成一个可用于进行机器学习的数据集. 二.准备阶段 使用eclipse创建一个Maven工程,通过配置pom.xml文件来导入IKAnalyzer的jar包,我这用导入的是ikanalyzer-2012_u6.jar,然后在src目录下分别创建IKAnalyzer.cfg.xml.extend.dic.stopwor

Mmseg中文分词算法解析

@author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索索引创建时的中文分词.新词发现的中文分词.语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,整体使用下来,感觉jcseg是一个非常优秀的开源中文分词工具,并且可配置和开源的情况下,能够满足非常多场景的中文分词逻辑.本文先把jcseg使用到最主要的mmseg算法解析一下. 1. 中文分词算法之争 在分析mmseg

在Hadoop上运行基于RMM中文分词算法的MapReduce程序

原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词算法的MapReduce程序 23条回复 我知道这个文章标题很“学术”化,很俗,让人看起来是一篇很牛B或者很装逼的论文!其实不然,只是一份普通的实验报告,同时本文也不对RMM中文分词算法进行研究.这个实验报告是我做高性能计算课程的实验里提交的.所以,下面的内容是从我的实验报告里摘录出来的,当作是我学

NLP: 中文分词算法--正向最大匹配 Forward Maximum Matching

最近接触NLP中文分词, 在lunr.js的基础上, 实现了中文的最大正向匹配分词. 某些情况下, 我们在服务器端进行中文文本分词可以使用完整的基于mmseg算法的分词模块, 例如nodejieba, node-segment, 盘古分词等等,  但是在客户端环境下, 我们不能使用这些复杂的分词算法进行分词, 这个时候可以根据已经生成的索引进行简单的客户端分词, 就是所说的FMM (Forward Maximum Matching, 正向最大匹配), 有时候也可以使用正向匹配. 在做FMM的时候

中文分词实践(基于R语言)

背景:分析用户在世界杯期间讨论最多的话题. 思路:把用户关于世界杯的帖子拉下来,然后做中文分词+词频统计,最后将统计结果简单做个标签云,效果如下: 后续:中文分词是中文信息处理的基础,分词之后,其实还有特别多有趣的文本挖掘工作可以做,也是个知识发现的过程,以后有机会再学习下. ================================================== * 中文分词常用实现: 单机:R语言+Rwordseg分词包 (建议数据量<1G) 分布式:Hadoop+Smallse

求同存异,共创双赢 - 基于对抗网络的利用不同分词标准语料的中文分词方法 | 论文访谈间 #06

https://mp.weixin.qq.com/s/P-a-n1PsBL5hLZWVxyuLQw 「论文访谈间」是由 PaperWeekly 和中国中文信息学会青工委联合发起的论文报道栏目,旨在让国内优质论文得到更多关注和认可. 这是第 6 期「论文访谈间」 论文作者 | 陈新驰.施展.邱锡鹏.黄萱菁(复旦大学) 特约记者 | 郑华滨(中山大学) 在中文信息处理中,分词(word segmentation)是一项基本技术,因为中文的词汇是紧挨着的,不像英文有一个天然的空格符可以分隔开不同的单词

转:从头开始编写基于隐含马尔可夫模型HMM的中文分词器

http://blog.csdn.net/guixunlong/article/details/8925990 从头开始编写基于隐含马尔可夫模型HMM的中文分词器之一 - 资源篇 首先感谢52nlp的系列博文(http://www.52nlp.cn/),提供了自然语言处理的系列学习文章,让我学习到了如何实现一个基于隐含马尔可夫模型HMM的中文分词器. 在编写一个中文分词器前,第一步是需要找到一些基础的词典库等资源,用以训练模型参数,并进行后续的结果评测,这里直接转述52nlp介绍的"中文分词入门

机器学习基础——一文讲懂中文分词算法

在前文当中,我们介绍了搜索引擎的大致原理.有错过或者不熟悉的同学,可以点击下方的链接回顾一下前文的内容. ML基础--搜索引擎基本原理 在介绍爬虫部分的时候,我们知道,爬虫在爬取到网页的内容之后,会先进行一些处理.首先要做的就是过滤掉HTML当中的各种标签信息,只保留最原生的网页内容.之后,程序会对这些文本内容提取关键词. 今天我们就来讲讲关键词提取当中最重要的一个部分--中文分词. 在世界上众多的语言当中,中文算是比较特殊的一种.许多语言自带分词信息,比如英文,机器学习写作machine le