基于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-03 20:28:49

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

基于深度学习的中文分词 | 实录·PhD Talk #5

Q 请问老师,切分文本中的数学公式没有标注样本怎么破? 陈新驰 可以人工标注一些,或者先用匹配的方法把一些模式很强的公式分出来. Q 看起来神经网络的分词,较少考虑了时间性能,但是作为 NLP 的基础模块如果做工业产品这个时间代价会比较突出,博士怎么看这个问题? 陈新驰 神经网络的话一般来说只是训练的时候比较慢,因为它的过程会比较长一点,那么它在 test 的时候其实效率和速度还是可以的,再加上我们用 GPU 的话可以快速的矩阵运算,所以它不会在 test 的时候输于传统的方法. Q 字标注的也

基于 IKAnalyzer 实现 Elasticsearch 中文分词插件

虽然Elasticsearch有原生的中文插件elasticsearch-analysis-smartcn(实际上是lucence的org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer),但它似乎没能满足我的要求.比如我希望对文档中的"林夕"不分词(就是不要把它当成"林","夕"两个字索引),smartcn没法做到. 然后我找到了IK,以及elasticsearch-analysis-i

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

在中文信息处理中,分词(word segmentation)是一项基本技术,因为中文的词汇是紧挨着的,不像英文有一个天然的空格符可以分隔开不同的单词.虽然把一串汉字划分成一个个词对于汉语使用者来说是很简单的事情,但对机器来说却很有挑战性,所以一直以来分词都是中文信息处理领域的重要的研究问题.  如今 90% 乃至 95% 以上的中文分词准确率已不是什么难题,这得益于模型和算法上的不断进步.在传统 CRF 中,特征需要人工设定,因此大量繁杂的特征工程将不可避免.近几年深度学习的发展给很多研究问题带

几款开源的中文分词系统_相关技巧

以下介绍4款开源中文分词系统. 1.ICTCLAS – 全球最受欢迎的汉语分词系统         中文词法分析是中文信息处理的基础与关键.中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),主要功能包括中文分词:词性标注:命名实体识别:新词识别:同时支持用户词典:支持繁体中文:支持GBK.UTF-8.UTF-7.UNIC

随思:关于中文分词方法

疑问:为什么会涉及到分词方法学呢? 为什么需要确定哪些是词语,哪些不是词语呢? 为什么需要进行分词,如果不分词会是什么情况呢? 分词的根本目的是为了搜索服务的,更确切的是为快速搜索而服务的. 了解倒排索引后,就知道全文搜索需要分词了.理解一下正向索引(反向索引就是倒排索引,先产生了正向索引来搜索,后面才发明了反向索引): http://www.cnblogs.com/wangtao_20/p/3647193.html 比如要搜索词语"湖南",那么意思是搜索哪些资料中带有关键词"

一篇文章教你用隐马尔科夫模型实现中文分词

  什么问题用HMM解决 现实生活中有这样一类随机现象,在已知现在情况的条件下,未来时刻的情况只与现在有关,而与遥远的过去并无直接关系. 比如天气预测,如果我们知道"晴天,多云,雨天"之间的转换概率,那么如果今天是晴天,我们就可以推断出明天是各种天气的概率,接着后天的天气可以由明天的进行计算.这类问题可以用 Markov 模型来描述. markov 进一步,如果我们并不知道今天的天气属于什么状况,我们只知道今明后三天的水藻的干燥湿润状态,因为水藻的状态和天气有关,我们想要通过水藻来推测

浅析中文分词算法 助力站长更好做优化

分词算法以前偶尔也懂些,但是懂的不透彻,最近看了很多相关的书,然后去互联网上又学习了一部分,算是有了个大概的了解.其实了解分词算法无论对于个人站长一些中小型企业,都十分有帮助.通过这些词的拆分,能让我们对关键词的把握更加的精准.好了,下边开始今天的正文,如果有不对的的地方,还希望大家多指正. 通常的分词算法往往是针对中文搜索引擎而言,对于Google则不存在,在百度和Google上搜索同样一个关键词或者短语,返回的结果是不同的,这不仅仅是算法不同或者技术不同的原因,更多是因为分词算法的存在.百度

三种中文分词算法优劣比较

到目前为止,中文分词包括三种方法:1)基于字符串匹配的分词:2)基于理解的分词:3)基于统计的分词.到目前为止,还无法证明哪一种方法更准确,每种方法都有自己的利弊,有强项也有致命弱点,简单的对比见下表所示: 各种分词方法的优劣对比 分词方法 基于字符串匹配分词 基于理解的分词 基于统计的分词 歧义识别 差 强 强 新词识别 差 强 强 需要词典 需要 不需要 不需要 需要语料库 否 否 是 需要规则库 否 是 否 算法复杂性 容易 很难 一般 技术成熟度 成熟 不成熟 成熟 实施难度 容易 很难

漫话中文自动分词和语义识别(上):中文分词算法

转自:http://www.matrix67.com/blog/archives/4212 记得第一次了解中文分词算法是在 Google 黑板报 上看到的,当初看到那个算法时我彻底被震撼住了,想不到一个看似不可能完成的任务竟然有如此神奇巧妙的算法.最近在詹卫东老师的<中文信息处理导论>课上再次学到中文分词算法,才知道这并不是中文分词算法研究的全部,前前后后还有很多故事可讲.在没有建立统计语言模型时,人们还在语言学的角度对自动分词进行研究,期间诞生了很多有意思的理论. 中文分词的主要困难在于分词