Python 数据分析的敲门砖 jieba模块中文分词

news/发布时间2024/9/20 7:55:25

文章目录

      • 文章开篇
      • Jieba简介
      • 使用场景
      • jieba的引用
      • jieba常用的方法
        • 1.精确模式分词
        • 2.搜索引擎模式分词
        • 3.添加新词
        • 4.调整词频
        • 5.提取关键词
      • 应用案例
      • 总结

文章开篇

Python的魅力,犹如星河璀璨,无尽无边;人生苦短、我用Python!


Jieba简介

jieba 是一个用于中文文本分词的 Python 库。
它能够将一整段中文文本切分成有意义的词语或短语
分词是中文**自然语言处理(NLP)**中非常重要的一步,因为中文句子中的词与词之间不像英文那样有明确的空格分隔,所以需要专门的工具来进行分词。


使用场景

在文本分析中,可能需要知道文本中哪些词或短语出现的频率最高,或者文本的主题是什么。
在情感分析中,分词可以帮助你识别文本中的关键词或短语,进而判断文本的情感倾向
在机器翻译时,源语言和目标语言都需要进行分词,以便将文本转换成机器可以理解的格式
在搜索引擎中,需要对输入的查询内容进行分词,以便更好地理解用户的意图,并返回相关的搜索结果。


jieba的引用

jieba属于第三方模块,使用前需要额外下载安装

pip install jieba

下载安装完成后,即可导入使用

import jieba

jieba常用的方法


1.精确模式分词

jieba.cut(sentence, cut_all=False):核心函数,用于将中文文本切分成词语;
sentence 是要分词的文本
cut_all 是一个可选参数,默认为False;

  • 当它为 True 时,使用全模式进行分词;
  • 当为 False 时,使用精确模式进行分词;

返回值是一个生成器,包含了分词后的结果

import jiebasentence = "你的男朋友是个盖世垃圾,将会脚踏七彩祥云迎娶你的闺蜜"
seg_list = jieba.cut(sentence, cut_all=True)
print("模糊模式分词结果:", "/ ".join(seg_list)) # 模糊模式分词结果: 你/ 的/ 男朋友/ 朋友/ 是/ 个/ 盖世/ 垃圾/ ,/ 将/ 会/ 脚踏/ 七彩/ 祥云/ 迎娶/ 你/ 的/ 闺/ 蜜seg_list = jieba.cut(sentence, cut_all=False)
print("精确模式分词结果:", "/ ".join(seg_list)) # 精确模式分词结果: 你/ 的/ 男朋友/ 是/ 个/ 盖世/ 垃圾/ ,/ 将会/ 脚踏/ 七彩/ 祥云/ 迎娶/ 你/ 的/ 闺蜜

2.搜索引擎模式分词

jieba.cut_for_search(sentence):用于搜索引擎的分词模式,适合短文本分词;
返回值是一个生成器,包含了分词后的结果;

import jiebasentence = "今天的天气很糟糕"
seg_list = jieba.cut_for_search(sentence)print("搜索引擎模式分词结果:", "/ ".join(seg_list))   # 搜索引擎模式分词结果: 今天/ 的/ 天气/ 很/ 糟糕

3.添加新词

jieba.add_word(word, freq=None, tag=None):用于向 jieba 的词典中添加新词;
word 是要添加的新词
freq 是可选参数,表示该词的出现频率
tag 是可选参数,表示该词的词性

import jieba# 使用新词进行分词
sentence = "网络热词公主请上车"
seg_list = jieba.cut(sentence, cut_all=False)print("分词结果:", "/ ".join(seg_list)) # 分词结果: 网络/ 热词/ 公主/ 请/ 上车# 添加新词到词典
jieba.add_word("公主请上车", 20)
seg_list = jieba.cut(sentence, cut_all=False)print("分词结果包含新词:", "/ ".join(seg_list)) # 分词结果包含新词: 网络/ 热词/ 公主请上车

4.调整词频

jieba.suggest_freq(segment, tune=True):调整单个词语的词频,使其能(或不能)被分出来。
segment 是要调整词频的词语。
tune 是一个可选参数,当为 True 时,调整词频后,会立即更新词典;当为 False 时,不更新词典。

import jiebasentence = "天蚕土豆是一个网文作者"
seg_list = jieba.cut(sentence, cut_all=False)
print("分词结果:", "/ ".join(seg_list)) # 分词结果: 天蚕/ 土豆/ 是/ 一个/ 网文/ 作者# 调整词频,使得"调整"可以被切分出来
jieba.suggest_freq("天蚕土豆", True)seg_list = jieba.cut(sentence, cut_all=False)
print("分词结果包含调整词频后的词:", "/ ".join(seg_list))    # 分词结果包含调整词频后的词: 天蚕土豆/ 是/ 一个/ 网文/ 作者

