【Python】数据分析与可视化——文本数据分析

文本数据分析是指对文本数据进行收集、清理、加工和分析的过程,旨在从大量的文本信息中抽取有用的信息和知识

1. 数据收集

使用如Python中的BeautifulSoup库进行网络爬虫,寻找并下载网页上的文本内容

2. 数据清洗

在收集到文本数据后,通常需要进行数据清洗,以去除文本中的噪声数据,如去除特殊字符、标点符号、HTML标签等

3. 数据处理

分词

将文本分割成一个个独立的词语

 # 文本预处理:分词、去除标点和停用词seg_list = jieba.cut(text, cut_all=False)filtered_words = [word for word in seg_list if word not in stopword_list an word.strip().isalnum()]filtered_text = ' '.join(filtered_words)

去除停用词

# 加载停用词列表
with open("./stopwords.txt", encoding='gb18030') as f:stopword_list = set(line.strip() for line in f.readlines())

常见的停用词列表如下:

中文停用词表; 哈工大停用词表; 百度停用词表; 机器智能实验室停用词库

链接:https://pan.baidu.com/s/1wb3CdvL-OOWsveKzfkG8og?pwd=0oq7 提取码:0oq7

词向量转化

将文本中的词语转换成数值向量表示,常见的方法有词袋模型、TF-IDF和Word2Vec等。

TF-IDF:
from sklearn.feature_extraction.text import TfidfVectorizer
# 初始化TfidfVectorizer  
vectorizer = TfidfVectorizer()  # 使用fit_transform方法将文本数据转换为TF-IDF矩阵  
X = vectorizer.fit_transform(documents) # 输出TF-IDF矩阵
print("TF-IDF矩阵:\n", X.toarray())
词袋模型
from sklearn.feature_extraction.text import CountVectorizer
# 初始化CountVectorizer  
vectorizer = CountVectorizer()  # 使用fit_transform方法将文本数据转换为词频矩阵  
X = vectorizer.fit_transform(documents) # 输出词频矩阵  
print("词频矩阵:\n", X.toarray())  
Word2Vec
  • 提出者:由Google公司于2013年提出。
  • 架构
    • CBOW(Continuous Bag of Words):通过上下文预测目标词语。
    • Skip-gram:通过目标词语预测上下文。
  • 特点:能够生成高维稠密的词向量,更好地保留词语的语义信息

文本特征提取

从文本中提取出有用的特征,例如提取关键词词频,绘制词云,生成面板数据,计算余弦相似度等

文本挖掘统计词频完整代码如下所示:

import os
import jieba
import collections
import pandas as pd
import re# 设置文件夹路径
base_dir = 'processed_data'# 用于存储所有文件的词频
word_freq = collections.Counter()def is_valid_word(word):# 排除空格、单个字符、数字等if len(word) == 1 or word.isdigit() or not re.match(r'[\u4e00-\u9fa5]+', word):  # 只保留中文字符return Falsereturn True# 遍历文件夹和文件
for root, dirs, files in os.walk(base_dir):for file in files:if file.endswith('.txt'):file_path = os.path.join(root, file)with open(file_path, 'r', encoding='utf-8') as f:content = f.read()# 使用jieba进行分词words = jieba.cut(content, cut_all=False)# 筛选有效的词语并更新全局词频计数器for word in words:if is_valid_word(word):word_freq.update([word])# 对词频进行排序,这里选择前1000个高频词
top_words = word_freq.most_common(1000)# 将高频词及其词频转换为DataFrame
df = pd.DataFrame(top_words, columns=['Word', 'Frequency'])# 写入Excel文件
df.to_excel('words.xlsx', index=False)

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

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

相关文章

嵌入式linux sqlite3读写demo

以下是一个简单的C语言程序&#xff0c;使用SQLite数据库进行读写操作的示例。请确保您已经安装了SQLite3库。 #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> static int callback(void *NotUsed, int argc, char **argv, char **azColNam…

ActiveAnno3D采用主动学习实现领域自适应,实现大规模数据集的快速标注(代码开源)

Abstract 大规模数据集的策划仍然成本高昂且需要大量时间和资源。数据通常需要手动标注&#xff0c;创建高质量数据集的挑战依然存在。在这项工作中&#xff0c;我们使用主动学习填补了多模态3D目标检测研究的空白。我们提出了ActiveAnno3D&#xff0c;这是一种主动学习框架&a…

前端引用vue/element/echarts资源等引用方法Blob下载HTML

前端引用下载vue/element/echarts资源等引用方法 功能需求 需求是在HTML页面中集成Vue.js、Element Plus&#xff08;Element UI的Vue 3版本&#xff09;、ECharts等前端资源&#xff0c;使用Blob下载HTML。 解决方案概述 直接访问线上CDN地址&#xff1a;简单直接&#xff0c…

(c++数组02) 双指针 滑动窗口

977、有序数组的平方 双指针思路&#xff1a;两个指针分别从数组两端开始遍历 class Solution { public:vector<int> sortedSquares(vector<int>& nums) {vector<int> answer(nums.size(), 0);int left 0;int right nums.size() - 1;int k nums.siz…

【踩坑】修复报错Cannot find DGL libdgl_sparse_pytorch_2.2.0.so

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 错误复现 原因分析 解决方法 错误复现 import dgldataset dgl.data.CoraGraphDataset() graph dataset[0] graph.adjacency_matrix() 原因分…

