中文分词原理及分词工具介绍
中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。
中文分词方法介绍
现有的分词方法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
常用工具
一、SnowNLP(github star数 2043)
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了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)
(9)Tokenization(分割成句子)
(10)文本相似度计算(BM25)
SnowNLP的最大特点是特别容易上手,用其处理中文文本时能够得到不少有意思的结果,但不少功能比较简单,还有待进一步完善。
https://github.com/fxsjy/jieba
二、jieba (github star数 9003)
jieba分词是国内使用人数最多的中文分词工具(github链接)。jieba分词支持三种模式:
(1)精确模式:试图将句子最精确地切开,适合文本分析
(2)全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义
(3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
jieba分词过程中主要涉及如下几种算法:
(1)基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
(2)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
(3)对于未登录词,采用了基于汉字成词能力的 HMM 模型,采用Viterbi 算法进行计算
(4)基于Viterbi算法做词性标注
(5)基于tf-idf和textrank模型抽取关键词
三、THULAC (github star数 311)
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包(github链接),具有中文分词和词性标注功能。THULAC具有如下几个特点:
(1)能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
(2)准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
(3)速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。
https://github.com/thunlp/THULAC-Python
四、NLPIR (github star数 811)
NLPIR分词系统(前身为2000年发布的ICTCLAS词法分析系统,gtihub链接),是由北京理工大学张华平博士研发的中文分词系统
经过十余年的不断完善,拥有丰富的功能和强大的性能。
NLPIR是一整套对原始文本集进行处理和加工的软件,提供了中间件处理效果的可视化展示,也可以作为小规模数据的处理加工工具。
主要功能包括:中文分词,词性标注,命名实体识别,用户词典、新词发现与关键词提取等功能。
四:NLPIR
完~~~
文 | 力卉编程
网友评论