关于lucene 数字 分词+ICTCLAS中科院分词器的问题

&&& 由于中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及切词,这里整理了一些中文分词工具。一般来说用CRF实现的分词工具的处理速度是比较慢的(训练CRF模型是非常耗时的),但是精度高,涉及CRF的分词工具有CRF++,Stanford分词工具。&&&&& Bakeoff是一个国际中文处理比赛,有多个语料,所以每个语料都有排名。只有部分优秀的Bakeoff工具开源。介绍了以下18种分词工具(大部分是基于java语言):&perminusminus&&&Stanford 汉语分词工具(Bakeoff-2两项第一)哈工大语言云(LTP -cloud)ICTCLAS&&(Bakeoff -1两项第一)Ansj(ICTCLAS的java实现)庖丁解牛分词盘古分词&&&&IKAnalyzerimdict-chinese-analyzermmseg4jFudanNLP(复旦大学)JcsegSCWSFrisoHTTPCWSlibmmsegOpenCLASCRF++ (Bakeoff-3四项第一)&&项目网址:作者:张开旭(清华大学2012届博士毕业生,,现在厦大教学)。个人主页:&源码是python。算法原理是感知器模型。&IntroductionPer-- is a toolkit of
(Freund and Schapire, 1999) for under the (Keep It Simple and Stupid).FeaturesSimple and efficientMultiple usage: path labeling, path finding, sequence labeling and classificationCan provide n-best outputsCan provide &mar.ginal score&Can provide alpha (forward) values and beta (backward) values using Open source&Stanford 汉语分词工具Stanford 汉语分词工具的成绩:2005年Bakeoff2两个语料的测试第一。官网:&最后更新(今天)一篇使用介绍:斯坦福自然语言小组直接使用CRF 的方法,特征窗口为5。&哈工大语言云(LTP -cloud)项目网址:HIT的ITNLP Lab, HIT Wei JIANG在Bakeoff 2005的open语料MSR上获得测评第一名。不确定LTP &cloud是否是在Wei JIANG的工作基础上进行的开发。语言云曾获总成绩第一名,使用方式为web service。语言云(语言技术平台云 LTP-Cloud)是由哈工大社会计算与信息检索研究中心研发的云端自然语言处理服务平台。 后端依托于语言技术平台,语言云为用户提供了包括分词、词性标注、依存句法分析、命名实体识别、语义角色标注在内的丰富高效的自然语言处理服务。作为基于云端的服务,语言云具有如下一些优势:免安装:用户只需要下载语言云客户端源代码,编译执行后即可获得分析结果,无需调用静态库或下载模型文件。省硬件:语言云客户端几乎可以运行于任何硬件配置的计算机上,用户不需要购买高性能的机器,即可快捷的获得分析结果。跨平台:语言云客户端几乎可以运行于任何操作系统之上,无论是Windows、Linux各个发行版或者Mac OS。跨编程语言:时至今日,语言云已经提供了包括C++,Java,C#,Python,Ruby在内的客户端,其他编程语言的客户端也在开发之中。在运算资源有限,编程语言受限的情况下,语言云无疑是用户进行语言分析更好的选择。从日开始该平台对外免费共享目标代码,截止目前,已经有国内外400多家研究单位共享了LTP,也有国内外多家商 业公司购买了LTP,用于实际的商业项目中。2010年12月获得中国中文信息学会颁发的行业最高奖项:&钱伟长中文信息处理科学技术奖&一等奖。日,为了与业界同行共同研究和开发中文信息处理核心技术,我中心正式将LTP的源代码对外共享,LTP由C++语言开发,可运行于Windows和Linux操作系统。&ICTCLAS: 汉语词法分析系统官网:(这是作者在中科院读研时的作品,最新版本是NLPIR,& )ICTCLAS(Institute&of&Computing&Technology,&Chinese&Lexical&Analysis&System)获取Bakeoff 1两项第一。  这是最早的中文开源分词项目之一,ICTCLAS在国内973专家组组织的评测中活动获得了第一名,在第一届(2003)国际中文处理研究机构SigHan组织的评测中都获得了多项第一名。性能:分词速度单机996KB/s, API 不超过 200KB ,各种词典数据压缩后不到 3M.准确率:分词精度98.45%,语言和平台:ICTCLAS全部采用 C/C++ 编写,支持 Linux 、 FreeBSD 及 Windows 系列操作系统,支持 C/C++ 、 C# 、 Delphi、 Java 等主流的开发语言。Author:中国科学院计算技术研究所主要功能:中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;支持繁体中文;支持GBK 、 UTF-8 、 UTF-7 、 UNICODE 等多种编码格式。算法:完美PDAT 大规模知识库管理技术( .3 ),在高速度与高精度之间取得了重大突破,该技术可以管理百万级别的词典知识库,单机每秒可以查询 100 万词条,而内存消耗不到知识库大小的 1.5 倍。层叠隐马尔可夫模型( Hierarchical&Hidden&Markov&Model )&,该分词系统的主要是思想是先通过 CHMM( 层叠形马尔可夫模型 ) 进行分词 , 通过分层 , 既增加了分词的准确性 , 又保证了分词的效率 . 共分五层, 如下图所示。基本思路是进行原子切分 , 然后在此基础上进行N- 最短路径粗切分 , 找出前 N 个最符合的切分结果 , 生成二元分词表 , 然后生成分词结果 , 接着进行词性标注并完成主要分词步骤 .&&&Ansj(ICTCLAS的java实现)项目网址:/ansjsun/ansj_seg作者网址:演示网址:&ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict.中文分词,人名识别,词性标注,用户自定义词典增加了对lucene的支持.如果不想编译文件可以直接到 这里下载jar包!这是一个ictclas的java实现.基本上重写了所有的数据结构和算法.词典是用的开源版的ictclas所提供的.并且进行了部分的人工优化内存中中文分词每秒钟大约100万字(速度上已经超越ictclas)文件读取分词每秒钟大约30万字准确率能达到96%以上目前实现了.中文分词. 中文姓名识别 . 用户自定义词典可以应用到自然语言处理等方面,适用于对分词效果要求搞的各种项目.&庖丁解牛分词官网:&语言和平台:Java,提供 lucence&&3.0& 接口,仅支持 Java 语言。性能:在PIII&1G 内存个人机器上, 1 秒&可准确分词& 100 万&汉字。 算法:采用基于&不限制个数&的词典文件对文章进行有效切分主要功能:使能够将对词汇分类定义。能够对未知的词汇进行合理解析&盘古分词官网:/作者:eaglet博客:/eaglet/&是一个中英文分词组件。项目描述Pan Gu Segment is alibrary that can segment Chinese and English words from sentence.盘古分词是一个中英文分词组件。作者eaglet 曾经开发过KTDictSeg 中文分词组件,拥有大量用户。作者基于之前分词组件的开发经验,结合最新的开发技术重新编写了盘古分词组件。主要功能: 中文分词功能&中文未登录词识别&词频优先&盘古分词可以根据词频来解决分词的歧义问题多元分词&盘古分词提供多重输出解决分词粒度和分词精度权衡的问题中文人名识别&强制一元分词&繁体中文分词&同时输出简体和繁体&中文词性输出&盘古分词可以将以登录词的中文词性输出给用户,以方便用户做进一步处理。&全角字符支持&盘古分词可以识别全角的字母和数字英文分词&英文专用词识别一些英文简写是字母符号混合,或者是字母数字混合,这个分词起来就不能按照空格符号这样分割了,对于字母符号混合的如&U.S.A& ,只要将这个词录入到字典中,盘古分词就可以分出整词。对于字母和数字混合的,盘古分词会自动作为整词输出。&英文原词输出&英文大小写同时输出其他功能&停用词过滤对于一些标点符号,连词,助词等有时候需要在分词时过滤掉,盘古分词提供一个&StopWord.txt& 文件,用户只要将需要过滤的词加入到这个文件中,并将停用词过滤开发打开,就可以过滤掉这些词。&设置分词权值盘古分词可以让用户对如下特性设置自定义权值1&未登录词权值2&最匹配词权值3&次匹配词权值4&再次匹配词权值5&强行输出的单字的权值6&数字的权值7&英文词汇权值8&符号的权值9&强制同时输出简繁汉字时,非原来文本的汉字输出权值。*用户自定义规则&字典管理&盘古分词提供一个字典管理工具&DictManage& 通过这个工具,你可以增加,修改,和删除字典中的单词&动态加载字典&通过字典工具增加,修改,和删除字典中的单词后,保持字典,盘古分词会自动将新的字典文件加载进去,而不需要重新启动。&关键词高亮组件Lucene&提供了一个关键词高亮组件,但这个组件对中文的支持不是特别好,特别是如果还有多元分词的情况,处理的就更不好。盘古分词提供了一个针对中文和英文的关键词高亮组件& PanGu.HighLight& ,其对中文的支持要好于Lucene& 那个高亮组件。&同义词输出( 后续版本提供 )&Lucene.net&接口及示例在PanGu4Lucene&这个包里面有我做的一个盘古 +Lucene& 的简单新闻搜索 Web 示例程序, Release& 包里面有使用说明。性能:Core&Duo&1.8&GHz&下单线程&分词速度为&390K& 字符每秒, 2 线程分词速度为&690K& 字符每秒。算法:&盘古分词提供的字典包括17万个中文常用单词,但这个字典依然不够完整,如果要分词更准确,需要适当维护一下这个字典。中文人名的识别能力取决于& ChsSingleName.txt ,&ChsDoubleName1.txt ,& ChsDoubleName2.txt& 这三个文件,它们分别表示单子人名,双字人名的首字和双字人名的尾字。&&IKAnalyzer官网:作者博客:/从2006年12月推出1.0版开始。开源轻量级的中文分词工具包语言和平台: 基于java 语言开发 , 最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的 IKAnalyzer3.0 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默认优化实现。算法:采用了特有的& 正向迭代最细粒度切分算法 & 。采用了多子处理器分析模式,支持:英文字母( IP 地址、 Email 、 URL )、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。支持用户词典扩展定义。针对 Lucene 全文检索优化的查询分析器 IKQueryParser ;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高 Lucene 检索的命中率。性能:在系统环境:Core2i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力&&imdict-chinese-analyzer官网:&是imdict 智能词典的智能中文分词模块。算法 : 基于隐马尔科夫模型(Hidden&Markov&Model, HMM) ,是中国科学院计算技术研究所的 ictclas 中文分词程序的重新实现(基于 Java ) .可以直接为lucene搜索引擎提供简体中文分词支持 。主要功能: 1,&完全 Unicode 支持分词核心模块完全采用Unicode 编码,无须各种汉字编码的转换,极大的提升了分词的效率。2.&提升搜索效率根据imdict 智能词典的实践,在有智能中文分词的情况下,索引文件比没有中文分词的索引文件小 1/33.&提高搜索准确度imdict-chinese-analyzer采用了 HHMM 分词模型,极大的提高了分词的准确率,在此基础上的搜索,比对汉字逐个切分要准确得多!4.&更高效的数据结构为了提高效率,针对常用中文检索的应用场景,imdict-chinese-analyzer 对一些不必要的功能进行了删减,例如词性标注、人名识别、时间识别等等。另外还修改了算法的数据结构,在内存占用量缩减到 1/3 的情况下把效率提升了数倍。&&ictclas4jimdict-chinese-analyzerICTCLAS&3.0分词速度( 字节 / 秒 ) 13.86    483.64    678.15  分词速度( 汉字 / 秒 )   7439    259517    363888  测试环境为:酷睿E7200双核,内存 2G, JDK 参数为: &-Xms512m&-Xmx1024m&&由此对比可以看出,&imdict-chinese-analyzer的分词效率与 C ++实现的 ICTCLAS&3.0的分词效率在同一个数量级,是& ictclas4j& 的& 36& 倍!ictclas4j中文分词系统是 sinboy 在中科院张华平和刘群老师的研制的 FreeICTCLAS 的基础上完成的一个 java 开源分词项目,简化了原分词程序的复杂度,旨在为广大的中文分词爱好者一个更好的学习机会。&&mmseg4j项目网址:(旧)/p/mmseg4j/(新)/chenlb/mmseg4j-solr作者博客:1、/2、/&算法:&1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法()实现的中文分词器,并实现 lucene 的 analyzer和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。2、MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方(指mmseg论文的作者)说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。1.5版的分词速度simple算法是 1100kb/s左右、complex算法是 700kb/s左右,(测试机:AMD athlon 64 2800+ 1G内存 xp)。1.6版在complex基础上实现了最多分词(max-word)。&很好听& -& &很好|好听&; &中华人民共和国& -& &中华|华人|共和|国&; &中国人民银行& -& &中国|人民|银行&。1.7-beta 版, 目前 complex 1200kb/s左右, simple 1900kb/s左右, 但内存开销了50M左右. 上几个版都是在10M左右.1.8 后,增加 CutLetterDigitFilter过虑器,切分&字母和数&混在一起的过虑器。比如:mb991ch 切为 &mb 991 ch&。mmseg4j实现的功能详情请看:3、在 com.chenlb.mmseg4j.example包里的类示例了三种分词效果。&&FudanNLP(复旦大学)官网:& 发布FudanNLP1.6.1版。时常更新。复旦大学开发的软件。FudanNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。本工具包及其包含数据集使用LGPL3.0许可证。开发语言为Java。功能包括中文分词等,不需要字典支持。功能:信息检索: 文本分类 新闻聚类中文处理: 中文分词 词性标注 实体名识别 关键词抽取 依存句法分析 时间短语识别结构化学习: 在线学习 层次分类 聚类 精确推理&Jcseg官网:&一、jcseg中文分词器jcseg是使用Java开发的一个中文分词器,使用mmseg算法实现。1。目前最高版本:jcseg1.9.0。兼容最高版本lucene-4.x和最高版本solr-4.x2。mmseg四种过滤算法,分词准确率达到了98.41%。3。支持自定义词库。在lexicon文件夹下,可以随便添加/删除/更改词库和词库内容,并且对词库进行了分类。。4。 中英文同义词追加/同义词匹配 + 中文词条拼音追加.词库整合了《现代汉语词典》和cc-cedict辞典中的词条,并且依据cc-cedict词典为词条标上了拼音,依据《中华同义词词 典》为词条标上了同义词(尚未完成)。更改jcseg.properties配置文档可以在分词的时候加入拼音和同义词到分词结果中。5。中文数字和中文分数识别,例如:&一百五十个人都来了,四十分之一的人。&中的&一百五十&和&四十分之一&。并且jcseg会自动将其转换为阿拉伯数字加入到分词结果中。如:150, 1/40。6。支持中英混合词和英中混合词的识别(维护词库可以识别任何一种组合)。例如:B超, x射线, 卡拉ok, 奇都ktv, 哆啦a梦。7。更好的英文支持,电子邮件,网址,小数,分数,百分数,字母和标点组合词(例如C++, c#)的识别。(这个对购物网址来说很重要)。8。支持阿拉伯数字/小数/中文数字基本单字单位的识别,例如2012年,1.75米,38.6℃,五折,并且jcseg会将其转换为&5折&加入分词结果中。9。智能圆角半角, 英文大小写转换。10。特殊字母识别:例如:Ⅰ,Ⅱ11。特殊数字识别:例如:①,⑩12。配对标点内容提取:例如:最好的Java书《java编程思想》,&畅想杯黑客技术大赛&,被《,&,&,『标点标记的内容。(1.6.8版开始支持)。13。智能中文人名识别。中文人名识别正确率达94%以上。(可以维护lex-lname.lex,lex-dname-1.lex,lex-dname-2.lex来提高准确率),(引入规则和词性后会达到98%以上的识别正确率)。14。自动中英文停止词过滤功能(需要在jcseg.properties中开启该选项,lex-stopwords.lex为停止词词库)。15。词库更新自动加载功能, 开启一个守护线程随时检测词库的更新并且加载。16。自动词性标注。17。jcseg.properties----- jcseg配置文件 二、分词速度:测试环境:2.8GHZ/2G/UbuntuSimple 模式: 1366058字/秒 3774.5KB/秒Complex 模式: 479338字/秒 1324.4KB/秒分词正确率98%以上,请参考本算法的原作:测试文章,&世界与和平& 简易模式830msec,复杂模式2461msec。&&&&&SCWS&   Author: Hightman C语言编写。算法: 基于词频词典的机械中文分词引擎,采用的是采集的词频词典,并辅以一定的专有名称,人名,地名,数字年代等规则识别来达到基本分词准确率:经小范围测试大概准确率在&90%&~&95%& 之间,已能基本满足一些小型搜索引擎、关键字提取等场合运用。性能:45Kb左右的文本切词时间是 0.026 秒,大概是 1.5MB 文本 / 秒,语言和平台:SCWS&采用纯& C& 代码开发,以& Unix-Like&OS& 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持& GBK , UTF-8 ,BIG5& 等汉字编码。支持 PHP4 和PHP&5 。版本列表 版本类型平台性能SCWS-1.1.xC&代码*Unix*/*PHP*准确:&95%,& 召回 :&91%,& 速度 :&1.2MB/sec&PHP扩展分词速度 :&250KB/secphp_scws.dll(1)PHP扩展库Windows/PHP&4.4.x准确:&95%,& 召回 :&91%,& 速度 :&40KB/secphp_scws.dll(2)PHP扩展库Windows/PHP&5.2.x准确:&95%,& 召回 :&91%,& 速度 :&40KB/secphp_scws.dll(3)PHP扩展库Windows/PHP&5.3.x准确:&95%,& 召回 :&91%,& 速度 :&40KB/secPSCWS23PHP源代码不限 &(不支持 UTF-8)准确:&93%,& 召回 :&89%,& 速度 :&960KB/minPSCWS4PHP源代码不限准确:&95%,& 召回 :&91%,& 速度 :&160KB/min&&Friso官网&friso是使用c语言开发的一个中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等。并且提供了一个php中文分词扩展robbe。1。只支持UTF-8编码。【源码无需修改就能在各种平台下编译使用,加载完20万的词条,内存占用稳定为14M。】。2。mmseg四种过滤算法,分词准确率达到了98.41%。3。支持自定义词库。在dict文件夹下,可以随便添加/删除/更改词库和词库词条,并且对词库进行了分类。4。词库使用了friso的Java版本jcseg的简化词库。5。支持中英混合词的识别。例如:c语言,IC卡。7。很好的英文支持,电子邮件,网址,小数,分数,百分数。8。支持阿拉伯数字基本单字单位的识别,例如2012年,5吨,120斤。9。自动英文圆角/半角,大写/小写转换。并且具有很高的分词速度:简单模式:3.7M/秒,复杂模式:1.8M/秒。[3]&HTTPCWS:基于HTTP 协议的开源中文分词系统,语言和平台:目前仅支持Linux 系统 算法:HTTPCWS&使用 &ICTCLAS&3.0&2009 共享版中文分词算法 & 的 API 进行分词处理,得出分词结果。 HTTPCWS& 将取代之前的& PHPCWS&中文分词扩展。PHPCWS( PHP 中文分词扩展)author:张宴   语言和平台:PHPCWS&是一款开源的 PHP 中文分词扩展,目前仅支持 Linux/Unix 系统。   算法:PHPCWS&先使用&ICTCLAS&3.0& 共享版中文分词算法 & 的 API 进行初次分词处理,再使用自行编写的 & 逆向最大匹配算法 & 对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果。 ICTCLAS&3.0& 商业版是收费的,而免费提供的&ICTCLAS&3.0& 共享版不开源,词库是根据人民日报一个月的语料得出的,很多词语不存在。所以本人对 ICTCLAS 分词后的结果,再采用逆向最大匹配算法,根据自己补充的一个 9 万条词语的自定义词库(与 ICTCLAS 词库中的词语不重复),对 ICTCLAS 分词结果进行合并处理,输出最终分词结果。由于&ICTCLAS&3.0& 共享版只支持 GBK 编码,因此,如果是 UTF-8 编码的字符串,可以先用 PHP 的 iconv 函数转换成 GBK 编码,再用 phpcws_split 函数进行分词处理,最后转换回 UTF-8 编码。&&&&&性能:5 8字节的一句话 &&&2009 年 2 月 13 日,我编写了一款PHP 中文分词扩展: PHPCWS&1.0.0。 & ,分词速度只需 0.0003 秒。对于那些采用二元交叉切分的搜索引擎, PHPCWS 用在前端搜索层对用户输入的搜索关键字、短语进行分词处理,同样适合。 PHPCWS 开发的目的正在于此,对于短句、小文本中文分词切分,速度非常之快。&libmmsegAuthor:李沫南语言和平台: 用C++ 编写的开源的中文分词软件, libmmseg 主要被作者用来实现 Sphinx 全文检索软件的中文分词功能,因此作者给 Sphinx 提供了一个补丁文件,可以让 Sphinx 集成 libmmseg ,从而支持对于中文文章的全文检索功能。 libmmseg 从 0.7.2版本开始,作者提供了 ruby 调用的接口,所以我们可以直接在ruby 程序里面调用 libmmseg 进行分词了。特别是我们可以用 ferret 去调用 libmmseg 分词功能,从而让 ruby 原生支持中文的全文检索。&算法 : &基于词库的最大匹配算法 &性能: 分词速度为每秒300KB左右。&&OpenCLAS是一个开源的中文词法分析库。主要功能:其中包括了中文分词、词性标注等功能。系统使用基于概率的多层HMM 。可以对已登录词和未登录词进行识别分析。OpenCLAS是对原有的 ICTCLAS&( 中科院中文词法分析系统 ) 进行的重写。 OpenCLAS 将不包含任何 ICTCLAS 中的源代码,并且以 BSD 协议发布。因此其代码可以在满足 BSD 协议的前提下,用于包括商用在内的各种场合。OpenCLAS将包含三个语言分支,C++,&Java 和 C# 。 ( 目前只实现了 C++ 的版本 ) 。&CRF++(上海交大)项目网址:/p/crfpp/详细介绍:/svn/trunk/doc/index.html作者:上海交大 赵海个人主页:http://bcmi./~zhaohai/index.ch.html&成绩[2007]Bakeoff-4第一届中国中文信息学会汉语处理评测暨第四届国际中文自然语言处理Bakeoff ()& 28个研究团队提交的166个分词结果中赢得本届Bakeoff分词的封闭评测的所有五项第一名&33个命名实体识别结果中赢得三个第二名,一个第三名Bakeoff-4的正式结果在。 我们的系统报告在。[2006]Bakeoff-3第三届国际中文分词竞赛 ()在29个研究团队提交的101个分词结果中赢得四项第一、两项第三Bakeoff-3的正式结果在。 我们的系统报告在。&CRF++ is a simple, customizable, and opensource implementation of Conditional Random Fields (CRFs) forsegmenting/labeling sequential data. CRF++ is designed for generic purpose andwill be applied to a variety of NLP tasks, such as Named Entity Recognition,Information Extraction and Text Chunking.&&说明:分词器的介绍来自于其官网。
登录用户可以查看和发表评论,
请前往&nbsp 登录&或&
免责声明:
① 任何媒体、网站或个人转载时请注明“稿件来源:学者网”,违者本站将依法追究责任。
本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性,如转载稿涉及版权等问题,请作者联系我们。
(C) 2016 SCHOLAT 学者网&&&&基于ICTCLAS中科院分词器实现Lucene4.9版本的中文分词功能,新增中英文停用词库,直接导入即可使用
基于ICTCLAS中科院分词器实现Lucene4.9版本的中文分词功能,新增中英文停用词库,直接导入即可使用
ICTCLAS中科院分词器实现Lucene4.9版本的中文分词功能,新增中英文停用词库,直接导入即可使用
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行在Java程序和Lucene中使用中科院分词系统ICTCLAS - 马楠的博客
在Java程序和Lucene中使用中科院分词系统ICTCLAS
分词是文本处理、分析的基础,中科院分词系统ICTCLAS是中文领域中功能强大的分词系统。下面介绍如何在一般的Java程序和Lucene中使用ICTCLAS。
首先在ICTCLAS官方网站下载分词系统源码,地址是http://ictclas.org/ictclas_download.aspx,目前的版本如下图所示:
根据操作系统和编程语言的需要选择下载,本文使用的是ICTCLAS2011_Windows_32_jni版本。
将下载文件解压后,有四个文件夹:
其中,API中是完整的软件包,可以调用其中的函数实现分词功能;Demo是使用图形化界面演示分词效果的程序;Doc是软件文档;Sample是一个Java中调用ICTCLAS的例子。
1.一般Java程序
一般Java程序使用中科院分词系统ICTCLAS参考Sample文件夹中的示例程序即可。
示例程序TestMain.java的主要内容如下:
[code lang=”java”]class TestMain
public static void main(String[] args)
//字符串分词
String sInput = "随后温总理就离开了舟曲县城,预计温总理今天下午就回到北京。以上就是今天上午的最新动态";
testICTCLAS_ParagraphProcess(sInput);//同testimportuserdict和testSetPOSmap
catch (Exception ex)
public static void testICTCLAS_ParagraphProcess(String sInput)
ICTCLAS50 testICTCLAS50 = new ICTCLAS50();
String argu = &.&;
if (testICTCLAS50.ICTCLAS_Init(argu.getBytes(&GB2312&)) == false)
System.out.println(&Init Fail!&);
//设置词性标注集(0 计算所二级标注集,1 计算所一级标注集,2 北大二级标注集,3 北大一级标注集)
testICTCLAS50.ICTCLAS_SetPOSmap(2);
//导入用户词典前分词
byte nativeBytes[] = testICTCLAS50.ICTCLAS_ParagraphProcess(sInput.getBytes(&GB2312&), 0, 1);//分词处理
System.out.println(nativeBytes.length);
String nativeStr = new String(nativeBytes, 0, nativeBytes.length, &GB2312&);
System.out.println(&未导入用户词典的分词结果: & + nativeStr);//打印结果
//导入用户字典
int nCount = 0;
String usrdir = &userdict.txt&; //用户字典路径
byte[] usrdirb = usrdir.getBytes();//将string转化为byte类型
//导入用户字典,返回导入用户词语个数第一个参数为用户字典路径,第二个参数为用户字典的编码类型
nCount = testICTCLAS50.ICTCLAS_ImportUserDictFile(usrdirb, 0);
System.out.println(&导入用户词个数& + nCount);
nCount = 0;
//导入用户字典后再分词
byte nativeBytes1[] = testICTCLAS50.ICTCLAS_ParagraphProcess(sInput.getBytes(&GB2312&), 2, 0);
System.out.println(nativeBytes1.length);
String nativeStr1 = new String(nativeBytes1, 0, nativeBytes1.length, &GB2312&);
System.out.println(&导入用户词典后的分词结果: & + nativeStr1);
//保存用户字典
testICTCLAS50.ICTCLAS_SaveTheUsrDic();
//释放分词组件资源
testICTCLAS50.ICTCLAS_Exit();
catch (Exception ex)
} } [/code]
编译、运行此程序,分词结果如下。
其中,分词的词性标注是可选的,词性标注的含义在Doc目录下的文档中有详细说明。
在Lucene中起到文本分析作用的类是Analyzer,Lucene中自带的不同Analyzer子类具有不同的分词功能。在较新的Lucene版本中(我使用的是3.0.3),Lucene自带的smartChineseAnalyzer是基于中科院分词系统实现的,中文分词效果比较好,已经能满足一般的中文分词需要。但是它不具备ICTCLAS原有的词性标注功能,如果想使用ICTCLAS的完整功能,则需要基于ICTCLAS编写自己的Analyzer子类。
ICTCLAS官网上有一个编写Analyzer子类的程序示例,地址如下:
另外,我的同学cjy写了一个更为完整的Analyzer子类,可以参考,源代码下载地址为:

我要回帖

更多关于 lucene 数字 分词 的文章

 

随机推荐