1、import jieba
jieba的cut函数有三个模式:全模式、精准模式、搜索引擎模式
1 精确模式,试图将句子最精确地切开,适合文本分析;
2 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 3 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。【jieba.lcut生成list,如 tags = jieba.lcut(text) ,text也要先处理成list。】
例子:全模式:cut_all=True
import jiebasentence="我喜欢上海东方明珠"w1=jieba.cut(sentence,cut_all=True)for item in w1: print(item) #结果: 我 喜欢 上海 上海东方 海东 东方 东方明珠 方明 明珠
精准模式:cut_all=False,或者默认情况下
import jiebasentence="我喜欢上海东方明珠"w2=jieba.cut(sentence,cut_all=False)#或者w2=jieba.cut(sentence)for item in w2: print(item) #结果: 我 喜欢 上海 东方明珠
搜索引擎模式:jieba.cut_for_search()
import jiebasnetence="我喜欢上海东方明珠"w3=jieba.cut_for_search(sentence)for item in w3: print(item) #结果
我
喜欢上海东方方明明珠东方明珠2、结巴的词性标注
import jieba.posseg sentence="我喜欢上海东方明珠"w4=jieba.posseg.cut(sentence)#flag为词性,word为词for item in w4: print(item.word+"---"+item.flag) #结果 我---r 喜欢---v 上海---ns 东方明珠---nr
词性:
3、加载自己创建的词典
比如:我在桌面创建了一个dict.txt。
import jieba.possegjieba.load_userdict('C:/user/Desktop/dict.txt')sentence="Lee_yl学习Python"w5=jieba.posseg.cut(sentence)for item in w5: print(item) #结果 Lee_yl/nr 学习/v Python/eng
加载自己的文件是暂时的,本次加载在内存中,下一次需要再加载。
4、提取关键词【jieba.analyse.extract_tags(字符串,关键词数量)】
import jieba.analysesentence="我喜欢上海东方明珠"w6=jieba.analyse.extract_tags(sentence,3)print(w6) #结果 ['东方明珠', '喜欢', '上海']
5、返回词语的位置
import jiebaw7=jieba.tokenize(sentence,mode="search")for item in w7: print(item) #结果,0,1,3,5,9表示词的索引位置 ('我', 0, 1) ('喜欢', 1, 3) ('上海', 3, 5) ('东方明珠', 5, 9)
6、计算词频(collections.defaultdict)
from collections import defaultdict s = 'mississippi'd = defaultdict(int)for k in s: d[k] += 1list(d.items())
结果:[('m', 1), ('i', 4), ('s', 4), ('p', 2)]
这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如default(int)则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0.