利用Python分析txt文本中的关键词频率与词汇和句子指标占比

在数据分析和自然语言处理的过程中,关键词的提取和统计是一个重要的步骤,特别是在分析政策文件、经济报告或其他涉及复杂信息的文本时。本文将介绍如何使用Python进行中文文本中的关键词统计,将关注政策相关和不确定性相关的关键词出现频率。通过这样的分析,可以揭示文本中政策导向和不确定性因素的分布情况,从而为进一步的经济分析和决策提供数据支持。

(一)Python分析文本中的不确定性关键词频率

工具与库的使用
本文使用了以下几个Python库:

jieba:一个强大的中文分词库,用于将连续的文本切分成词汇。
hanziconv:一个汉字转换库,用于在繁体字和简体字之间进行转换。
os:用于文件路径操作和读取文件。

分析步骤
(1)关键词定义:首先,定义政策相关和不确定性相关的关键词列表。这些关键词是我们感兴趣的内容,在文本中提及的频率可以反映出政策导向和不确定性因素。
(2)文本读取与预处理:从指定的文件路径读取文本,并将其中的繁体字转换为简体字,确保分词和关键词统计的一致性。
(3)文本分词:使用jieba库对文本进行分词处理,将连续的文本切分成单个的词汇。
(4)关键词统计:遍历分词后的词汇,统计每个关键词出现的次数,并计算其在总词汇中的占比。
(5)结果输出:输出总词组数、政策关键词出现次数及其占比、不确定性关键词出现次数及其占比。
以下是具体的代码实现:

import jieba  # 导入分词库
from hanziconv import HanziConv  # 导入汉字转换库# 定义政策相关和不确定性相关的关键词列表
policy_keywords = ["市政", "政策", "货币政策", "政策鼓励", "国家", "扩内需","保增长", "促发展", "产业发展", "法律", "法规", "国民经济", "有关部门","产业结构", "产业结构调整", "财政", "税收", "所得税", "增值税","税收减免", "税收优惠", "刺激政策", "限贷令", "限购令", "保障房","宏观调控", "政府", "当局", "国务院", "中央政府", "当地政府", "证监会","政治", "军事", "宏观", "国家政策", "政策环境", "经济政策", "政策走势"]
uncertainty_keywords = ["风险", "经营风险", "市场风险", "信用风险", "不确定性", "不确定","波动", "变化", "改变", "徘徊", "不稳", "不稳定性", "不稳定","不寻常", "错综复杂", "非常复杂"]# 设置文件路径并读取文件
file_path = 'C:\\Users\\Desktop\\1.txt'
with open(file_path, 'r', encoding='utf-8') as file:text = file.read()
text = HanziConv.toSimplified(text)  # 将文本中的繁体字转换为简体字
words = list(jieba.cut(text))  # 文本进行分词
total_words = len(words)  # 统计总的词组数量# 初始化关键词计数字典
policy_counts = {key: 0 for key in policy_keywords}
uncertainty_counts = {key: 0 for key in uncertainty_keywords}# 遍历所有词汇,统计关键词出现的次数
for word in words:if word in policy_counts:policy_counts[word] += 1if word in uncertainty_counts:uncertainty_counts[word] += 1# 计算关键词的占比
policy_ratio = sum(policy_counts.values()) / total_words * 100  # 计算政策关键词的占比
uncertainty_ratio = sum(uncertainty_counts.values()) / total_words * 100  # 计算不确定性关键词的占比# 输出统计结果
print("总词组数:", total_words)
print("政策关键词出现次数:", policy_counts)
print("政策关键词占比:", f"{policy_ratio:.2f}%")
print("不确定性关键词出现次数:", uncertainty_counts)
print("不确定性关键词占比:", f"{uncertainty_ratio:.2f}%")

(二)Python分析文本中的不确定性词汇和句子指标占比

