jieba分词的简单上手教程

喜你入骨 提交于 2020-11-25 11:20:30

简介

jiaba分词是目前最好的Python中文分词组件。支持3种分词模式:精确模式、全模式、搜索引擎模式。

jieba的安装

在Pycharm中,File -> Setting -> Project interpreter -> Add。搜索jieba关键字,点击安装即可。前提是已经配置好了好用的软件源。

三种模式的简单示例

# -*- coding: utf-8 -*-
import jieba

seg_str = "好好学习,天天向上。"

print("/".join(jieba.lcut(seg_str)))    # 精简模式,返回一个列表类型的结果
print("/".join(jieba.lcut(seg_str, cut_all=True)))      # 全模式,使用 'cut_all=True' 指定 
print("/".join(jieba.lcut_for_search(seg_str)))     # 搜索引擎模式

分词效果如下:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\j00347382\AppData\Local\Temp\jieba.cache
好好学习/,/天天向上/。
好好/好好学/好好学习/好学/学习/,/天天/天天向上/向上/。
好好/好学/学习/好好学/好好学习/,/天天/向上/天天向上/。
Loading model cost 0.632 seconds.
Prefix dict has been built successfully.

jieba分词简单应用

需求:使用jieba分词对一个文本进行分词,统计次数出现最多的词语,这里以红楼梦为例子。

# -*- coding: utf-8 -*-
import jieba

txt = open(r"C:\Users\Downloads\《红楼梦》作者_曹雪芹_TXT.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(5):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

打印出的结果为:

宝玉    3647
什么    1596
----------------------- 1342
一个    1311
贾母    1189
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!