当前位置:网站首页 > 技术博客 > 正文

jieba库分词并输出分词结果



(1)支持三种分词模式:

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

在这里插入图片描述

  • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
  • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
  • 对于未登录词,采用了基于汉字成词能力的 HMM (隐马尔科夫)模型,使用了 Viterbi 算法

4.1.1 直接分词

  • jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
  • jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  • 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
  • jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用
  • jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
  • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

代码示例:

 
  

输出:

 
  

4.1.2 添加自定义词典 +分词

  • 开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
  • 用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径
  • 词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
  • 词频省略时使用自动计算的能保证分出该词的词频。
    例如:
  • userdict.txt
 
  
  • 更改分词器(默认为 jieba.dt)的 tmp_dir 和 cache_file 属性,可分别指定缓存文件所在的文件夹及其文件名,用于受限的文件系统。

案例:

  • 之前即没有添加自定义字典
 
  

输出:

 
  
  • 加载自定义词库后:
 
  

输出:

 
  

是不是,就很准确了呢!

调整字典

  • 使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
  • 使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
  • 注意:自动计算的词频在使用 HMM 新词发现功能时可能无效。

示例:

 
  

输出:

 
  
  • 标注句子分词后每个词的词性,采用和ictclas兼容的标记法
  • 用法示例:
 
  

输出:

 
  
  • 这里附上词性标注表,如下:
  • 名词 (1个一类,7个二类,5个三类)
  • 名词分为以下子类:
    • n 名词
      nr 人名
      nr1 汉语姓氏
      nr2 汉语名字
      nrj 日语人名
      nrf 音译人名
      ns 地名
      nsf 音译地名
      nt 机构团体名
      nz 其它专名
      nl 名词性惯用语
      ng 名词性语素










  • 时间词(1个一类,1个二类)
    • t 时间词
    • tg 时间词性语素
  • 处所词(1个一类)
    • s 处所词
  • 方位词(1个一类)

    f 方位词

  • 动词(1个一类,9个二类)
    • v 动词
      vd 副动词
      vn 名动词
      vshi 动词“是”
      vyou 动词“有”
      vf 趋向动词
      vx 形式动词
      vi 不及物动词(内动词)
      vl 动词性惯用语
      vg 动词性语素








  • 形容词(1个一类,4个二类)
    • a 形容词
      ad 副形词
      an 名形词
      ag 形容词性语素
      al 形容词性惯用语



  • 区别词(1个一类,2个二类)
    • b 区别词
      bl 区别词性惯用语
  • 状态词(1个一类)

    z 状态词

  • 代词(1个一类,4个二类,6个三类)
    • r 代词
      rr 人称代词
      rz 指示代词
      rzt 时间指示代词
      rzs 处所指示代词
      rzv 谓词性指示代词
      ry 疑问代词
      ryt 时间疑问代词
      rys 处所疑问代词
      ryv 谓词性疑问代词
      rg 代词性语素









  • 数词(1个一类,1个二类)
    • m 数词
      mq 数量词
  • 量词(1个一类,2个二类)
    • q 量词
      qv 动量词
      qt 时量词

  • 副词(1个一类)
    • d 副词
  • 介词(1个一类,2个二类)
    • p 介词
      pba 介词“把”
      pbei 介词“被”

  • 连词(1个一类,1个二类)
    • c 连词
      cc 并列连词
  • 助词(1个一类,15个二类)
    • u 助词
      uzhe 着
      ule 了 喽
      uguo 过
      ude1 的 底
      ude2 地
      ude3 得
      usuo 所
      udeng 等 等等 云云
      uyy 一样 一般 似的 般
      udh 的话
      uls 来讲 来说 而言 说来
      uzhi 之
      ulian 连 (“连小学生都会”)












  • 叹词(1个一类)
    • e 叹词
  • 语气词(1个一类)
    • y 语气词(delete yg)
  • 拟声词(1个一类)
    • o 拟声词
  • 前缀(1个一类)
    • h 前缀
  • 后缀(1个一类)
    • k 后缀
  • 字符串(1个一类,2个二类)
    • x 字符串
      xx 非语素字
      xu 网址URL

  • 标点符号(1个一类,16个二类)
    • w 标点符号
      wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <
      wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
      wyz 左引号,全角:“ ‘ 『
      wyy 右引号,全角:” ’ 』
      wj 句号,全角:。
      ww 问号,全角:? 半角:?
      wt 叹号,全角:! 半角:!
      wd 逗号,全角:, 半角:,
      wf 分号,全角:; 半角: ;
      wn 顿号,全角:、
      wm 冒号,全角:: 半角: :
      ws 省略号,全角:…… …
      wp 破折号,全角:—— -- ——- 半角:—
      wb 百分号千分号,全角:% ‰ 半角:%
      wh 单位符号,全角:¥ $ £ ° ℃ 半角 $














1、基于TF-IDF算法的关键词提取

 
  

语法:

 
  
  • sentence 为待提取的文本
  • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
  • withWeight 为是否一并返回关键词权重值,默认值为 False
  • allowPOS 仅包括指定词性的词,默认值为空,即不筛选
 
  

输出:

 
  

2、关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径

语法:

 
  
  • 自定义语料库示例

我 0 是否 13. 所谓13. 消瘦 13. 热火13. 力 13. 困惑 13. 焦作 13. 如果 13. 退缩 11. 忌口 11. 倒车档 12. 倒車檔 12. 编译 9. 編譯 9. 蝶泳 11. 外委 11.

  • 用法示例
 
  

3、关键词提取所使用停止词(Stop Words)文本语料库可以切换成自定义语料库的路径

  • 用法: # file_name为自定义语料库的路径
  • 自定义语料库示例:
 
  
  • 用法示例
 
  

4、关键词一并返回关键词权重值示例

 
  

输出:

 
  
  • 原理:将目标文本按行分隔后,把各行文本分配到多个 Python 进程并行分词,然后归并结果,从而获得分词速度的可观提升
  • 基于 python 自带的 multiprocessing 模块,目前暂不支持 Windows
  • 用法
    • # 开启并行分词模式,参数为并行进程数
    • # 关闭并行分词模式
      官方使用案例
 
  
  • 注意: 并行分词仅支持默认分词器 jieba.dt 和 jieba.posseg.dt。
  • 注意,输入参数只接受 unicode
  • 默认模式
 
  

输出:

 
  
  • 搜索模式
 
  

输出:

 
  
  • 语法:
  • 官方案例
 
  

jieba 采用延迟加载,import jieba 和 jieba.Tokenizer() 不会立即触发词典的加载,一旦有必要才开始加载词典构建前缀字典。如果你想手工初始 jieba,也可以手动初始化。

 
  

案例:

 
  

04.其他词典
1.占用内存较小的词典文件 https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.small
2.支持繁体分词更好的词典文件 https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.big
下载你所需要的词典,然后覆盖 jieba/dict.txt 即可;或者用 jieba.set_dictionary(‘data/dict.txt.big’)


版权声明


相关文章:

  • sql编程工具2025-10-19 15:01:00
  • 数据库测试方法介绍2025-10-19 15:01:00
  • typedef struct用法2025-10-19 15:01:00
  • 网页内容爬虫2025-10-19 15:01:00
  • 二叉树先序遍历算法2025-10-19 15:01:00
  • sql语句内连接与外连接区别2025-10-19 15:01:00
  • 组件通信方法2025-10-19 15:01:00
  • mq是什么技术2025-10-19 15:01:00
  • 非连通图的深度优先遍历算法2025-10-19 15:01:00
  • jieba命名实体识别2025-10-19 15:01:00