MMSEG 中文分词算法 翻译】的更多相关文章

算法原文位于:http://technology.chtsai.org/mmseg/ http://www.360doc.com/content/13/0217/15/11619026_266142832.shtml…
Mmseg中文分词算法解析 @author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索索引创建时的中文分词.新词发现的中文分词.语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,整体使用下来,感觉jcseg是一个非常优秀的开源中文分词工具,并且可配置和开源的情况下,能够满足非常多场景的中文分词逻辑.本文先把jcseg使用到最主要的mmseg算法解析一下. 1. 中文分…
Java中有一些开源的分词项目,比如:IK.Paoding.MMSEG4J等等.这里主要说的是MMSEG4J中使用的MMSeg算法.它的原文介绍在:http://technology.chtsai.org/mmseg/,是用英文书写的,这是只是它的一个中文笔记.   为什么中文要分词 中文和英文的书写方式不一样,英文中单词之间用空格隔开,而且每个单词代表一个含义(当然也有短语,但这占的比例不是主要的):中文的书写是连在一起的,而且单个单词常常与相邻的单词组合成一个词语,代表一个含义.比如:"中学…
什么是Sphinx Sphinx 是一个全文检索引擎,一般而言,Sphinx是一个独立的搜索引擎,意图为其它应用提供快速.低空间占用.高结果相关度的全文搜索功能.Sphinx能够很easy的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持.也支持从标准输入读取特定格式的XML数据.通过改动源码.用户能够自行添加新的数据源(比如:其它类型的DBMS的原生支持). Sphinx的特性  快速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);…
最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候寻找当前开始的这个长度的词来和字典中的词匹配,如果没有找到,就缩短长度继续寻找,直到找到或者成为单字. 实例: S1="计算语言学课程是三个课时" ,设定最大词长MaxLen = 5  ,S2= " " 字典中含有三个词:[计算语言学].[课程].[课时] (1)S2=…
原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词算法的MapReduce程序 23条回复 我知道这个文章标题很“学术”化,很俗,让人看起来是一篇很牛B或者很装逼的论文!其实不然,只是一份普通的实验报告,同时本文也不对RMM中文分词算法进行研究.这个实验报告是我做高性能计算课程的实验里提交的.所以,下面的内容是从我的实验报告里摘录出来的,当作是我学…
本次实验内容是基于词典的双向匹配算法的中文分词算法的实现.使用正向和反向最大匹配算法对给定句子进行分词,对得到的结果进行比较,从而决定正确的分词方法. 算法描述正向最大匹配算法先设定扫描的窗口大小maxLen(最好是字典最长的单词长度),从左向右取待切分汉语句的maxLen个字符作为匹配字段.查找词典并进行匹配.若匹配成功,则将这个匹配字段作为一个词切分出来,并将窗口向右移动这个单词的长度.若匹配不成功,则将这个匹配字段的最后一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复以上过程,…
词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维矩阵模型,以一个词的起始位置作为行,终止位置作为列,可以得到一个二维矩阵.例如:“他说的确实在理”这句话 图词的存储方法:一种是的DynamicArray法,一种是快速offset法.Hanlp代码中采用的是第二种方法. 1.DynamicArray(二维数组)法 在词图中,行和列的关系:col为n…
词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维矩阵模型,以一个词的起始位置作为行,终止位置作为列,可以得到一个二维矩阵.例如:“他说的确实在理”这句话 图词的存储方法:一种是的DynamicArray法,一种是快速offset法.Hanlp代码中采用的是第二种方法. 1.DynamicArray(二维数组)法 在词图中,行和列的关系:col为n…
Sphinx并不支持中文分词, 也就不支持中文搜索, Coreseek = Sphinx + MMSEG(中文分词算法) 1.下载 1).到官网下载 2).解压后有三个文件夹 csft-3.2.14: Sphinx mmseg-3.2.14: 中文分词组件 testpack: 接口开发包 2.安装 1).先安装mmseg, 因为Coreseek会用到 cd mmseg- ./configure --prefix=/usr/local/mmseg 此时如果Makefile文件创建成功, 但是出现了…
最近碰到一个分词匹配需求--给定一个关键词表,作为自定义分词词典,用户query文本分词后,是否有词落入这个自定义词典中?现有的大多数Java系的分词方案基本都支持添加自定义词典,但是却不支持HDFS路径的.因此,我需要寻找一种简单高效的分词方案,稍作包装即可支持HDFS.MMSeg分词算法正是完美地契合了这种需求. 1. MMseg简介 MMSeg是蔡志浩(Chih-Hao Tsai)提出的基于字符串匹配(亦称基于词典)的中文分词算法.基于词典的分词方案无法解决歧义问题,比如,"武汉市长江大桥…
关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程序员来说是个噩梦.然而在中文分词工具mmseg中,它的中文分词是将标点与符号均去除的,它认为对于中文来讲标点符号无意义,这明显不能满足我们的需求.那么怎样改造它让它符合我们的要求呢?本文就是针对这一问题的详细解决办法,我们改mmseg的源代码. 关键字:Solr, mmseg, 中文, 分词, 标点…
转自:http://lies-joker.iteye.com/blog/2173086 选手:IKanalyzer.ansj_seg.jcseg 硬件:i5-3470 3.2GHz 8GB win7 x64 比赛项目:1.搜索:2.自然语言分析 选手介绍: 1,IKanalyzer IKanalyzer采用的是“正向迭代最细粒度切分算法”,是比较常见而且很容易上手的分词器了.一般新手上路学习lucene或者solr都会用这个.优点是开源(其实java分词器多是开源的,毕竟算法都是业内熟知的).轻…
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /**  * 获取文本的所有分词结果, 对比不同分…
在前一篇中介绍了用HMM做中文分词,对于未登录词(out-of-vocabulary, OOV)有良好的识别效果,但是缺点也十分明显--对于词典中的(in-vocabulary, IV)词却未能很好地识别.主要是因为,HMM本质上是一个Bigram的语法模型,未能深层次地考虑上下文(context).对于此,本文将介绍更为复杂的二阶HMM以及开源实现. 1. 前言 n-gram语法模型 n-gram语法模型用来:在已知前面\(n-1\)个词\(w_1, \cdots, w_{n-1}\)的情况下…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的地方在于这是一个中文的分词包,简单易懂,分词是一个非常重要的步骤,可以通过一些字典,进行特定分词.大致分析步骤如下: 数据导入--选择分词字典--分词 但是下载步骤比较繁琐,可参考之前的博客: R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血) ------------------…
分词是中文自然语言处理的基础.目前常用的分词算法有 1.张华平博士的NShort中文分词算法. 2.基于条件随机场(CRF)的中文分词算法. 这两种算法的代表工具包分别是jieba分词系统和哈工大的LTP语言技术平台.下面就分别演示这两个工具的使用方法. jieba包有两个分词函数,cut和cut_for_search,后者主要为搜索引擎设计,粒度更细.jieba.cut(sentence,cut_all=False,HMM=True)方法接受三个输入参数: 需要分词的字符串:cut_all 参…
中文分词技术 中文自动分词可主要归纳为“规则分词”“统计分词”和“混合分词”,规则分词主要是通过人工设立词库,按照一定方式进行匹配切分,实现简单高效,但对新词很难进行处理,统计分词能够较好应对新词发现能特殊场景,但太过于依赖语料的质量,因此实践中多是采用两者的结合,即混合分词. 1.1 规则分词 基于规则的分词是一种机械分词方法,主要是通过维护词典,在切分语句时,将语句的每个字符串与词表中的词进行逐一匹配,找到则切分,否则不予切分. 按照匹配切分的方式,主要有正向最大匹配法.逆向最大匹配法以及双…
前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch之分词器的工作流程 Elasticsearch之停用词 Elasticsearch的中文分词器 1.单字分词: 如:“我们是中国人” 效果:“我”“们”“是”“中”“国”“人” 2.二分法分词:按两个字进行切分. 如:“我们是中国人”,效果:“我们”.“们是”.“是中”.“中国”.“国人”. 3.词库分词:按某种算法构造词,然后去匹配已建好的词库集合,如果匹配到就切分出来成为词语.通常词库分词被认为是最理…
前言 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块.不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性.句法树等模块的效果.当然分词只是一个工具,场景不同,要求也不同.在人机自然语言交互中,成熟的中文分词算法能够达到更好的自然语言处理效果,帮助计算机理解复杂的中文语言.根据中文分词实现的原理和特点,可以分为: 基于词典分词算法 基于理解的分词方法 基于统计的机器学习算法 基于词典分词算法 基于词典分词算法,…
背景:分析用户在世界杯期间讨论最多的话题. 思路:把用户关于世界杯的帖子拉下来.然后做中文分词+词频统计,最后将统计结果简单做个标签云.效果例如以下: 兴许:中文分词是中文信息处理的基础.分词之后.事实上还有特别多有趣的文本挖掘工作能够做.也是个知识发现的过程,以后有机会再学习下. ================================================== * 中文分词经常使用实现: 单机:R语言+Rwordseg分词包 (建议数据量<1G) 分布式:Hadoop+Sm…
一.简介        针对现有中文分词在垂直领域应用时,存在准确率不高的问题,本文对其进行了简要分析,对中文分词面临的分词歧义及未登录词等难点进行了介绍,最后对当前中文分词实现的算法原理(基于词表.统计以及序列标注等算法)进行了简要阐述,并对比了现有技术的优缺点,并给出了本文作者在工程应用上的中文分词调优的经验分享. 二.引言        中文信息处理是指自然语言处理的分支,是指用计算机对中文进行处理.和大部分西方语言不同,汉语的词语之间没有明显的空格标记,句子是以字串的形式出现.常规来说,…
目录 一.中文分词理论描述 二.算法描述 1.正向最大匹配算法 2.反向最大匹配算法 3.双剑合璧 三.案例描述 四.JAVA实现完整代码 五.组装UI 六.总结 前言 这篇将使用Java实现基于规则的中文分词算法,一个中文词典将实现准确率高达85%的分词结果.使用经典算法:正向最大匹配和反向最大匹配算法,然后双剑合璧,双向最大匹配. 一.中文分词理论描述 根据相关资料,中文分词概念的理论描述,我总结如下: 中文分词是将一个汉字序列切分成一个一个单独的词,将连续的字序列按照一定的规范重新组合成词…
原文:基于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风格代…
一.中文分词 词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键. Lucene中对中文的处理是基于自动切分的单字切分,或者二元切分.除此之外,还有最大切分(包括向前.向后.以及前后相结合).最少切分.全切分等等. 二. 中文分词技术分类 我们讨论的分词算法可分为三大类: 1.基于词典:基于字典.词库匹配的分词方法:(字符串匹配.机械分词法) 2.基于统计:基于词频…
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /** * 获取文本的所有分词结果, 对比不同分词器结果 * @author 杨尚川 */ public interface WordSegmenter {…
开源软件包 SENNA 和 word2vec 中都用到了词向量(distributed word representation),当时我就在想,对于我们的中文,是不是也类似地有字向量(distributed character representation)的概念呢? 最近恰好读到复旦大学郑骁庆博士等人的文章 [1]<Deep Learning for Chinese Word Segmentation and POS tagging>.这篇文章利用文 [3] 作者提出的神经网络框架,针对中文…
friso是使用c语言开发的一款中文分词器,使用流行的mmseg算法实现.完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等.目前只支持UTF-8 编码. 源码无需修改就能在各种平台下编译使用,加载完20万的词条,内存占用稳定为13.5M.官方首页: https://code.google.com/p/friso下载地址: https://code.google.com/p/friso/downloads/list C++等引用,添加头文件时要注意: extern…
对几种中文分析器,从分词准确性和效率两方面进行比较.分析器依次为:StandardAnalyzer.ChineseAnalyzer.CJKAnalyzer.IK_CAnalyzer.MIK_CAnalyzer.MMAnalyzer(JE分词).PaodingAnalyzer.单纯的中文分词的实现一般为按字索引或者按词索引.按字索引顾名思义,就是按单个字建立索引.按词索引就是按词喽,根据词库中的词,将文字进行切分.车东的交叉双字分割或者叫二元分词我觉得应该算是按字索引的改进,应该还是属于字索引的范…
摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bcebos.com/cips2016.pdf 之前写过一篇中文分词总结,那么在那篇基础上,通过在CIPS2016的摘录进行一些拓展.可参考上篇:NLP+词法系列(一)︱中文分词技术小结.几大分词引擎的介绍与比较 NLP词法.句法.语义.语篇综合系列: NLP+词法系列(一)︱中文分词技术小结.几大分词引擎的介绍与…