中文分词技术
MySQL中的中文分词和全文索引的实现技巧

MySQL中的中文分词和全文索引的实现技巧MySQL是一款广泛使用的关系型数据库管理系统,它提供了丰富的功能和优秀的性能。
然而,在处理中文文本数据方面,MySQL的默认配置并不能很好地支持中文分词和全文索引。
本文将介绍在MySQL中实现中文分词和全文索引的技巧,并探讨如何优化中文文本数据的检索效果。
一、中文分词技术的选择中文分词是将连续的汉字序列切分成一个一个独立的词语的过程。
在MySQL中进行中文分词,我们有多种技术可供选择。
这里我将介绍两种常见的中文分词技术:基于词典的分词和基于统计模型的分词。
1. 基于词典的分词基于词典的分词是最常见的中文分词技术。
它通过使用一个包含大量中文词语的词典,将输入的文本按照词典中的词语进行切分。
MySQL中可以使用开源的中文分词工具如IKAnalyzer、SmartCN等来实现基于词典的分词。
这些工具提供了丰富的功能,可以支持自定义词典和停用词等功能。
2. 基于统计模型的分词基于统计模型的分词是一种基于概率统计的分词技术。
它通过训练一个统计模型,学习词语的出现概率,并根据概率值判断是否在该位置切分词语。
常见的基于统计模型的中文分词工具有Jieba、HanLP等。
这些工具可以通过对大量文本进行训练,提供更准确的分词结果。
通过选择适合的中文分词技术,我们可以将中文文本切分成一个个独立的词语,为后续的全文索引提供准备。
二、全文索引的实现技巧全文索引是指对文本类型的数据建立索引,以提供快速高效的文本搜索功能。
在MySQL中,我们可以通过以下技巧实现全文索引。
1. 使用MyISAM引擎MySQL提供了多种存储引擎,包括MyISAM和InnoDB等。
在实现全文索引时,推荐使用MyISAM引擎。
因为MyISAM引擎在全文索引方面有着更好的性能和功能支持。
2. 创建全文索引在MySQL中,我们可以使用FULLTEXT索引类型来创建全文索引。
FULLTEXT索引可以对表中的一个或多个列进行索引,并支持使用全文搜索函数进行高效的文本搜索。
中文分词组件比较

