全模式和精确模式
- jieba.cut()
- jieba.lcut()
- 参数
- 需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
- cut_all 参数:是否使用全模式,默认值为 False
- HMM 参数:用来控制是否使用 HMM 模型,默认值为 True
- 示例
# 全模式
seg_list = jieba.cut("他来到上海交通大学", cut_all=True)
print("【全模式】:" + "/ ".join(seg_list))
# 输出:【全模式】:他/ 来到/ 上海/ 上海交通大学/ 交通/ 大学
# 精确模式
seg_list = jieba.cut("他来到上海交通大学", cut_all=False)
print("【精确模式】:" + "/ ".join(seg_list))
输出:【精确模式】:他/ 来到/ 上海交通大学
搜索引擎模式
- 没有cut_all参数
- 类似于全模式
- jieba.lcut_for_search
- jieba.cut_for_search
调整词库
- 载入词典
- jieba.load_userdict(file_name)
- 文件结构
词语 词频(可省略) 词性(可省略)
创新办 3 i
云计算 5
凱特琳 nz
- 使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
- 使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
string_data = '蒋兄弟家里有矿'
t= jieba.cut(string_data,cut_all=False)
print("/ ".join(t))
蒋/ 兄弟/ 家里/ 有矿
string_data = '蒋兄弟家里有矿'
jieba.del_word('蒋兄弟') #删除组合
jieba.suggest_freq(('兄','弟'), tune=True) #删除兄弟组合
t= jieba.cut(string_data,cut_all=False)
print("/ ".join(t))
蒋/ 兄/ 弟/ 家里/ 有矿
词性标注
import jieba.posseg as pseg
words = pseg.cut()
word_list
for word in words: # 循环得到每个分词
words_list.append((word.word, word.flag)) # 将分词和词性分类追加到列表
基于TF-IDF算法的关键词提取
(jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,
allowPOS=())
其中需要说明的是:
1.sentence 为待提取的文本
2.topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
3.withWeight 为是否一并返回关键词权重值,默认值为 False
4.allowPOS 仅包括指定词性的词,默认值为空,即不筛选
5.withFlag 为是否一并返回关键词词性