分析步骤:
(1)环境准备和库的导入
安装必要的库:确保安装了 jieba 和 hanziconv。这两个库分别用于中文分词和中文繁简转换。
导入库:在 Python 脚本中导入所需的库。
(2)文本数据的加载和预处理
加载文本数据:从文件或其他数据源读取文本。
文本预处理:包括繁简转换、去除非文字和标点符号,以及分词。

def text_preprocess(text):text = HanziConv.toSimplified(text)  # 繁转简text = ''.join(e for e in text if e.isalnum() or e.isspace())  # 清理文本words = list(jieba.cut(text))  # 分词return words

(3)分析经济政策不确定性
定义不确定性相关词汇:列出与经济政策不确定性相关的关键词汇。
计算不确定性词汇占比(EPUW):统计这些词汇在文本中的出现频率,以此衡量不确定性的程度。

def calculate_EPUW(words):uncertainty_words = [...]num_uncertainty = sum(word in uncertainty_words for word in words)EPUW = num_uncertainty / len(words) if words else 0return EPUW

(4)进一步分析句子中的不确定性(EPUS)
句子级分析:将文本分割成句子,并分析每句中是否含有不确定性词汇。
计算不确定性句子占比:比较含有不确定性词汇的句子与总句子数的比例。

def calculate_EPUS(text):sentences = text.split('。')num_uncertainty_sentences = sum(any(word in s for word in uncertainty_words) for s in sentences)EPUS = num_uncertainty_sentences / len(sentences) if sentences else 0return EPUS

以下是具体的代码实现:

import jieba  # 导入分词库
from hanziconv import HanziConv  # 导入汉字转换库# 文本预处理函数:去除停用词、标点符号等,并进行分词处理
def text_preprocess(text):# 去除标点符号和特殊字符text = ''.join(e for e in text if e.isalnum() or e.isspace())# 分词处理words = list(jieba.cut(text))return words# 经济政策不确定性词汇占比计算函数
def calculate_EPUW(text):words = text_preprocess(text)  # 文本预处理total_words = len(words)  # 计算总词数uncertainty_words = ["风险", "经营风险", "市场风险", "信用风险", "不确定性", "不确定","波动", "变化", "改变", "徘徊", "不稳", "不稳定性", "不稳定","不寻常", "错综复杂", "非常复杂"]  # 不确定性相关词汇num_uncertainty = sum(word in uncertainty_words for word in words)  # 统计文本中不确定性词汇的数量EPUW = num_uncertainty / total_words if total_words > 0 else 0  # 计算经济政策不确定性词汇占比return EPUW# 经济政策不确定性句子占比计算函数
def calculate_EPUS(text):sentences = text.split('。')  # 将文本按句分割total_sentences = len(sentences)  # 计算总句数uncertainty_words = ["风险", "经营风险", "市场风险", "信用风险", "不确定性", "不确定","波动", "变化", "改变", "徘徊", "不稳", "不稳定性", "不稳定","不寻常", "错综复杂", "非常复杂"]  # 不确定性相关词汇num_uncertainty_sentences = sum(any(word in sentence for word in uncertainty_words) for sentence in sentences)  # 统计文本中包含不确定性词汇的句子数量EPUS = num_uncertainty_sentences / total_sentences if total_sentences > 0 else 0  # 计算经济政策不确定性感知指标return EPUS# 读取文本文件并进行简体中文转换
file_path = 'C:\\Users\\Desktop\\1.txt'
with open(file_path, 'r', encoding='utf-8') as file:text = file.read()
text = HanziConv.toSimplified(text)# 计算经济政策不确定性词汇占比
EPUW = calculate_EPUW(text)
print("经济政策不确定性词汇指标占比(EPUW):", EPUW)# 计算经济政策不确定性感知指标
EPUS = calculate_EPUS(text)
print("经济政策不确定性句子指标占比(EPUS):", EPUS)

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

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

相关文章

openi启智社区 aarch64 npu环境安装飞桨paddlepaddle和PaddleNLP(失败)

