当前位置: 首页 > news >正文

自然语言处理之jieba分词和TF-IDF分析

jieba分词和TF-IDF分析

目录

  • jieba分词和TF-IDF分析
    • 1 jieba
      • 1.1 简介
      • 1.2 终端下载
      • 1.3 基本语法
    • 2 TF-IDF分析
      • 2.1 什么是语料库
      • 2.2 TF
      • 2.3 IDF
      • 2.4 TF-IDF
      • 2.5 函数导入
      • 2.6 方法
    • 3 实际测试
      • 3.1 问题解析
      • 3.2 代码测试

1 jieba


1.1 简介

结巴分词(Jieba)是一个广泛使用的中文分词Python库,它支持多种分词模式,并且可以添加自定义词典来提高分词的准确性。

1.2 终端下载

pip install jieba

1.3 基本语法

  • jieba.lcut(sentence=切分语句变量),会根据自带的词典进行切分
  • jieba.add_word(‘词句’),添加词句到词典,之后会以此切分
  • jieba.load_userdict(‘文件’),文件添加到词典,文件需要一词一行

代码展示:

import jieba
w1 = '我们在学习python办公自动化'
w2 = jieba.lcut(sentence=w1)
print(w2)
jieba.add_word('python办公自动化')
w3 = jieba.lcut(sentence=w1)
print(w3)
w4 = '我在想你,在今天的风里。'
w5 = jieba.lcut(sentence=w4)
print(w5)
jieba.load_userdict(r'.\dic.txt')
w4 = '我在想你,在今天的风里。'
w6 = jieba.lcut(sentence=w4)
print(w6)

运行结果:

在这里插入图片描述

2 TF-IDF分析


2.1 什么是语料库

(1)语料库中存放的是在语言的实际使用中真实出现过的语言材料;
(2)语料库是以电子计算机为载体承载语言知识的基础资源;
(3)真实语料需要经过加工(分析和处理),才能成为有用的资源。

2.2 TF

指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数),以防止它偏向长的文件。
TF=某个词在文章中的出现次数/文章总词数

2.3 IDF

逆向文档频率。IDF的主要思想是:如果包含词条t的文档越少,IDF越大,则说明词条具有很好的类别区分能力。
IDF=log(语料库文档总数/(含该词条的文档数+1))

2.4 TF-IDF

TF-IDF倾向于过滤掉常见的词语,保留重要的词语。TF-IDF越高,越重要。
TF -IDF = 词频(TF)x 逆文档频率(IDF)

2.5 函数导入

from sklearn.feature_extraction.text import TfidfVectorizer

2.6 方法

  • tfi =TfidfVectorizer()引用函数
  • tfi.fit_transform(words),按顺序获取文章词汇的TF-IDF
  • tfi.get_feature_names_out(),按顺序切分的文章词汇

3 实际测试


3.1 问题解析

数据如下,其中一行为一篇文章,词汇顺序非文章顺序,而是词汇排列顺序。
在这里插入图片描述

3.2 代码测试

代码展示:

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizerf = open('task2_1.txt')
words = f.readlines()tfi =TfidfVectorizer()
tfi_words = tfi.fit_transform(words)
print(tfi_words)
wordslist = tfi.get_feature_names_out()
print(wordslist)
df = pd.DataFrame(tfi_words.T.todense(),index=wordslist)
print(df)
featurelist = df.iloc[:,5].to_list()res = {}
for i in range(0,len(wordslist)):res[wordslist[i]] = featurelist[i]
res = sorted(res.items(),key=lambda x:x[1],reverse=True)
print(res)
print(res[2])

运行结果:

在这里插入图片描述

相关文章:

自然语言处理之jieba分词和TF-IDF分析

jieba分词和TF-IDF分析 目录 jieba分词和TF-IDF分析1 jieba1.1 简介1.2 终端下载1.3 基本语法 2 TF-IDF分析2.1 什么是语料库2.2 TF2.3 IDF2.4 TF-IDF2.5 函数导入2.6 方法 3 实际测试3.1 问题解析3.2 代码测试 1 jieba 1.1 简介 结巴分词(Jieba)是一个…...

