1. jieba

“结巴”中文分词

  • jieba.cut(str) cut_all 参数用来控制是否采用全模式 use_paddle 参数用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式
  • jieba.cut_for_search(str) 搜索引擎模式 构建倒排索引的分词,粒度比较细
  • jieba.lcut(str) 直接返回 list 结果
  1. # encoding=utf-8
  2. import jieba
  3. jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
  4. strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
  5. for str in strs:
  6. seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
  7. print("Paddle Mode: " + '/'.join(list(seg_list)))
  8. seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
  9. print("Full Mode: " + "/ ".join(seg_list)) # 全模式
  10. seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
  11. print("Default Mode: " + "/ ".join(seg_list)) # 精确模式
  12. seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
  13. print(", ".join(seg_list))
  14. seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
  15. print(", ".join(seg_list))

2. 基于 TF-IDF 算法的关键词抽取

标签 含义 标签 含义 标签 含义 标签 含义
n 普通名词 f 方位名词 s 处所名词 t 时间
nr 人名 ns 地名 nt 机构名 nw 作品名
nz 其他专名 v 普通动词 vd 动副词 vn 名动词
a 形容词 ad 副形词 an 名形词 d 副词
m 数量词 q 量词 r 代词 p 介词
c 连词 u 助词 xc 其他虚词 w 标点符号
PER 人名 LOC 地名 ORG 机构名 TIME 时间
  • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

    • sentence 为待提取的文本
    • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    • withWeight 为是否一并返回关键词权重值,默认值为 False
    • allowPOS 仅包括指定词性的词,默认值为空,即不筛
  • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件
  1. import jieba.analyse
  2. jieba.analyse.extract_tags(res.text,topK=5,allowPOS=('n','nr','ns'))

3. 基于 TextRank 算法的关键词抽取

  • jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’)) 直接使用,接口相同,注意默认过滤词性。

    • sentence 为待提取的文本
    • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    • withWeight 为是否一并返回关键词权重值,默认值为 False
    • allowPOS 仅包括指定词性的词,默认值为(‘ns’, ‘n’, ‘vn’, ‘v’)
  1. jieba.analyse.textrank(res.text,topK=5,allowPOS=("n","v"))