centos通过官网下载安装最新版mysql方案

官网下载步骤&#xff1a; 点击DOCUMENTATION mysql的yum仓库Using the MySQL Yum Repository 向下翻&#xff0c;查看安装命令 点击下载mysql安装包 下载对应的版本 不注册&#xff0c;直接下载社区版 下载好的安装包 安装步骤&#xff1a; 把rpm包导入到服务器…

ConsiStory:无需训练的一致性文本到图像生成技术

随着大规模文本到图像&#xff08;T2I&#xff09;扩散模型的发展&#xff0c;用户可以更自由地通过文本指导图像生成过程。然而&#xff0c;要在不同的提示中保持同一主题的视觉一致性仍然是一个挑战。现有的方法通常需要对模型进行微调或预训练&#xff0c;以教授新词汇来描述…

2.2.1 ROS2案例以及案例分析

1.案例需求 需求1&#xff1a;编写话题通信实现&#xff0c;发布方以某个频率发布一段文本&#xff0c;订阅方订阅消息&#xff0c;并输出在终端。 需求2&#xff1a;编写话题通信实现&#xff0c;发布方以某个频率发布自定义接口消息&#xff0c;订阅方订阅消息&#xff0c;并…

在docker配置Nginx环境配置

应用于商业模式集中&#xff0c;对于各种API的调用&#xff0c;对于我们想要的功能进行暴露&#xff0c;对于不用的进行拦截进行鉴权。用于后面的付费 开发环境 正式上线模式 一、常用命令 停止&#xff1a;docker stop Nginx重启&#xff1a;docker restart Nginx删除服务&a…

Liunx网络配置

文章目录 一、查看网络配置永久修改网卡临时修改网卡 二、查看主机名称 hostname三、查看路由表条目 route四、查看网络连接情况netstat五、获取socket统计信息ss六、查看当前系统中打开的文件和进程的工具lsof七、测试网络连通性ping八、跟踪数据包 traceroute九、域名解析 ns…

emacs 重新加载磁盘上的文件

------------------------------------------------------------ author: hjjdebug date: 2024年 07月 04日 星期四 14:05:25 CST descriptor: emacs 重新加载磁盘上的文件 ------------------------------------------------------------ 当我们修改了磁盘上文件&#xff0c;…

【vmbox centos7 网络配置】【centos7 glances 安装】【centos7 安装MySQL5.7】

文章目录 vmbox centos7 网络配置centos7 修改镜像地址centos7 安装 glancesCentOS 7 上安装 MySQL 5.7 并进行基本的安全配置使用 firewalld 开放 3306 端口 可以远程连接mysql vmbox centos7 网络配置 目前 能组建集群 虚拟机网络互通&#xff0c;虚拟机能访问外网 创建一个…

运维监控平台持续改进方案

一、方案目标 本方案旨在构建一个高效、全面的运维监控平台&#xff0c;通过持续改进和整合&#xff0c;确保数据中心机房内各类设备的稳定运行&#xff0c;提升运维效率&#xff0c;降低故障风险&#xff0c;并为企业提供优质的IT服务。 二、全面监控关键设备 为了实现全面监…

Java中的内存泄漏分析与排查技巧

Java中的内存泄漏分析与排查技巧 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 内存泄漏的定义与影响 在Java应用程序开发中&#xff0c;内存泄漏是指程序中…

FlinkCDC-3.1.1 DataStream Source

问题&#xff1a; Caused by: java.lang.ClassNotFoundException: org.apache.flink.table.catalog.ObjectPath 解决&#xff1a; 在poml文件中&#xff0c;导入的flink-table依赖把“ <scope>”去掉 <properties><maven.compiler.source>8</maven.compi…

链串算法库构建

学习贺利坚老师链串算法库 数据结构之自建算法库——链串_串数据结构-CSDN博客 本人详细解析博客 串的链式存储及其基本操作实现_串链式存储的操作-CSDN博客 版本更新日志 V1.0 : 结合顺序串操作, 使用链串进行优化, 此次链串, 空间将不受限制, 只写了最基本的操作, 相当于 单链…

地级市空气质量指数AQI、环境污染PM2.5、SO2

2015-2021年地级市月度空气质量数据&#xff08;AQI、SO2、NO2、PM2.5、PM10、O3、CO&#xff09; 目录 探究环境污染对经济增长的影响 一、引言 二、数据来源与描述性统计 三、实证模型 &#xff08;一&#xff09;模型设定 &#xff08;二&#xff09;变量说明 四、程…

右键点击树组件中的节点,弹出增删改的菜单,要求菜单总是在点击位置的附近

目标 右键点击树组件中的节点&#xff0c;弹出增删改的菜单&#xff0c;要求菜单总是在点击位置的附近先添加一个树 <template><div><el-tree<!-- 绑定数据 -->:data"tree"highlight-currentnode-key"id":props"{children: chil…

经典递归分析

在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题. 如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse. 阶乘(…

数据库查询:通过两字段其中一个查询信息

根据姓名Name或者编号Code获取Student信息 一、SQL语句 select * from student_info where concat(ifnull(student_code,),ifnull(student_name,))like concat(% ,具体姓名或学号,%) 二、MyBatis的XML映射代码定义了一个查询方法 <select id"selectStudentByNameOr…