探索式测试

探索式测试是一种软件测试风格,它强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试学习、测试设计、测试执行和测试结果分析作为相互支持的活动,在整个项目实现过程中并行地执行。 选择合适的探索式测试方法我…...

服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例

服务器数据恢复环境&故障: 一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务器操作系统无法启动,ORACLE数据库也无法启动。 服…...

ISP各模块功能介绍

--------声明,本文为转载整理------- ISP各个模块功能介绍: 各模块前后效果对比: 黑电平补偿(BLC) 在理想情况下,没有光照射的像素点其响应值应为0。但是,由于杂质、受热等其它原因的影响&…...

Python 数据建模完整流程指南

在数据科学和机器学习中,建模是一个至关重要的过程。通过有效的数据建模,我们能够从原始数据中提取有用的洞察,并为预测或分类任务提供支持。在本篇博客中,我们将通过 Python 展示数据建模的完整流程,包括数据准备、建…...

深入学习RocketMQ

参考&#xff1a;RocketMQ从从入门到精通_rocketmq入门到精通-CSDN博客 1、消息的类型 普通消息 顺序消息 延时消息 批量消息 事务消息 2、在java中使用 2.1、pom.xml中加入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId…...

国产编辑器EverEdit - 扩展脚本:关闭所有未修改文档

1 扩展脚本&#xff1a;关闭所有未修改文档 1.1 应用场景 当用户打开过多文档时&#xff0c;部分文档已经修改&#xff0c;而大部分没有修改&#xff0c;为了减少在众多已打开文档中来回跳转的不便&#xff0c;可以将没有修改的文档全部关闭&#xff0c;但目前提供的快速关闭窗…...

数据结构二叉树-C语言

数据结构二叉树-C语言 1.树1.1树的概念与结构1.2树的相关术语1.3树的表示1.4树形结构实际运用场景 2.二叉树2.1概念与结构2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 2.3二叉树存储结构2.3.1顺序结构2.3.2链式结构 3.实现顺序结构的二叉树4.实现链式结构二叉树4.1前中后序遍…...

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8&#xff08;You Only Look Once&#xff09;和OpenCV实现车道线和车辆检测&#xff0c;目标是创建一个可以检测道路上的车道并识别车辆的系统&#xff0c;并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…...

代码随想录算法训练营第六十天|KM94.城市间货物运输Ⅰ|KM95.城市间货物运输Ⅱ|KM96.城市间货物运输Ⅲ

94. 城市间货物运输 I 2、Bellman_ford队列优化算法&#xff08;又名SPFA&#xff09; SPFA是对Bellman_ford算法的优化&#xff0c;由于Bellman_ford 算法 每次都是对所有边进行松弛&#xff0c;其实是多做了一些无用功。其实只需要对 上一次松弛的时候更新过的节点作为出发节…...

人工智能学习路线全链路解析

一、基础准备阶段&#xff08;预计 2-3 个月&#xff09; &#xff08;一&#xff09;数学知识巩固与深化 线性代数&#xff08;约 1 个月&#xff09;&#xff1a; 矩阵基础&#xff1a;回顾矩阵的定义、表示方法、矩阵的基本运算&#xff08;加法、减法、乘法&#xff09;&…...

C++语言的学习路线

C语言的学习路线 C是一种强大的高级编程语言&#xff0c;广泛应用于系统软件、游戏开发、嵌入式系统和高性能应用等多个领域。由于其丰富的功能和灵活性&#xff0c;C是一门值得深入学习的语言。本文旨在为初学者制定一条系统的学习路线&#xff0c;帮助他们循序渐进地掌握C语…...

用于与多个数据库聊天的智能 SQL 代理问答和 RAG 系统(3) —— 基于 LangChain 框架的文档检索与问答功能以及RAG Tool的使用

