百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Python之jieba分词使用技巧

bigegpt 2024-09-10 11:17 62 浏览

jieba库支持三种分词模式:精确模式、全模式和搜索引擎模式

下面是三种模式的特点:

  • 精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析
  • 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据
  • 搜索引擎模式:在精确模式的基础上,对长词再次进行切分

三种模式的使用方式:

seg_str = "好好学习,天天向上。"
print('精确模式:{}'.format(jieba.lcut(seg_str))) # 精确模式,返回一个列表类型的结果
print('全模式:{}'.format(jieba.lcut(seg_str, cut_all=True))) # 全模式,使用 'cut_all=True' 指定
print('搜索引擎模式:{}'.format(jieba.lcut_for_search(seg_str))) # 搜索引擎模式

执行结果:

精确模式:['好好学习', ',', '天天向上', '。']
全模式:['好好', '好好学', '好好学习', '好学', '学习', '', '', '天天', '天天向上', '向上', '', '']
搜索引擎模式:['好好', '好学', '学习', '好好学', '好好学习', ',', '天天', '向上', '天天向上', '。']

使用jieba分词统计中文词频示例

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

txt = """七禽孟获三国中期,蜀国占据西蜀一带,这时南方孟获作乱。诸葛亮出征南蛮孟获,为了收买人心,七次俘获孟获而又其次将其释放。第七次释放孟获的时候,孟获终于归顺蜀国,诸葛亮平定了南方。
空城计三国中后期,诸葛亮出兵讨伐魏国,由于要地街亭失守,导致满盘皆输。诸葛亮被迫撤兵,司马懿大军追至,这时孔明手下的将领士兵基本都分配军务调完了,只剩二千五百军在城中。于是他命令偃旗息鼓,大开城门,独自在城楼上弹琴。司马懿疑心有伏兵。调头就撤兵。诸葛亮躲过一劫!
失街亭就是在空城计之前了,马谡自告奋勇去守街亭,结果犯了低级错误。被司马懿打败。蜀军被断了咽喉之路。被迫撤兵。
斩马谡马谡失了街亭。诸葛亮非常生气。想起了刘备临死前嘱咐他的话“吾观马谡,言过其实也”。后悔不已。悲痛了斩了立了军令状的马谡。
"""


def jieba_example():
    # 统计中文词频
    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)  # 根据词语出现的次数进行从大到小排序
    print('统计中文词频:{}'.format(items))


if __name__ == '__main__':
    jieba_example()

执行结果:

统计中文词频:[('孟获', 6), ('诸葛亮', 6), ('街亭', 3), ('撤兵', 3), ('司马懿', 3), ('马谡', 3), ('三国', 2), ('蜀国', 2), ('这时', 2), ('南方', 2), ('释放', 2), ('空城计', 2), ('被迫', 2), ('七禽', 1), ('中期', 1), ('占据', 1), ('西蜀', 1), ('一带', 1), ('作乱', 1), ('出征', 1), ('南蛮', 1), ('为了', 1), ('收买人心', 1), ('七次', 1), ('俘获', 1), ('其次', 1), ('第七次', 1), ('时候', 1), ('终于', 1), ('归顺', 1), ('平定', 1), ('中后期', 1), ('出兵', 1), ('讨伐', 1), ('魏国', 1), ('由于', 1), ('失守', 1), ('导致', 1), ('满盘皆输', 1), ('大军', 1), ('追至', 1), ('孔明', 1), ('手下', 1), ('将领', 1), ('士兵', 1), ('基本', 1), ('分配', 1), ('军务', 1), ('调完', 1), ('二千五百', 1), ('军在', 1), ('城中', 1), ('于是', 1), ('命令', 1), ('偃旗息鼓', 1), ('大开', 1), ('城门', 1), ('独自', 1), ('城楼', 1), ('弹琴', 1), ('疑心', 1), ('伏兵', 1), ('调头', 1), ('躲过一劫', 1), ('失街亭', 1), ('就是', 1), ('之前', 1), ('自告奋勇', 1), ('结果', 1), ('低级', 1), ('错误', 1), ('打败', 1), ('蜀军', 1), ('咽喉', 1), ('斩马谡', 1), ('非常', 1), ('生气', 1), ('想起', 1), ('刘备', 1), ('临死前', 1), ('嘱咐', 1), ('的话', 1), ('观马谡', 1), ('言过其实', 1), ('后悔不已', 1), ('悲痛', 1), ('军令状', 1)]

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...