#coding=utf-8
import jieba
import jieba.posseg as pseg # 词性标注
import jieba.analyse #关键词提取
import re
# jieba自定义词典
# jieba.load_userdict()
# 更改匹配规则,让其识别字典中的空格
jieba.re_han_default = re.compile("(.+)", re.U) #针对于默认模式
# jieba.re_han_cut_all = re.compile("(.+)", re.U) #针对于全模式
jieba.add_word("王者荣耀")
jieba.add_word("小米 NOTE3")
sentence = "我用小米 NOTE3打王者荣耀2019上海交通大学联赛"
# 全模式
seg_list = jieba.cut(sentence=sentence,cut_all=True)
print "[全模式]:","/ ".join(seg_list)
# 精确模式,也是默认模式
seg_list2 = jieba.cut(sentence=sentence,cut_all=False)
print "[精确模式]:","/ ".join(seg_list2)
# 搜索引擎模式
seg_list3 = jieba.cut_for_search(sentence=sentence)
print "[搜索引擎模式模式]:","/ ".join(seg_list3)
# HMM针对于字典以外的词,jieba使用HMM模型来进行匹配
seg_list4 = jieba.cut("他来到了网易杭研大厦",HMM=False)
print "[未启用HMM]:","/".join(seg_list4)
seg_list5 = jieba.cut("他来到了网易杭研大厦",HMM=True)
print "[未启用HMM]:","/".join(seg_list5)
# 结巴还支持繁体字的分词
# 关键字提取
# jieba提供了两种关键字提取的方法,TF-IDF,textRant
# TF词频,IDF逆文件频率,二者相乘
# 即是认为一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章
sentence2 = "我认为一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章"
# topK代表返回前几个权重最大的关键词,默认值20,withWeight,是否返回关键词的权重
cv = jieba.analyse.extract_tags(sentence=sentence2,topK=20,withWeight=True)
for i in cv:
print i[0],"==>",i[1]
print "*"*20
cv2 = jieba.analyse.textrank(sentence=sentence2,topK=20,withWeight=True)
for i in cv2:
print i[0],"==>",i[1]
#自定义语料库
# jieba.analyse.set_stop_words("stop_words.txt")
# jieba.analyse.set_idf_path("idf.txt.big");
机器学习入门之jieba分词
最新推荐文章于 2024-04-01 18:15:14 发布