介绍基于 LangChain 框架的文档检索与问答功能&#xff0c;目标是通过查询存储的向量数据库&#xff08;VectorDB&#xff09;&#xff0c;为用户的问题检索相关内容&#xff0c;并生成自然语言的答案。以下是代码逻辑的详细解析&#xff1a; 代码结构与功能 初始化环境与加载…...

20250110doker学习记录

1.本机创建tts环境。用conda. 0.1安装。我都用的默认&#xff0c;你也可以。我安装过一次&#xff0c;如果修复&#xff0c;后面加 -u bash Anaconda3-2024.10-1-Linux-x86_64.sh等待一会。 (base) ktkt4028:~/Downloads$ conda -V conda 24.9.2学习资源 Conda 常用命令大…...

MPU6050: 卡尔曼滤波, 低通滤波

对于MPU6050(一种集成了三轴加速度计和三轴陀螺仪的惯性测量单元),对加速度值进行卡尔曼滤波,而对角速度进行低通滤波的选择是基于这两种传感器数据的不同特性和应用需求。以下是详细解释: 加速度值与卡尔曼滤波 为什么使用卡尔曼滤波? 噪声抑制: 加速度计信号通常包含…...

C++的标准和C++的编译版本

C的标准和C的编译版本&#xff1a;原理和概念 理解 C标准 和 C编译版本 的关系是学习 C 的一个重要部分。这两者虽然看似相关&#xff0c;但实际上分别涉及了不同的概念和技术。下面将通过层次清晰的解释&#xff0c;帮助新手理解这两个概念的差异、特点及其相互关系。 一、C标…...

python学习笔记—17—数据容器之字符串

1. 字符串 (1) 字符串能通过下标索引来获取其中的元素 (2) 旧字符串无法修改特定下标的元素 (3) index——查找字符串中任意元素在整个字符串中的起始位置(单个字符或字符串都可以) tmp_str "supercarrydoinb" tmp_position1 tmp_str.index("s") tmp_p…...

UE5 使用内置组件进行网格切割

UE引擎非常强大&#xff0c;直接内置了网格切割功能并封装为蓝图节点&#xff0c;这项功能在UE4中就存在&#xff0c;并且无需使用Chaos等模块。那么就来学习下如何使用内置组件实现网格切割。 1.配置测试用StaticMesh 对于被切割的模型&#xff0c;需要配置一些参数。以UE5…...

51单片机——串口通信(重点)

1、通信 通信的方式可以分为多种&#xff0c;按照数据传送方式可分为串行通信和并行通信&#xff1b; 按照通信的数据同步方式&#xff0c;可分为异步通信和同步通信&#xff1b; 按照数据的传输方向又可分为单工、半双工和全双工通信 1.1 通信速率 衡量通信性能的一个非常…...

Taro+Vue实现图片裁剪组件

cropper-image-taro-vue3 组件库 介绍 cropper-image-taro-vue3 是一个基于 Vue 3 和 Taro 开发的裁剪工具组件&#xff0c;支持图片裁剪、裁剪框拖动、缩放和输出裁剪后的图片。该组件适用于 Vue 3 和 Taro 环境&#xff0c;可以在网页、小程序等平台中使用。 源码 https:…...

告别轮询!用STM32CubeMX和DMA实现ADC多通道‘无感’采集与串口打印(附完整工程)

告别轮询&#xff01;STM32CubeMX与DMA实现ADC多通道无感采集实战指南 在嵌入式开发中&#xff0c;数据采集系统的效率往往决定了整个应用的性能上限。传统轮询方式不仅消耗大量CPU资源&#xff0c;还会引入不可预测的延迟。想象一下&#xff0c;当你需要同时监测多个环境传感器…...

别再只用JSON了!聊聊Qt里QDataStream的二进制序列化优势与避坑指南

