Python NLP自然语言处理之使用jieba进行中文分词实践
Publish: April 28, 2019 Category: 代码分享,数据分析 No Comments
自然语言处理的首要任务是分词,将一段文本分割成独立的词语。
中文分词介绍
已经归纳的三种分词如下:
规则分词、统计分词、混合分词
- 规则分词:
通过设立人工词库,按照一定方式进行切分匹配。
正向最大匹配法(Maximum Match Method MM法)
的基本思路,假定分词词典中最最长词为 i 个汉字字符,则首先切分待处理文档的前 i 个字符作为匹配子串,在分词词典中查找。如果找到则表示匹配成功,匹配子串作为一个词切分出来。如果在字典中找不到这个词,则匹配失败,然后将匹配字段中的最后一个字去掉对剩下的子串重新匹配。按照这个方法直到匹配成功。逆向最大匹配算法(Reverse Maximum Match Method, RMM法)
:其算法描述和MM法基本一致,唯一的不同在于RMM法是从文本的后面开始匹配。双向最大匹配法 (Bi-directction method)
:是将MM法和RMM法得到的结果进行比较,然后按照最大匹配原则,选取词数切分最少的作为结果。
- 统计分词
把每个词看做由单个字组成的,如果相连的两个字在不同的文本中出现词数越多,那么这两个词大概率是一个词,当出现的概率高于设定的阈值时我们认为这个”字组“可能会构成一个词。
基于统计的分词一般有两部分内容:
- 建立统计语言模型
- 对句子进行单词划分,对划分结果进行概率统计,获得概率最大分词方式。
Jieba中文分词工具
Jieba分词结合了基于规则和基于统计这两类方法实现中文分词。通过前缀词典构建可能的有向无环图,通过在该图中的多条分词路径找到最优路线,也就确定了具体分词。对于未记录在词典的词,其使用HMM模型,采用Viterbi算法进行推导(表示我也不知道这个是什么意思)。