5.提取关键词

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()):用于文本关键词提取。
sentence 是要提取关键词的文本。
topK 是可选参数,表示返回关键词的个数。
withWeight 是可选参数,当为 True 时,返回关键词及其权重;当为 False 时,只返回关键词。
allowPOS 是可选参数,用于指定需要提取的关键词的词性。

import jieba.analysetext = "今天天气非常的糟糕,我不喜欢阴雨天"
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
print("关键词提取结果:", keywords) # 关键词提取结果: [('今天天气', 2.4582479479), ('阴雨天', 2.3196185118), ('糟糕', 1.6664666296419999), ('喜欢', 1.140517680604), ('非常', 0.9806566012679999)]

应用案例

import jieba.posseg as pseg# 示例文本
text = "这部电影真的很好看,演员演技出色,剧情也很吸引人。"# 使用jieba进行词性标注
words = pseg.cut(text)# 情感分析(简单示例,实际应用可能需要复杂的模型)
sentiment = 0  # 初始情感分数
for word, flag in words:if 'n' in flag:  # 名词可能包含情感信息sentiment += 1elif 'd' in flag:  # 副词可能加强或减弱情感sentiment += 2 if word in ['非常', '十分', '特别', '极其'] else -1# 根据情感分数判断情感倾向
if sentiment > 0:print("正面情感")
elif sentiment < 0:print("负面情感")
else:print("中性情感")

总结

使用jieba库可以轻松地对中文文本进行分词和词频统计,展现文本中的高频词汇。
然而,jieba库的功能远不止于此,它还包括词性标注、关键词提取等,是一个功能强大的中文分词第三方库,广泛应用于自然语言处理任务中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/AdDD/9525.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)

背景&#xff1a; 想要复现一个项目&#xff0c;建立好虚拟环境后&#xff0c;准备安装项目需要的包&#xff0c;故输入命令pip install -r requirements.txt requirements.txt如下图 其他包我都安装成功了&#xff0c;只有最后一个包失败了&#xff0c;是需要服务器git链接…

Nginx 常用的基础配置(前端相关方面)

Nginx是一款高性能的Web服务器和反向代理服务器&#xff0c;广泛应用于互联网领域。作为一名前端同学&#xff0c;了解并掌握Nginx的配置是非常有必要的。 安装Nginx sudo apt-get update sudo apt-get install nginx查看Nginx版本 nginx -v启动、停止、重启Nginx服务 sudo …

HTTPS 原理和常见面试题及解析

在互联网安全领域&#xff0c;HTTPS 是一个非常重要的协议&#xff0c;也是很多技术岗位面试中经常涉及的话题。下面我们来看一些关于 HTTPS 的常见面试题及答案解析。 ## 1. 什么是 HTTPS&#xff1f; **答案&#xff1a;** HTTPS 是 Hypertext Transfer Protocol Secure&am…

如何使用Docker部署IT-Tools并结合内网穿透实现公网访问本地工具箱服务

作为程序员&#xff0c;在日常工作中&#xff0c;需要借助一些工具来提高我们工作效率&#xff0c;IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能&#xff0c;使开发者能以更高效方式完成任务。经由IT-Tools&#xff0c;开发人员能轻松应对各类技术挑战&…

创新之巅 健康之选 森歌集成灶智能水洗新揭秘

2024年2月27日&#xff0c;一场引领智能厨电风潮的盛会在杭州隆重召开。森歌集成灶以“勠力同心 共生共歌”为主题&#xff0c;成功举办了2024森歌智能厨电优秀经销商峰会。此次峰会上&#xff0c;森歌集成灶发布了令人瞩目的奥运冠军同款智能厨电新品——森歌鲸洗小灶Z60&…

JavaWeb之 创建 Web项目,使用Tomcat 部署项目,使用 Maven 构建Web项目(一万八千字详解)

目录 前言3.1 Tomcat 简介3.1.1 什么是 Web服务器3.1.2 Tomcat 是什么3.1.3 小结 3.2 Tomcat 的基本使用3.2.1 下载 Tomcat3.2.2 安装 Tomcat3.2.3 卸载 Tomcat3.2.4 启动 Tomcat3.2.5 关闭 Tomcat3.2.6 配置 Tomcat3.2.7 在 Tomcat 中部署 Web项目 3.3 在 IDEA 中创建 Web 项目…

stm32——hal库学习笔记(IIC)

一、IIC总线协议介绍&#xff08;掌握&#xff09; 二、AT24C02介绍&#xff08;了解&#xff09; 三、AT24C02读写时序&#xff08;掌握&#xff09; 四、AT24C02驱动步骤&#xff08;掌握&#xff09; 五、编程实战&#xff08;掌握&#xff09; myiic.c #include "./B…

MATLAB环境下基于稀疏最大谐波噪声比反卷积的信号处理方法

