1、三种分词模式的区别和应用场景
1.1、 精确模式
将句子最精确的切开,适合文本分析
默认使用jieba.lcut(文本),返回分词列表
jieba.cut 返回生成器,遍历生成器即可获得分词的结果
In: jieba.lcut('今天真是个好天气!')
Out: ['今天', '真是', '个', '好', '天气', '!']
1.2、全模式
把句子中所有可能成词的词语都扫描出来,但是不能解决歧义
如下例子中,“天真“该分词实际并不存在句子中,存在歧义
调用:jieba.lcut(文本, cut_all=True)
In: jieba.lcut('今天真是个好天气!',cut_all=True)
Out: ['今天', '天真', '真是', '个', '好', '天气', '', '']
1.3、搜索引擎模式
在精确模式的基础上,对长词再次切分,提高召回率,使用与搜索引擎分词。
调用:jieba.lcut_for_search(文本)
st = '我们应该采取必要的行动才能解决问题。'
In: jieba.lcut(st)
Out: ['我们', '应该', '采取', '必要', '的', '行动', '才能', '解决问题', '。']
In: jieba.lcut_for_search(st)
Out: ['我们', '应该', '采取', '必要', '的', '行动', '才能', '解决', '问题', '解决问题', '。']
2、添加词语
使用jieba.add_word(文本) 向词库增加词语。
st = '深圳市福田区华强职业技术学校'
In: jieba.lcut(st)
Out: ['深圳市', '福田区', '华强', '职业', '技术学校']
In[1]: jieba.add_word('华强职业技术学校')
In[2]: jieba.lcut(st)
Out: ['深圳市', '福田区', '华强职业技术学校']
3、词频(列表)统计
collections.Counter
统计列表中每个元素出现的次数,排序
from collections import Counter
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
result = Counter(colors)
Out:Counter({'red': 2, 'blue': 3, 'green': 1})
result['black']
del result['blue']
result.most_common(2)
Out:[('blue', 3), ('red', 2)]
result = dict(Counter(colors))
data = sorted(result.items(),key=lambda x:x[1],reverse=False)
Out: [('green', 1), ('red', 2), ('blue', 3)]