以前在启智社区都是编译安装飞桨,这回看到飞桨提供了npu安装包,兴冲冲的以为安装很简单。 之所以安装飞桨,是因为想在启智社区的启智大脑调试环境使用最新的PaddleNLP,结果报错:No module named paddle.nn.layer.laye…

编译遇到找不到pcap.so 问题

1.locate 定义pcap.so locate pcap.so 如果存在则打印所有路径 使用软连接将pcap.so 的实际位置连接到编译的lib 目录下 ln -s /usr/lib/x86_64-linux-gnu/libpcap.so /usr/lib/libpcap.so 编译 提示 说明程序中编译的目标程序需要的库与现有的不兼容,一般都是3…

Mysql使用中的性能优化——单次插入和批量插入的性能差异

一般Mysql的客户端和服务端不在一台机器上,所以它们之间的通信需要通过网络进行。我们本次实验,希望抛开网络的影响,测试不同SQL方案在Mysql服务器上的执行效率的对比。于是我们使用“存储过程”来辅助测试。 结论 先上结论: 批…

Servlet基础(续集)

Servlet原理 Servlet是由Web服务器调用&#xff0c;Web服务器在收到浏览器请求之后&#xff0c;会&#xff1a; Mapping问题 一个Servlet可以指定一个映射路径 <servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pa…

vue3 实现自定义指令封装 --- 通俗易懂

1、局部自定义指令 1.1 在<script setup>定义组件内的指令&#xff0c;任何以v开头的驼峰式命名的变量都可以被用作一个自定义指令 <template><div><h3>使用自定义指令</h3><div>########################## start 局部自定义指令</d…

RuoyiAdmin项目搭建及Docker 部署备忘

下载前后分离版&#xff0c;ruoyi: 项目扩展 | RuoYi https://gitee.com/Double_AutoEE/AutoEE 这个是vite antdv 1.安装好后端基础&#xff1a;改端口、配接口、建数据库&#xff0c;前端下载后&#xff1a; npm install npm run dev 2.新建一个模块&#xff0c;包括…

【React】前端插件 uuidjs 的使用 --随机生成id

文档1 文档2 使用 1.安装 npm install uuid2.Create a UUID import { v4 as uuidv4 } from uuid; uuidv4(); // ⇨ 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d3.或使用 CommonJS语法 const { v4: uuidv4 } require(uuid); uuidv4(); // ⇨ 1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4…

C#有哪些方式实现回调函数、处理异步操作或响应某些条件时的动作

在C#中&#xff0c;除了使用event关键字来定义事件和回调函数&#xff08;事件处理器&#xff09;之外&#xff0c;还有几种其他方式来处理异步操作或响应某些条件时的动作&#xff1a; 委托&#xff08;Delegates&#xff09;&#xff1a; 委托类似于C/C中的函数指针&#x…

Docker大学生看了都会系列(八、Dokcerfile部署go项目)

系列文章目录 第一章 Docker介绍 第二章 2.1 Mac通过Homebrew安装Docker 第二章 2.2 CentOS安装Docker 第三章 Docker常用命令 第四章 常用命令实战 第五章 Docker镜像详解 第六章 Docker容器数据卷 第七章 Dockerfile详解 第八章 Dokcerfile部署go项目 文章目录 一、前言二、环…

解决Android Studio Iguana版本不显示原创的GradleTask问题

问题描述&#xff1a; 下面是我的AndroidStudio版本号&#xff0c;升级后我发现项目里面自定义的gradletask找不到了&#xff1f;&#xff1f;&#xff1f; 解决方案&#xff1a; 1、去setting里面把下面红框里面的选项勾选一下&#xff0c;缺点就是sync的时候会慢一些。 2、…

可以抛弃纸质礼金簿了,以后登记礼金可以用这款小程序

