推广 热搜: 公司  快速  上海  中国  企业    未来  政策  系统  公司2 

中文分词原理及分词工具介绍

   日期:2024-11-03     作者:xinet    caijiyuan   评论:0    移动:http://www78564.xrbh.cn/mobile/news/26549.html
核心提示:转自:https://blog.csdn.net/flysky1991/article/details/73948971本文首先介绍下中文分词的基本原理,然后介绍下

转自:https://blog.csdn.net/flysky1991/article/details/73948971

中文分词原理及分词工具介绍

本文首先介绍下中文分词基本原理,然后介绍下国内比较流行的中文分词工具,如jiebaSnowNLPTHULACNLPIR,上述分词工具都已经在github上开源,后续也会附上github链接,以供参考。

中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词分词就是将连续的字序列按照一定的规范重新组合成词序列的过程

现有的分词方法可分为三大类基于字符串匹配的分词方法基于理解的分词方法基于统计的分词方法

1.2.1 基于字符串匹配的分词方法

基于字符串匹配的分词方法又称机械分词方法,它是按照一定的策略待分析的汉字串与一个“充分大的”机器词典中的词条进行配若在词典中找到某个字符串,则匹配成功(识别出一个词)。

按照扫描方向的不同,字符串匹配分词方法可以分为正向匹配逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配最小(最短)匹配;按照是否与词性标注过程相结合,可以分为单纯分词方法分词与词性标注相结合的一体化方法。常用的字符串匹配方法有如下几种

(1正向最大匹配法(从左到右的方向

(2逆向最大匹配法(从右到左的方向

(3最小切分(每一句中切出的词数最小

(4双向最大匹配(进行从左到右、从右到左两次扫描

这类算法的优点是速度快,时间复杂度可以保持在O(n),实现简单,效果尚可;但对歧义未登录词处理效果不佳。

1.2.2 基于理解的分词方法

基于理解的分词方法通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息语义信息处理歧义现象。它通常包括三个部分分词子系统句法语义子系统总控部分。在总控部分的协调下分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段

1.2.3 基于统计的分词方法

基于统计的分词方法是在给定大量已经分词的文本的前提下利用统计机器学习模型学习词语切分的规律(称为训练,从而实现对未知文本的切分。例如最大概率分词方法最大熵分词方法等。随着大规模语料库的建立,统计机器学习方法的研究和发展基于统计的中文分词方法渐渐成为了主流方法

主要的统计模型N元文法模型(N-gram隐马尔可夫模型(Hidden Markov Model ,HMM最大熵模型(ME条件随机场模型(Conditional Random Fields,CRF)等。

在实际的应用中基于统计的分词系统都需要使用分词词典进行字符串匹配分词,同时使用统计方法识别一些新词,即将字符串频率统计字符串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点

jieba分词是国内使用人数最多的中文分词工具(github链接:https://github.com/fxsjy/jieba)。jieba分词支持三种模式

(1精确模式:试图将句子最精确地切开适合文本分析

(2全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义

(3搜索引擎模式:在精确模式的基础上对长词再次切分,提高召回率适合用于搜索引擎分词

jieba分词过程中主要涉及如下几种算法

(1)基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)

(2)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合

(3)对于未登录词,采用了基于汉字成词能力的 HMM 模型,采用Viterbi 算法进行计算

(4)基于Viterbi算法做词性标注

(5)基于tf-idftextrank模型抽取关键词

SnowNLP是一个python写的类库(https://github.com/isnowfy/snownlp),可以方便的处理中文文本内容,是受到了TextBlob的启发而写的。SnowNLP主要包括如下几个功能

(1中文分词(Character-based Generative Model

(2词性标注(3-gram HMM

(3情感分析(简单分析,如评价信息

(4文本分类(Naive Bayes

(5转换成拼音(Trie树实现的最大匹配

(6繁简转换(Trie树实现的最大匹配

(7文本关键词文本摘要提取(TextRank算法

(8计算文档词频TF,Term Frequency)和逆向文档频率IDF,Inverse document Frequency

(9Tokenization(分割成句子

(10文本相似度计算(BM25

SnowNLP的最大特点是特别容易上手,用其处理中文文本时能够得到不少有意思的结果,但不少功能比较简单,还有待进一步完善。

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包(github链接:https://github.com/thunlp/THULAC-Python,具有中文分词词性标注功能。THULAC具有如下几个特点

(1能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成模型标注能力强大

(2准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3,词性标注的F1值可达到92.9,与该数据集上最好方法效果相当。

(3速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。

THU词性标记集(通用版)如下所示

测试代码(python版如下所示

NLPIR分词系统(前身为2000年发布的ICTCLAS词法分析系统,gtihub链接:https://github.com/NLPIR-team/NLPIR,是由北京理工大学张华平博士研发的中文分词系统,经过十余年的不断完善,拥有丰富的功能和强大的性能。NLPIR是一整套对原始文本集进行处理和加工的软件,提供了中间件处理效果的可视化展示,也可以作为小规模数据的处理加工工具。主要功能包括中文分词词性标注命名实体识别用户词典新词发现关键词提取等功能。本文测试所采用的是PyNLPIRNLPIRPython版本,github链接:https://github.com/tsroten/pynlpir

本文地址:http://www78564.xrbh.cn/news/26549.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号