jieba分词的最详细解读

目录

一,什么是jieba(结巴)库?

二,jieba库的使用规则

三,jieba库具体使用和实例


一,什么是jieba(结巴)库?

字如其名,结巴库主要用于中文分词,很形象的画面想必一下子就出现在了大家的面前,结巴在说话时一个词一个词从嘴里往外蹦的时候,已经成功地模拟了我们jieba函数的处理过程!!!

其次

1:Jieba库是优秀的中文分词第三方库,中文文本需要通过分词获得单个的词语。

2:Jieba库的分词原理:利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果。除了分词,用户还可以添加自定义的词组。

3:jieba库提供三种分词模式,最简单只需要掌握一种————

注意:jieba.cuts(s) 返回的是一个可迭代的数据类型,jieba.cuts(s)   后 使用 cut = [w for w in cut if w not in stopWords],处理中文停用词问题时 显示错误,是因为一般stopWord为list 列表[]类型,与cut迭代类型不兼容

,此时出现错误,我们应该了解到jieba.lcuts(s)函数 恰恰返回一个列表类型,此时正常运行。那么就要引入我们一下会讲到的一点jieba库的具体使用

二,jieba库的使用规则

1:jieba分词的三种模式

    精确模式:就是把一段文本精确地切分成若干个中文单词,若干个中文单词之间经过组合,就精确地还原为之前的文本。其中不存在冗余单词。

    全模式:将一段文本中所有可能的词语都扫描出来,可能有一段文本它可以切分成不同的模式,或者有不同的角度来切分变成不同的词语,在全模式下,Jieba库会将各种不同的组合都挖掘出来。分词后的信息再组合起来会有冗余,不再是原来的文本。

    搜索引擎模式:在精确模式基础上,对发现的那些长的词语,我们会对它再次切分,进而适合搜索引擎对短词语的索引和搜索。也有冗余

2:jieba库的一般函数

三,jieba库具体使用和实例

1:简单的分词


import jieba 
cut = jieba.cut(text)  #text为你需要分词的字符串/句子
string = ' '.join(cut)  #将分开的词用空格连接
print(string)

 

2:统计三国演义中的词语出场数

import  jieba

txt = open("D:\\三国演义.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)     # 使用精确模式对文本进行分词
counts = {}     # 通过键值对的形式存储词语及其出现的次数

for word in words:
    if  len(word) == 1:    # 单个词语不计算在内
        continue
    else:
        counts[word] = counts.get(word, 0) + 1    # 遍历所有词语,每出现一次其对应的值加 1
        
items = list(counts.items())#将键值对转换成列表
items.sort(key=lambda x: x[1], reverse=True)    # 根据词语出现的次数进行从大到小排序

for i in range(15):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

 

3:利用jiebe库的制作WordCloud

jieba分词,再对文本数据处理停用词,作为引用照片,制作词云

k# 基于TextRank算法进行关键词抽取
text=""
for item in data:
    text=text+item[0]
    # print(item[0])
cur.close()
con.close()

cut =jieba.lcut(text)
cut = [w for w in cut if w not in stopWords]
string=' '.join(cut)

img=Image.open(r'.\static\assets\img\tree.jpg')
img_array=np.array(img)
wc=WordCloud(
    background_color='white',
    mask=img_array,
    font_path="STXINGKA.TTF"
)
wc.generate_from_text(string)

#绘制图片
fig =plt.figure(1)
plt.imshow(wc)
plt.axis('off')#是否显示坐标轴

plt.show()

 

  • 20
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值