二进制序列化新选择&#xff1a;Qt中QDataStream的高效实践与深度解析 在Qt开发者的工具箱里&#xff0c;JSON和XML常被视为数据交换的默认选择&#xff0c;但当面对高性能、紧凑存储或跨版本兼容性需求时&#xff0c;二进制序列化方案往往能带来意想不到的优势。QDataStream作…...

搞懂专业代剪辑,才能看懂好视频背后的逻辑

为什么你拍的素材总剪不出‘电影感’&#xff1f; 你是否也经历过这样的困扰&#xff1a;婚礼当天拍了上百G的高清素材&#xff0c;回家却剪不出那支朋友圈点赞破百的高光快剪&#xff1b;或是为新品拍摄了完整开箱视频&#xff0c;上传后播放量寥寥&#xff1f;问题往往不在拍…...

Linux Shell生成随机文件:dd、openssl等工具实战与性能优化

1. 项目概述&#xff1a;为什么我们需要一个“随机”的固定大小文件&#xff1f;在日常的系统管理、开发测试&#xff0c;甚至是性能基准评测中&#xff0c;我们经常会遇到一个看似简单却非常实用的需求&#xff1a;快速生成一个指定大小的文件&#xff0c;并且希望文件内容是随…...

Arduino步进电机控制:按键调速与定时器中断实现

1. 项目概述与核心需求解析最近在捣鼓一个自动化小装置&#xff0c;核心需求就是通过几个物理按键来控制步进电机的动作&#xff0c;比如正转、反转、加速、减速或者停止。这听起来像是很多创客项目、小型自动化设备或者教学演示里最基础的一环。我猜你可能是电子爱好者、学生&…...

这几家有机膨润土厂家口碑稳定,你选对了吗?

在工业与新材料领域&#xff0c;有机膨润土作为一种关键的功能性添加剂&#xff0c;正从“幕后”走向“台前”。无论是涂料、油墨的流变控制&#xff0c;还是钻井液、润滑脂的耐温需求&#xff0c;又或是农药、兽药的载体优化&#xff0c;它的身影无处不在。然而&#xff0c;面…...

赛事直播预告|高含金量智能车竞赛,邀你逐梦无人驾驶赛道!

简 介&#xff1a; 第二十一届全国大学生智能汽车竞赛创意组"智慧城市Robotaxi挑战赛"即将启动。作为教育部认可的A类国家级学科竞赛&#xff0c;赛事聚焦纯视觉无人驾驶技术&#xff0c;依托百度多模态能力与边缘AI算力&#xff0c;考验参赛者的视觉、语言、执行融合…...

Arm Cortex-A715向量计算优化指南:ASIMD/SVE指令深度解析

1. Cortex-A715向量计算引擎深度解析在移动计算和嵌入式领域&#xff0c;Arm Cortex-A715作为最新一代高性能CPU核心&#xff0c;其向量计算能力直接决定了AI推理、图像处理等关键场景的性能表现。本文将深入剖析A715的ASIMD/SVE指令集架构设计&#xff0c;从底层硬件机制到实际…...

UE5动画进阶:用Control Rig的Aim节点,5分钟搞定角色头部平滑跟随任意Actor

UE5动画进阶&#xff1a;Control Rig的Aim节点实现角色头部动态跟随 在游戏开发中&#xff0c;角色与环境的动态交互是提升沉浸感的关键要素之一。想象一个场景&#xff1a;NPC能够自然地跟随玩家的移动而转动头部&#xff0c;或是怪物精准锁定目标时的头部动作——这些细节往往…...

RTSP拉流播放器开发实战:用FFmpeg和SDL2解析H264 RTP流

RTSP拉流播放器开发实战&#xff1a;用FFmpeg和SDL2解析H264 RTP流 在实时视频监控、在线直播等场景中&#xff0c;RTSP协议因其低延迟和可靠性成为主流选择。本文将深入探讨如何从零构建一个RTSP客户端播放器&#xff0c;重点解决H264 RTP流的接收、解析与渲染难题。不同于简单…...