状态监测与故障诊断是保障机械设备安全、稳定运行的基础。滚动轴承是旋转机械的核心部件&#xff0c;其服役性能直接影响整台设备的运行安全。在测试的振动信号中&#xff0c;周期性冲击是滚动轴承发生故障的重要标志。因此&#xff0c;如何从振动信号中提取出与故障相关的周期…

对el-table表格的表头操作

效果1&#xff1a;单层表头合并 图示1&#xff1a; 说明&#xff1a; header-cell-style函数用于给表头添加样式&#xff0c;其返回的值会被添加到表头对应样式中去注意函数的形参中的column.id为单元格的class类大家最好打印一下&#xff0c;结合审查dom看类名 代码&#x…

在VMware中安装CentOS 7并配置Docker

VMware安装CentOS 7 一、介绍 该文章介绍如何使用启动U盘在虚拟机里面安装系统&#xff0c;虚拟机版本为VMware Workstation 16 pro&#xff0c;Linux版本为CentOS Linux release 7.9.2009 (Core)。 二、安装 1、创建虚拟机 点击创建新的虚拟机 选择典型就可以了&#xf…

uniapp生成app包引导用户开启通知权限和热更新

uniapp生成app包引导用户开启通知权限和热更新 引导用户开启通知权限 export function setPermissions() {// #ifdef APP-PLUS if (plus.os.name Android) {var main plus.android.runtimeMainActivity();var pkName main.getPackageName();var uid main.getApplicationI…

React Vite 构建工具如何查看代码占用体积

首先安装 Vite 中的 rollup-plugin-visualizer 插件 cnpm install rollup-plugin-visualizer 接着在你的 vite.config.ts 中引入并且使用到 plugins 中 import { visualizer } from "rollup-plugin-visualizer";export default defineConfig({plugins: [react(),vi…

【k8s 访问控制--认证与鉴权】

1、身份认证与权限 前面我们在操作k8s的所有请求都是通过https的方式进行请求&#xff0c;通过REST协议操作我们的k8s接口&#xff0c;所以在k8s中有一套认证和鉴权的资源。 Kubenetes中提供了良好的多租户认证管理机制&#xff0c;如RBAC、ServiceAccount还有各种策路等。通…

最新IE跳转Edge浏览器解决办法(2024.2.29)

最新IE跳转Edge浏览器解决办法&#xff08;2024.2.29&#xff09; 1.前言2. 解决方案2.1.创建快捷方式2.2.效果 3. 遗留问题 1.前言 在前几天我发布过一个关于使用卸载补丁从而解决最新的IE跳转Edge浏览器的解决方案。   但是这个方案其实存在一个BUG&#xff0c;例如我昨天重…

【算法 - 动态规划】找零钱问题Ⅲ

在前面的动态规划系列文章中&#xff0c;关于如何对递归进行分析的四种基本模型都介绍完了&#xff0c;再来回顾一下&#xff1a; 从左到右模型 &#xff1a;arr[index ...] 从 index 之前的不用考虑&#xff0c;只考虑后面的该如何选择 。范围尝试模型 &#xff1a;思考 [L ,…

React入门之React_使用es5和es6语法渲染和添加class

React入门 //react的核心库 <script src"https://cdn.jsdelivr.net/npm/react17/umd/react.development.js"></script> //react操作dom的核心库&#xff0c;类似于jquery <script src"https://cdn.jsdelivr.net/npm/react-dom17/umd/react-dom.…

程序媛的mac修炼手册-- 2024如何彻底卸载Python

啊&#xff0c;前段时间因为想尝试chatgpt的API&#xff0c;需要先创建一个python虚拟环境来安装OpenAI Python library. 结果&#xff0c;不出意外的出意外了&#xff0c;安装好OpenAI Python library后&#xff0c;因为身份认证问题&#xff0c;根本就没有获取API key的权限…

Linux:进度条的实现

使用工具的简单介绍&#xff1a; 在创建进度条之前&#xff0c;首先要明白两个工具&#xff0c;fflush 和 \r 。 \r 回车键的功能其实是两个&#xff0c;一个是换行&#xff0c;一个是回车。所谓换行就是将光标从这一行变到下一行中&#xff0c;且是垂直下落&#xff0c…

CCF-A类 实时系统研究顶会RTSS‘24 5月23日截稿!引领技术新风暴!

会议之眼 快讯 第45届RTSS (IEEE Real-Time Systems Symposium)即实时系统研讨会将于 2024 年 12月10日 -13日在英国约克举行&#xff01;RTSS作为实时系统领域的首要盛会&#xff0c;为研究人员和从业人员提供了展示全方位创新的平台&#xff0c;涵盖了理论、设计、分析、实施…

1 数据分析概述与职业操守

1、 EDIT数字化模型 E——exploration探索 &#xff08;是什么&#xff09; 业务运行探索&#xff1a;探索关注企业各项业务的运行状态、各项指标是否合规以及各项业务的具体数据情况等。 指标体系——目标&#xff08;O&#xff09;、策略&#xff08;S&#xff09;、指标&a…
推荐文章