转载自:好玩的分词——python jieba分词模块的基本用法
学习记录所用,如有侵权,一定删除。
结巴分词分为三种模式:精确模式(默认)、全模式和搜索引擎模式。
精确模式:
import jieba
s = '武汉大学是一所还不错的大学'
result = jieba.cut(s)
print(','.join(result))
输出:
武汉大学,是,一所,还,不错,的,大学
Prefix dict has been built succesfully.
精确模式分词结果返回的是一个生成器。
全模式:
import jieba
s = '武汉大学是一所还不错的大学'
cut = jieba.cut(s, cut_all=True)
print(','.join(cut))
结果:
武汉,武汉大学,大学,是,一所,还,不错,的,大学
Prefix dict has been built succesfully.
搜索引擎模式:
import jieba
s = '武汉大学是一所还不错的大学'
cut = jieba.cut_for_search(s)
print(','.join(cut))
输出:
武汉,大学,武汉大学,是,一所,还,不错,的,大学
Loading model cost 0.877 seconds.
Prefix dict has been built succesfully.
获取词性
import jieba.posseg as psg
s = '武汉大学是一所还不错的大学'
print([(x.word, x.flag) for x in psg.cut(s)])
print([(x.word, x.flag) for x in psg.cut(s) if x.flag.startswith('n')])
输出:
Loading model cost 1.399 seconds.
Prefix dict has been built succesfully.
[('武汉大学', 'nt'), ('是', 'v'), ('一所', 'm'), ('还', 'd'), ('不错', 'a'), ('的', 'uj'), ('大学', 'n')]
[('武汉大学', 'nt'), ('大学', 'n')]
获取出现频率Ton N的词:
from collections import Counter
import jieba
# 开启并行分词模式,参数为并发执行的进程数
liangjian_text = open('./liangjian.TXT', 'rb').read()
print(len(liangjian_text))
liangjian_words = [x for x in jieba.cut(liangjian_text) if len(x) >= 2]
c = Counter(liangjian_words).most_common(20)
print(c)
输出:
720186
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\SEAVAN~1\AppData\Local\Temp\jieba.cache
Loading model cost 0.860 seconds.
Prefix dict has been built succesfully.
[('\r\n', 2926), ('李云龙', 1801), ('一个', 666), ('什么', 528), ('自己', 503), ('他们', 466), ('没有', 444), ('这个', 439), ('我们', 424), ('部队', 395), ('不是', 375), ('你们', 364), ('这么', 352), ('赵刚', 339), ('就是', 321), ('田雨', 313), ('起来', 286), ('咱们', 268), ('怎么', 247), ('现在', 242)]
使用用户字典提高分词精确性:
import jieba
txt = u'欧阳建国是创新办主任也是欢聚时代公司云计算方面的专家'
# 不使用用户字典分词结果
print(','.join(jieba.cut(txt)))
# 使用用户字典分词结果
jieba.load_userdict('user_dict.txt')
print(','.join(jieba.cut(txt)))
输出:
欧阳,建国,是,创新,办,主任,也,是,欢聚,时代,公司,云,计算,方面,的,专家
Prefix dict has been built succesfully.
欧阳建国,是,创新办,主任,也,是,欢聚时代,公司,云计算,方面,的,专家
注1:其中user_dict.txt的内容如下:
欧阳建国 5
创新办 5 i
欢聚时代 5
云计算 5
注2:
需要将user_dict.txt设置为utf-8编码,再输入字典文本。
用户字典每行一个词,格式为:
词语 词频 词性
其中词频是一个数字,词性为自定义的词性,要注意的是词频数字和空格都要是半角的。