可以抛弃纸质礼金簿了&#xff0c;以后登记礼金可以用这款小程序 小程序介绍使用主要技术代码来源项目演示首页和我的关于和设置收礼功能送礼功能我的家庭和数据统计 总结 大家好&#xff0c;这里是程序猿代码之路&#xff0c;先说说为什么想搞这一个小程序呢&#xff0c;主要是…

linux部署运维3——centos7下导入导出mysql数据库的sql文件以及查询数据量最大的表信息

在实际项目开发或者项目运维过程中&#xff0c;数据库的导入导出操作比较频繁&#xff0c;如果可以借助第三方工具那当然算喜事一桩&#xff1b;但是如果不允许外部访问&#xff0c;那么就只能使用数据库自带的命令&#xff0c;也是相当方便的。 一.导入sql文件 1.在linux命令…

pxe自动装机与无人值守

一、pxe与无人值守 pxe&#xff1a;c/s 模式&#xff0c;允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像&#xff0c;加载安装文件&#xff0c;实现自动化安装操作系统。 pxe的优点&#xff1a; 1、规模化 同时装配多台服务器&#xff08;20多&…

Script和创建对象

一、方法 1.indexof 查找字符串 如果找到的情况下&#xff0c;返回的是当前该字符的下标&#xff1b; 如果不存在的情况下&#xff0c;返回的是结果是-1&#xff1b; 2.math&#xff08;不查找特殊字符&#xff09;查找特定字符串 有&#xff1a;返回的是数组&#xff0c;…

Puppeteer 中的 iFrame使用(包括多重嵌套)指南

iframe或内联框架是一种 HTML元素&#xff0c;可用于在当前页面中嵌入另一个网页或文档。在进行网页抓取时&#xff0c;开发人员经常会遇到带有内嵌 iframe 的网页&#xff0c;其中包含重要信息。弹出窗口、交互式表单、广告和动态内容通常包含在这些 iframe 中。要访问和提取这…

Java 中 IOC 和 AOP 机制详解

Java 中 IOC 和 AOP 机制详解 1. IOC (Inversion of Control) 控制反转 1.1 定义 控制反转&#xff1a;将对象的创建和依赖关系的管理从应用程序代码中转移到外部容器中。简单来说&#xff0c;就是把对象的创建和管理交给容器负责&#xff0c;而不是由程序员自己手动创建和管…

zookeeper启动(一)

1.zookeeper启动入口 在zkServer.sh的启动命令中,我们可以找到zookeeper启动的关键类org.apache.zookeeper.server.quorum.QuorumPeerMain QuorumPeerMain#main 我们可以直接看org.apache.zookeeper.server.quorum.QuorumPeerMain中的main方法,从下面的main方法中,我们可以…

专为Mac设计的窗口管理Magnet 中文

Magnet是一款专为Mac设计的窗口管理工具软件。它具备强大的多窗口管理能力&#xff0c;支持用户通过简单的拖放操作&#xff0c;将应用程序窗口快速对齐、排列和分组。此外&#xff0c;Magnet还提供了预设的布局选项和自定义设置功能&#xff0c;帮助用户实现个性化的窗口布局。…

本地部署GLM-4-9B清华智谱开源大模型方法和对话效果体验

GLM-4-9B是清华大学和智谱AI推出的最新一代预训练模型GLM-4系列中的开源版本。在语义、数学、推理、代码和知识等多方面的数据集测评中&#xff0c;GLM-4-9B及其人类偏好对齐的版本GLM-4-9B-Chat均表现出较高的性能&#xff0c;其通用能力评测结果甚至超越了Llama-3-8B开源大模…

多样本上下文学习:开拓大模型的新领域

大模型&#xff08;LLMs&#xff09;在少量样本上下文学习&#xff08;ICL&#xff09;中展现出了卓越的能力&#xff0c;即通过在推理过程中提供少量输入输出示例来学习&#xff0c;而无需更新权重。随着上下文窗口的扩展&#xff0c;我们现在可以探索包含数百甚至数千个示例的…