中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性,句法树等模块的效果,当然分词只是一个工具,场景不同,要求也不同。在人机自然语言交互中,成熟的中文分词算法能够达到更好的自然语言处理效果,帮助计算机理解复杂的中文语言。
基于词典分词算法
基于词典分词算法,也称为字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已经建立好的"充分大的"词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法为一下几种:正向最大匹配算法,逆向最大匹配法,最少切分法和双向匹配分词法等。
基于词典的分词算法是应用最广泛,分词速度最快的,很长一段时间内研究者在对对基于字符串匹配方法进行优化,比如最大长度设定,字符串存储和查找方法以及对于词表的组织结构,比如采用TRIE索引树,哈希索引等。
这类算法的优点:速度快,都是O(n)的时间复杂度,实现简单,效果尚可,
算法的缺点:对歧义和未登录的词处理不好。
基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果,其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象,它通常包含三个部分:分词系统,句法语义子系统,总控部分,在总控部分的协调下,分词系统可以获得有关词,句子等的句法和语义信息来对分词歧义进行判断,它模拟来人对句子的理解过程,这种分词方法需要大量的语言知识和信息,由于汉语言知识的笼统、复杂性,难以将各种语言信息组成及其可以直接读取的形式,因此目前基于理解的分词系统还在试验阶段。
基于统计的机器学习算法
这类目前常用的算法是HMM,CRF,SVM,深度学习等算法,比如stanford,Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备良好的学习能力,因此对歧义词和未登录词的识别都具有良好的效果。
算法优点:能很好处理歧义和未登录词问题,效果比前一类效果好
算法缺点: 需要大量的人工标注数据,以及较慢的分词速度
现行常见的中文词分类器
常见的分词器都是使用机器学习算法和词典相结合的算法,一方面能够提高分词准确率,另一方面能够改善领域适应性。
随着深度学习的兴起,也出现了基于神经网络的分词器,例如有研究人员尝试使用双向LSTM+CRF实现分词器,其本质上是序列标注,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可以高达97.5%,算法框架的思路与论文《Neural Architectures for Named Entity Recogintion》类似,利用该框架可以实现中文分词,如下图所示
首先对语料进行字符嵌入,将得到的特征输入给双向的LSTM,然后加一个CRF就得到标注结果。
分词器当前存在问题
目前中文分词难点主要有三个:
1. 分词标准:比如人名,在哈工大的标准中姓和名是分开的,但是在Hanlp中是合在一起的,这需要根据不同的需求制定不同的分词标准。
2. 歧义:对于同一个待切分字符串存在多个分词结果。
歧义又分为组合歧义,交集型歧义和真歧义三种分类。
1)组合型歧义:分词是有不同的粒度的,指某个词条中的一部分也可以切分未一个独立的词条,
2)交集型歧义:在“郑州天和服装厂”中,“天和”是厂名,是一个专有名词,“和服”也是一个词,它们共用了“和”字
3)真歧义:本身的语法和语义都没有问题,即便采用人工切分也会产生同样的歧义,只有通过上下文的语义环境才能给出正确的切分结果,例如:对于句子“美国会通过对台售武法案”,既可以切分成“美国/会/通过...”也可以切分成“美/国会/通过...”
一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法,常用的方案是,在索引的时候,使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。
3. 新词:也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构进一步认识。
部分分词器的简单说明:
哈工大的分词器:主页上给过调用接口,每秒请求的次数有限制。
清华大学THULAC:目前已经有Java、Python和C++版本,并且代码开源。
斯坦福分词器:作为众多斯坦福自然语言处理中的一个包,目前最新版本3.7.0, Java实现的CRF算法。可以直接使用训练好的模型,也提供训练模型接口。
Hanlp分词:求解的是最短路径。优点:开源、有人维护、可以解答。原始模型用的训练语料是人民日报的语料,当然如果你有足够的语料也可以自己训练。
结巴分词工具:基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG);采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。
字嵌入+Bi-LSTM+CRF分词器:本质上是序列标注,这个分词器用人民日报的80万语料,据说按照字符正确率评估标准能达到97.5%的准确率,各位感兴趣可以去看看。
ZPar分词器:新加坡科技设计大学开发的中文分词器,包括分词、词性标注和Parser,支持多语言,据说效果是公开的分词器中最好的,C++语言编写。
关于速度
由于分词是基础组件,其性能也是关键的考量因素。通常,分词速度跟系统的软硬件环境有相关外,还与词典的结构设计和算法复杂度相关。比如我们之前跑过字嵌入+Bi-LSTM+CRF分词器,其速度相对较慢。
作者:lovive
相关推荐
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。 HanLP提供下列功能: 中文...
推荐一个新的开源中文深度学习自然语言处理工具:Jiagu, 包括中文分词、词性标注、命名实体识别、情感分析、新词发现、关键词、文本摘要等。贡献者包括 Yener、zengbin93、dirtdust,感兴趣的同学可以试用,Github...
基于bert的中文自然语言处理工具,包括情感分析、中文分词、词性标注、以及命名实体识别功能,并提供文本分类任务、序列标注任务、句对关系判断任务的训练与预测接口 说明 基于bert的中文自然语言处理工具 包括情感...
Jiagu自然语言处理工具 Jiagu使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、情感分析、知识图谱关系抽取、关键词抽取、文本摘要、新词发现、情感分析、文本聚类等常用自然语言处理功能。参考了...
Jiagu深度学习自然语言处理工具 知识图谱关系抽取 中文分词 词性标注 命名实体识别 情感分析 新词发现 关键词 文本摘要 文本聚类
fastHan中文自然语言处理工具 fastHan是基于fastNLP与pytorch实现的中文自然语言处理工具,像spacy一样调用方便。 其内核为基于BERT的联合模型,其在13个语料库中进行训练,可处理中文分词、词性标注、依存分析、...
基于bert的中文自然语言处理工具 包括情感分析、中文分词、词性标注、以及命名实体识别功能 提供了训练接口,通过指定输入输出以及谷歌提供的下载好的预训练模型即可进行自己的模型的训练,训练任务有task_name参数...
,LingPipe(开源自然语言处理的Java开源工具包) 中文分词java程序
Jiagu深度学习自然语言处理工具 中文分词 词性标注 命名实体识别 情感分析 新词发现 关键词 文本摘要
Jiagu自然语言处理工具将提供中文分词,词性标注,命名实体识别,情感分析,知识图谱关系转移,关键字检索,文本摘要,新词发现,情感分析,文本聚类等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈...
自然语言处理、条件随机场 运用字标注法进行中文分词,对语料进行字标注,观察分词效果。开源的条件随机场工具包“CRF++: Yet Another CRF toolkit”进行分词。 可以使用的中文语料资源是SIGHAN提供的backoff ...
基于bert的中文自然语言处理工具 包括情感分析、中文分词、词性标注、以及命名实体识别功能 提供了训练接口,通过指定输入输出以及谷歌提供的下载好的预训练模型即可进行自己的模型的训练,训练任务有task_name参数...
fastHan是基于fastNLP与pytorch实现的中文自然语言处理工具,像spacy一样调用方便。其内核为基于BERT的联合模型,其在13个语料库中进行训练,可处理中文分词、词性标注、依存分析、命名实体识别四项任务。fastHan...
//ICTCLAS简介:计算所汉语词法分析系统ICTCLAS(Institute of Computing Technology,...//遵循协议:自然语言处理开放资源许可证1.0 //Email: zhanghp@software.ict.ac.cn //Homepage:www.nlp.org.cn;mtgroup.ict.ac.cn
本工具为复旦大学计算机学院机器人研究实验室开发的基于深度学习的中文自然语言处理工具FudanDNN-NLP2.0,该工具可用于中文分词、自定义词汇、文本规范化、命名识别、词性标注、语义分析,用户可以根据需要重新训练...
包含Python分词,句法分析,分句等SDK及相关模型,提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作 针对单一自然语言处理任务,生成统计机器学习模型的...
Ansj中文分词是一款纯Java、主要用于自然语言处理、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”。 内容简介:http://www.iteye.com/magazines/102#234 此分词具有自己学习的功能,所以拜托大家...
中英文分词工具有很多,今天我们来使用Jieba、SnowNlp、nltk、thunlp、NLPIR、Stanford等六种工具来对给定中英文文本进行分词、词性标注与命名实体识别。
中文公司名称分词工具,支持公司名称中的地名,品牌名(主词),行业词,公司名后缀提取。 对公司名文本解析,识别并提取地名、品牌名、行业词、公司名后缀词。