自然语言处理实战-Python编程进阶

中文分词方法

基于字典、词库匹配的分词方法(基于规则)

将待分的字符串与一个充分大的机器词典中的词条进行匹配。常用的有:正向最大匹配,逆向最大匹配,最少切分法。实际应用中,将机械分词作为初分手段,利用语言信息提高切分准确率

基于词频度统计的分词方法(基于统计)

相邻的字同时出现的次数越多,越有可能构成一个词语,对语料中的词组频度进行统计,基于词的频度统计的分析方法是一种全切分方法。jiaba是基于统计的分词方法

基于知识理解的分词方法

该方法主要基于句法、语法分析、并结合语义分析,通过对上下文内容所提供的信息的分析对词进行定界。由于汉语语言知识的笼统、复杂性,目前还处在实验阶段

Jieba

jieba是Python中的一个重要的第三方中文分词函数库

jieba分词,完全开源,有集成的Python库

jieba实现原理

  1. 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图
  2. 采用了动态规划查找最大概率路径,找出基于词频的最大切分组合。(根据动态规划查找最大概率路径的基本思路就是对句子从右往左反向计算最大概率,以此类推,最后得到最大概率路径,得到最大概率的切分组合)
  3. 对于词典中没有包含的词(未登录词),采用了基于汉字成词能力的隐马尔科夫模型(HMM)模型,使用了Viterbi算法(一种最优路径算法)

jieba支持三种分词模式

  1. 精确模式:试图将句子最精确的切开,适合文本分析
  2. 全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义
  3. 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

jieba常用函数

  1. jieba.cut:方法接受三个输入参数:需要分词的字符串;cut_all参数用来控制是否采用全模式;HMM参数用来控制是否使用HMM模式
  2. jieba.cut_for_search:方法接受两个参数:需要分词的字符串;是否使用HMM模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  3. jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分析后得到的每一个词语(Unicode),或者用jieba.lcut以及jieba.lcut_for_search直接返回list

猜你喜欢

转载自blog.csdn.net/weixin_43717681/article/details/106027124