1、收费 2、无.NET接口
1、提供的字典包括17万个中文常用单词,但这个字 典依然不够完整,如果要分词更准确,需要适当维 护一下这个字典。 2、开源免费(c#)
1、这只是个轻量级的组件,和专业分词系统相比, 功能和准确性都不是很完善 2、免费版具备所有基本功能,但分词算法和分词库 无法定制,而且不提供升级和技术支持服务。另 外,仅供个人免费试用,不要应用于商业环境。
雨痕中文分词组件
CSW中文分词组件
主要用于:数据挖掘、文档分类、自然语言理解以及凡是涉及到 信息/数据检索的各个领域 1、基于.NET平台开发,采用DLL动态链接库,提供编程接口,可 适用于网站或应用软件的数据检索 2、内置10万条汉语词库 3、词组拆分识别率高(在对数十GB的文档资料进行折分时,所 其识别率均大于90%) 4、采用倒序分词技术 5、特殊字符过滤及无意义字及敏感词过滤功能
免费版的功能受到一些限制,某些功能在企业 版或标准版中才有
中文分词组件
技术特点 1、目前被认为是国内最好的中文分词技术,其分词准确度超过99%, 目前国内的一些搜索网站如:中国搜索 是用的它的分词 2、以《现代汉语词典》为基础建立的知识库 3、在北大语料库中的评测结果显示,“海量中文智能分词”的准确率 达99.7% 4、分词效率高 5、分词效率达每分钟2000万字 提供 C/C++、Java 接口 盘古分词和KTDicSeg中文分词作者为同一人,盘古分词是KTDicSeg的 改进版 1、中文未登录词识别(对一些不在字典中的未登录词自动识别) 2、可以根据词频来解决分词的歧义问题 3、中文人名识别 4、繁体中文分词 5、全角字符支持 6、英文分词 7、停用词过滤(提供一个 StopWord.txt 文件,用户只要将需要过滤 的词加入到这个文件中,并将停用词过滤开发打开,就可以过滤掉这 些词) 8、对如下特性设置自定义权值(未登录词权值、最匹配词权值、次匹 配词权值、再次匹配词权值、强行输出的单字的权值、数字的权值、 英文词汇权值、符号的权值、强制同时输出简繁汉字时,非原来文本 的汉字输出权值) 9、提供一个字典管理工具 DictManage 通过这个工具,你可以增加, 修改,和删除字典中的单词 10、关键词高亮 11、为 提供了 接口
中文分词

能够处理大多数常用词带来的歧义问题 不能处理新词以及新词带来的歧义问题
解决之道:Class-based Ngram
在统一的框架下进行分词与新词识别 将词分为若干类
词典词:教师(词典处理) 仿词:2000年(规则处理) 新词:范路(基于类的新词识别) 形态词:高高兴兴(规则处理) 不同类型的词用不同处理方法,最后利用Ngram框架寻找全 局最优切分结果
P(C ) ≅ ∏P(ci | ci−2ci−1)
m 1 i=1
m
P (S1n | C1m ) = P (s1, s2 ,⋅ ⋅ ⋅, sn | c1, c2 ,⋅ ⋅ ⋅, cm ) ≅ P ([s1,⋅ ⋅ ⋅, sc1−end],⋅ ⋅ ⋅,[scm−start,⋅ ⋅ ⋅, sn ] | c1, c2 ,⋅ ⋅ ⋅, cm ) ≅ ∏ P ([scj −start,⋅ ⋅ ⋅, scj −end] | c j )
中文分词一席谈
suntian@
内容提要
中文分词概述 分词技术发展 国际分词评测 分词技术总结
中文分词概述
什么是分词? 什么是分词?
分词就是利用计算机识别出文本中词汇的过程。比如 句子“内塔尼亚胡说的确实在理”
中文分词概述(Cont.)
分词作用
互联网绝大多数应用都需要分词,典型应用实例 汉字处理:拼音 汉字处理:拼音输入法、手写识别、简繁转换 …告推荐、内容监控 … 语音处理: 语音处理:语音识别、语音合成 … …
w w
P (W | O ) = max ∏ P ( wt | wt −1 , ot )
w t =1
T
W:分词结果 O:待分词文本
生成式分词(Cont.)
中英文自然语言处理技术比较研究

中英文自然语言处理技术比较研究一、背景介绍随着信息技术的发展,自然语言处理技术越来越受到重视。
中英文作为两种最为常见的语言,在自然语言处理技术的研究中也占有重要地位。
本文旨在对中英文自然语言处理技术进行比较研究,探讨两者之间的异同点和未来发展趋势。
二、词法分析词法分析是自然语言处理技术中的基础环节,其主要目的是将文本中的词汇进行分词、词型标注等处理。
对于中英文而言,在词法分析的处理上存在一定的异同。
1.中文词法分析中文中的词语通常是由一个或多个汉字组成,所以在词法分析中需要进行分词。
中文分词技术有基于规则、基于统计和混合式等多种方法,其中混合式分词技术在实际应用中表现较好。
2.英文词法分析英文单词在拼写和结构上较为规则,因此英文分词技术相对比较简单。
英文分词技术主要有基于规则、基于统计和基于词典等多种方法,其中基于词典的方法在实际应用中表现较好。
三、句法分析句法分析是自然语言处理技术中的重要环节,其主要目的是将文本句子进行语法分析,找出其中的语法结构和关系。
与词法分析类似,中英文在句法分析的处理上也存在一定的差异。
1.中文句法分析中文的语法结构比较复杂,其中的语法关系涉及到主谓宾、定状补等多种类型。
中文句法分析的准确率不如英文,其中的问题主要源于中文的语法结构和表达方式带来的困难。
2.英文句法分析英文的语法结构比较简单,具有主谓宾结构和形容词和副词等修饰词语。
英文句法分析的准确率较高,与词典上的匹配程度和上下文语境等因素有关。
四、语义分析语义分析是自然语言处理技术中的核心环节,其主要目的是理解文本的意义和含义。
与词法分析和句法分析不同,中英文在语义分析的处理上存在着较大的差异。
1.中文语义分析中文的语义结构复杂,受文化背景、习惯用语等多种因素的影响。
中文语义分析的处理上存在很多难点,如动态歧义性、多义词、语言的动态变化等。
2.英文语义分析英文的语义结构简单,具有明确的语义表示方式。
英文语义分析相对而言较为简单,但在处理上同样存在着一些困难。
中文分词技术的研究现状与困难

四、解决方案
为了克服中文分词技术的研究困难,以下一些解决方案值得:
1、优化分词算法:针对分词算法的复杂性问题,可以尝试优化算法的设计和 实现,提高其效率和准确性。例如,可以通过引入上下文信息、利用语言学知 识等方式来改进算法。
2、改进信息检索技术:在信息检索领域,可以尝试将先进的排序算法、推荐 系统等技术引入到检索过程中,以提高检索效果。此外,还可以研究如何基于 用户行为和反馈来优化检索结果。
3、缺乏统一的评价标准:中文分词技术的评价标准尚未统一,这使得不同研 究之间的比较和评估变得困难。建立通用的中文分词技术评价标准对于推动相 关研究的发展至关重要。
4、特定领域的应用场景:中文分词技术在不同领域的应用场景中面临着不同 的挑战。例如,在金融领域中,需要分词技术对专业术语进行精确识别;在医 疗领域中,需要处理大量未登录词和生僻字。如何针对特定领域的应用场景进 行优化,是中文分词技术的重要研究方向。
3、建立大型标注语料库:通过建立大型标注语料库,可以为分词算法提供充 足的训练数据,提高其准确性和自适应性。此外,标注语料库也可以用于开发 基于规则的分词方法和测试集的构建。
4、研究跨领域的应用场景:针对不同领域的应用场景,可以研究如何将中文 分词技术进行迁移和适配。例如,可以通过知识图谱等技术将不同领域的知识 引入到分词过程中,以提高分词效果。
然而,各种分词方法也存在一定的局限性和不足。例如,基于规则的分词方法 需要人工编写规则和词典,难以维护和更新;基于统计的分词方法需要大量标 注语料库,而且训练模型的时间和计算成本较高;基于深度学习的分词方法虽 然取得了较好的效果,但也需要耗费大量的时间和计算资源进行训练。
三、研究困难
中文分词技术的研究面临着诸多困难和挑战,以下是一些主要词方法:该方法主要依靠人工编写的分词规则来进行分词。 代表性的工作包括台湾大学开发的中文分词系统“THULAC”和北京大学开发 的“PKU中文分词系统”。这些系统均基于词典和规则,具有较高的准确率和 召回率。
中文分词相关技术简介

中文分词相关技术简介目前对汉语分词方法的研究主要有三个方面:基于规则的分词方法、基于统计的分词方法和基于理解的分词方法。
基于规则的分词方法基于规则的分词方法,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的"机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
常用的方法:最小匹配算法(Minimum Matching),正向(逆向)最大匹配法(Maximum Matching),逐字匹配算法,神经网络法、联想一回溯法,基于N-最短路径分词算法,以及可以相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法等。
目前机械式分词占主流地位的是正向最大匹配法和逆向最大匹配法。
◆最小匹配算法在所有的分词算法中,最早研究的是最小匹配算法(Minimum Matching),该算法从待比较字符串左边开始比较,先取前两个字符组成的字段与词典中的词进行比较,如果词典中有该词,则分出此词,继续从第三个字符开始取两个字符组成的字段进行比较,如果没有匹配到,则取前3个字符串组成的字段进行比较,依次类推,直到取的字符串的长度等于预先设定的阈值,如果还没有匹配成功,则从待处理字串的第二个字符开始比较,如此循环。
例如,"如果还没有匹配成功",取出左边两个字组成的字段与词典进行比较,分出"如果";再从"还"开始,取"还没",字典中没有此词,继续取"还没有",依次取到字段"还没有匹配"(假设阈值为5),然后从"没"开始,取"没有",如此循环直到字符串末尾为止。
这种方法的优点是速度快,但是准确率却不是很高,比如待处理字符串为"中华人民共和国",此匹配算法分出的结果为:中华、人民、共和国,因此该方法基本上已经不被采用。
中英文混合文本处理技术的研究与应用

中英文混合文本处理技术的研究与应用随着全球化的推进,中英文混合文本的出现越来越频繁,如何对这样的文本进行处理成为了广大科学家和工程师的研究方向之一。
本文将就中英文混合文本处理技术的研究与应用进行探讨。
一、中英文分词技术中英文分词技术是中英文混合文本处理技术中不可忽视的一部分。
在中文语言中,每个字都代表一个独立的含义,因此需要进行分词处理。
在英文语言中,单词是基本的组成单位。
因此对于中英文混合文本的处理,一般需要分别对中文和英文进行分词,再进行合并处理。
目前,常用的中英文分词技术有两种,分别是基于词典的分词技术和基于机器学习的分词技术。
基于词典的中英文分词技术是常用的分词技术。
它通过建立词典,将中文和英文进行分开处理。
词典中包括了中文和英文的单词,可以实现对文本的较好分词。
另一种分词技术是基于机器学习的分词技术,它是利用一些已知的语言规则和例子,从训练数据中学习到分词模型。
基于机器学习的分词技术可以提高分词的准确性,但需要大量的训练数据。
二、中英文命名实体识别技术命名实体是指具有特定含义并代表现实世界中某个独立个体的词汇,比如人名、地名、机构名等。
在中英文混合文本中,往往存在大量的命名实体,因此对命名实体进行识别是中英文混合文本处理的重要一步。
中英文命名实体识别技术可分为两类,一类是基于规则的命名实体识别技术,一类是基于机器学习的命名实体识别技术。
基于规则的命名实体识别技术对命名实体的识别采用一定的规则来进行操作,通常需要人工制定一些规则来保证识别的准确性。
基于规则的命名实体识别技术的识别准确性较高,但由于需要大量的人工制定规则,不具备较好的通用性。
基于机器学习的命名实体识别技术利用统计分析方法,通过对大量标注好的语料库进行训练,得到命名实体的模型。
机器学习技术具有自我学习和调整能力,因此通常能够得到较好的识别效果。
三、中英文信息抽取技术中英文混合文本的信息抽取技术是一种从文本中提取出有用的信息的技术。
中文切词方法学习

中文切词方法学习
中文切词指的是对中文文本进行分词,即将连续的汉字序列按照一定的规则切分成词语。
中文切词是中文自然语言处理的关键技术之一、以下介绍几种常用的中文切词方法:
1.基于词典匹配:建立一个包含常用词语的词典,使用词典中的词语作为基本的切分单位。
对于输入文本,从左到右依次匹配词典中的词语,将匹配到的词语切分出来。
当遇到无法匹配的字符时,采用回溯、最长匹配等策略寻找最合适的切分点。
常用的词典包括常见词汇、专业词汇、人名、地名等。
2.基于统计模型:统计模型是根据大规模的中文文本语料库训练得到的模型,能够通过概率计算每个位置的最佳切分点。
常用的统计模型包括隐马尔可夫模型(HMM)、条件随机场(CRF)等。
这些模型利用上下文信息、词语频率等因素进行切词,提高切分的准确度。
3.基于规则的切词:通过预先定义一些规则来完成切词任务。
规则可以包括词语的长度、词性、词语之间的关系等。
规则可以手动定义,也可以通过机器学习算法自动学习得到。
4.结合多种方法:常常使用多种方法的组合来进行中文切词,以提高切词的准确性和效果。
如结合词典匹配和统计模型来进行切词,先用词典进行基本的切分,再通过统计模型进一步调整切分结果。
需要注意的是,中文切词是一个非常具有挑战性的任务,由于中文的特殊结构,切分的准确性和效果可能会受到多个因素的制约。
因此,选择合适的切词方法和处理策略,以及合适的语料库进行训练,是提高切词效果的关键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、为什么要进行中文分词?词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。
Lucene中对中文的处理是基于自动切分的单字切分,或者二元切分。
除此之外,还有最大切分(包括向前、向后、以及前后相结合)、最少切分、全切分等等。
二、中文分词技术的分类我们讨论的分词算法可分为三大类:基于字典、词库匹配的分词方法;基于词频度统计的分词方法和基于知识理解的分词方法。
第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。
这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。
第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。
下面简要介绍几种常用方法:1).逐词遍历法。
逐词遍历法将词典中的所有词按由长到短的顺序在文章中逐字搜索,直至文章结束。
也就是说,不管文章有多短,词典有多大,都要将词典遍历一遍。
这种方法效率比较低,大一点的系统一般都不使用。
2).基于字典、词库匹配的分词方法(机械分词法)这种方法按照一定策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。
识别出一个词,根据扫描方向的不同分为正向匹配和逆向匹配。
根据不同长度优先匹配的情况,分为最大(最长)匹配和最小(最短)匹配。
根据与词性标注过程是否相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。
常用的方法如下:(一)最大正向匹配法 (MaximumMatchingMethod)通常简称为MM法。
其基本思想为:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。
若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。
如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理……如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。
这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
其算法描述如下:(1)初始化当前位置计数器,置为0;(2)从当前计数器开始,取前2i个字符作为匹配字段,直到文档结束;(3)如果匹配字段长度不为0,则查找词典中与之等长的作匹配处理。
如果匹配成功,则,a)把这个匹配字段作为一个词切分出来,放入分词统计表中;b)把当前位置计数器的值加上匹配字段的长度;c)跳转到步骤2);否则a) 如果匹配字段的最后一个字符为汉字字符,则①把匹配字段的最后一个字去掉;②匹配字段长度减2;否则①把匹配字段的最后一个字节去掉;②匹配字段长度减1;b)跳转至步骤3);否则a)如果匹配字段的最后一个字符为汉字字符,则当前位置计数器的值加2;否则当前位置计数器的值加1;b)跳转到步骤2)。
(二)逆向最大匹配法 (ReverseMaximumMatcingMethod)通常简称为RMM法。
RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。
逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。
相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。
在实际处理时,先将文档进行倒排处理,生成逆序文档。
然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。
由于汉语中偏正结构较多,若从后向前匹配,可以适当提高精确度。
所以,逆向最大匹配法比正向最大匹配法的误差要小。
统计结果表明 ,单纯使用正向最大匹配的错误率为 1/16 9,单纯使用逆向最大匹配的错误率为 1/245。
例如切分字段“硕士研究生产”,正向最大匹配法的结果会是“硕士研究生 / 产”,而逆向最大匹配法利用逆向扫描,可得到正确的分词结果“硕士 / 研究 / 生产”。
当然,最大匹配算法是一种基于分词词典的机械分词法,不能根据文档上下文的语义特征来切分词语,对词典的依赖性较大,所以在实际使用时,难免会造成一些分词错误,为了提高系统分词的准确度,可以采用正向最大匹配法和逆向最大匹配法相结合的分词方案(即双向匹配法,见(四)。
)(三)最少切分法:使每一句中切出的词数最小。
(四)双向匹配法:将正向最大匹配法与逆向最大匹配法组合。
先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。
如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。
3). 全切分和基于词的频度统计的分词方法基于词的频度统计的分词方法是一种全切分方法。
在讨论这个方法之前我们先要明白有关全切分的相关内容。
全切分全切分要求获得输入序列的所有可接受的切分形式,而部分切分只取得一种或几种可接受的切分形式,由于部分切分忽略了可能的其他切分形式,所以建立在部分切分基础上的分词方法不管采取何种歧义纠正策略,都可能会遗漏正确的切分,造成分词错误或失败。
而建立在全切分基础上的分词方法,由于全切分取得了所有可能的切分形式,因而从根本上避免了可能切分形式的遗漏,克服了部分切分方法的缺陷。
全切分算法能取得所有可能的切分形式,它的句子覆盖率和分词覆盖率均为100%,但全切分分词并没有在文本处理中广泛地采用,原因有以下几点:1)全切分算法只是能获得正确分词的前提,因为全切分不具有歧义检测功能,最终分词结果的正确性和完全性依赖于独立的歧义处理方法,如果评测有误,也会造成错误的结果。
2)全切分的切分结果个数随句子长度的增长呈指数增长,一方面将导致庞大的无用数据充斥于存储数据库;另一方面当句长达到一定长度后,由于切分形式过多,造成分词效率严重下降。
基于词的频度统计的分词方法:这是一种全切分方法。
它不依靠词典,而是将文章中任意两个字同时出现的频率进行统计,次数越高的就可能是一个词。
它首先切分出与词表匹配的所有可能的词,运用统计语言模型和决策算法决定最优的切分结果。
它的优点在于可以发现所有的切分歧义并且容易将新词提取出来。
4).基于知识理解的分词方法。
该方法主要基于句法、语法分析,并结合语义分析,通过对上下文内容所提供信息的分析对词进行定界,它通常包括三个部分:分词子系统、句法语义子系统、总控部分。
在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断。
这类方法试图让机器具有人类的理解能力,需要使用大量的语言知识和信息。
由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式。
因此目前基于知识的分词系统还处在试验阶段。
5).一种新的分词方法并行分词方法:这种分词方法借助于一个含有分词词库的管道进行 ,比较匹配过程是分步进行的 ,每一步可以对进入管道中的词同时与词库中相应的词进行比较 ,由于同时有多个词进行比较匹配 ,因而分词速度可以大幅度提高。
这种方法涉及到多级内码理论和管道的词典数据结构。
(详细算法可以参考吴胜远的《并行分词方法的研究》。
)常用中文分词包1. 庖丁解牛分词包,适用于与Lucene整合。
/p/paoding庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。
Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。
Paoding中文分词追求分词的高效率和用户良好体验。
Paoding's Knives 中文分词具有极高效率和高扩展性。
引入隐喻,采用完全的面向对象设计,构思先进。
高效率:在PIII 1G内存个人机器上,1秒可准确分词 100万汉字。
采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。
能够对未知的词汇进行合理解析2. LingPipe,开源自然语言处理的Java开源工具包。
http://lingpipe/功能非常强大,最重要的是文档超级详细,每个模型甚至连参考论文都列出来了,不仅使用方便,也非常适合模型的学习。
主题分类(Top Classification)、命名实体识别(Named Entity Recognition)、词性标注(Part-of Speech Tagging)、句题检测(Sentence Detection)、查询拼写检查(Query Spell Checking)、兴趣短语检测(Interseting Phrase Detection)、聚类(Clustering)、字符语言建模(Character Language Modeling)、医学文献下载/解析/索引(MEDLINE Download, Parsing and Indexing)、数据库文本挖掘(Database Text Mining)、中文分词(Chinese Word Segmentation)、情感分析(Sentiment Analysis)、语言辨别(Language Identification)等3. JE分词包4. LibMMSeg /p/libmmseg采用C++开发,同时支持Linux平台和Windows平台,切分速度大约在300K/s(PM-1.2G),截至当前版本(0.7.1)。
LibMMSeg没有为速度仔细优化过,进一步的提升切分速度应仍有空间。
5. IKAnalyzer /p/ikanalyzerIKAnalyzer基于lucene2.0版本API开发,实现了以词典分词为基础的正反向全切分算法,是LuceneAnalyzer接口的实现。
该算法适合与互联网用户的搜索习惯和企业知识库检索,用户可以用句子中涵盖的中文词汇搜索,如用"人民"搜索含"人民币"的文章,这是大部分用户的搜索思维;不适合用于知识挖掘和网络爬虫技术,全切分法容易造成知识歧义,因为在语义学上"人民"和"人民币"是完全搭不上关系的。
6. PHPCWS /p/phpcwsPHPCWS 是一款开源的PHP中文分词扩展,目前仅支持Linux/Unix系统。
PHPCWS 先使用“ICTCLAS 3.0共享版中文分词算法”的API进行初次分词处理,再使用自行编写的“逆向最大匹配算法”对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果。