jieba的简单使用
基本分词函数与用法
函数
jieba.cut
- 返回生成器
- cut_all控制是否采用全模式
- HMM参数控制是否使用HMM模型(隐马尔可夫后面文章更新介绍)
import jieba
lst = jieba.cut('我在学习NLP')
lst
#cut_all
import jieba
lst = jieba.cut('中国科技大学',cut_all=True)
lst
print('/'.join(lst))
jieba.cut_for_search:
- 需要分词的字符串
- 使用使用HMM
- 适用搜索引擎
#相当cut + cut_all
import jieba
lst = jieba.cut_for_search('中国科技大学')
lst
print('/'.join(lst))
jieba.lcut_for_search/lcut:
- 跟上面不同的是返回list
import jieba
lst = jieba.lcut_for_search('中国科技大学')
lst
lst2 = jieba.lcut('中国科技大学')
lst2
添加用户字典
很多时候我们需要针对自己需求进行分词(分词是HMM为False,使用隐马可能忽略字典)
- 可以使用jieba.load_userdict(file_name)加载用户字典
- 少量的词汇自己手动添加
- 用add_word 和del_word动态增加和删除词汇
- 用suggest_freq调节词语的词频,让它被分(不分)出来
print(jieba.lcut('开国元勋张中将'))
jieba.suggest_freq(('张','中'),True)
print(jieba.lcut('开国元勋张中将'))
关键词提取
TF-IDF算法提取
jieba.analyse.extract_tags:
- 待提取文本
- topk返回权重最大的关键词,默认20
- withWeight返回关键词权重
- allowPOS包括指定词性,默认空;意思就是提取的关键词仅需要名词加名词
- 补充:
- jieba.analyse.set_idf_path自定义语料库
- jieba.analyse.stop_words关键词停止词(参数都是filemane)
import jieba.analyse as ane
line = '综述了煤焦油在化工原料需求中的地位以及煤焦油加工和深加工的重要性。本文就煤焦油加工技术存在的现状,提出科学、合理化建议。简要描述了煤焦油深加工的新技术并指出提高新技术、开发新材料、扩大应用范围是煤焦油深加工的方向。'
print(' '.join(ane.extract_tags(line,topK=10,withWeight=False,allowPOS=())))
textRank
jieba.analyse.textrank:
- 以词之间的关系构建图
- 计算图中节点的pagerank,无向图
import jieba.analyse as ane
line = '综述了煤焦油在化工原料需求中的地位以及煤焦油加工和深加工的重要性。本文就煤焦油加工技术存在的现状,提出科学、合理化建议。简要描述了煤焦油深加工的新技术并指出提高新技术、开发新材料、扩大应用范围是煤焦油深加工的方向。'
print(' '.join(ane.textrank(line,topK=10,withWeight=False,allowPOS=('n','v'))))
词性标注
import jieba.posseg as psg
words = psg.cut('我爱我的祖国')
for w,flag in words:
print(w,flag)
jieba其他的用法
tokenize
import jieba
lst = jieba.tokenize('我爱我夹')
for i in lst:
print(i)
返回生成器,第一个是分的词,后面分别是起始的位置
search 精确模式