python 词云 wordcloud使用paddle模式 庆余年人物分析--不是特别准,可以看着玩一玩

看完之后你也可以生成自己的词云

提供一个过滤人名的英中词性分析对应,更多的可以去我的码云上看看
https://gitee.com/billion_lines_of_code/learn-wordcloud

# 只过滤人名
En2Cn_name = {'nr': '名词-人名','nr1': '名词-汉语姓氏','nr2': '名词-汉语名字','nrf': '名词-音译人名','nrfg': '名词-人名',
}

代码中字符串的位置,大部分是可以替换的,你想要的自己改改偶

# 时间包,为了计算程序耗时
import datetime
# 规则执行 便于正则使用
import re
# 中文分析库
import jieba
# 获取词性
import jieba.posseg
# 多进程包
import multiprocessing
# 词云库
import wordcloud
# 集合包
import collections
# 绘图
import numpy
# 图片处理
from PIL import Image
# 图片处理,字体
import matplotlib.pylab as plt
# 本地的文件,词性模版
import baseresource.EnToCN as EnToCNdef jieba_doing(text_str, dic):# 动态调整词典jieba.suggest_freq('', True)# 可以添加用户的词典if dic:jieba.load_userdict('')# 文本分词 精确分词+HMMreturn jieba.cut(text_str, cut_all=False, HMM=True)def jieba_doing_paddle(text_str, dic):# 动态调整词典jieba.suggest_freq('', True)# 可以添加用户的词典if dic:jieba.load_userdict('')# 文本分词 精确分词+HMMreturn jieba.cut(text_str, cut_all=False, HMM=True, use_paddle=True)def main_process():# 词云分析文件# 分析文档analysis_text = '/Users/mac/Downloads/庆余年.txt'number = 100output_file = '词频.txt'text_str = read_text_file(analysis_text)# 文本处理# 正则表达式过滤# 过滤中文符号pattern = re.compile(u'[^a-zA-Z0-9\u4e00-\u9fa5]')text_str = remove_no_need_words(pattern, text_str)# jieba库做的一些事情# word_list_analysis = jieba_doing(text_str, '')word_list_analysis = jieba_doing_paddle(text_str, '')word_list_analysis = list(word_list_analysis)# 使用多进程处理,加快处理速度object_list = multi_process(word_list_analysis, 4)# 词频统计word_count = collections.Counter(object_list)word_count_top = word_count.most_common(number)print('词语\t词频\t词性\n')# 只写名词file_write(output_file, word_count_top, number, EnToCN.En2Cn_name)word_count_top = dict(word_count_top)print('\n 开始制作词云')mask = numpy.array(Image.open('../photomodel/chinamap.jpeg'))do_wordCloud(word_count_top, mask, 5000)# 制作词云
def do_wordCloud(word_count_top, mask, dpi):wc = wordcloud.WordCloud(background_color='white',font_path='../fontmodel/mashanzhengmaobikaishu.ttf', mask=mask,max_font_size=150)wc.generate_from_frequencies(word_count_top)# print(word_count_top)plt.figure('词云')plt.imshow(wc)plt.axis('off')# png = '%s.png' % nameplt.savefig('庆余年人物.png', dpi=dpi)plt.show()print('制作完成')pass# 输出文词频分析文件,需要文件,高频词数组,需要词的个数,词性分析的模版数组
def file_write(output_file, word_count_top, number, EnToCNlist):# 输出文件file_out = open(output_file, 'w', encoding='utf-8')file_out.write('词语\t词频\t词性\n')file_out.write('--------\n')count = 0for TopWord, Frequency in word_count_top:  # 获取词语和词频for POS in jieba.posseg.cut(TopWord):  # 获取词性if count == number:breakif POS.flag in list(EnToCNlist.keys()):print(TopWord + '\t', str(Frequency) + '\t',list(EnToCNlist.values())[list(EnToCNlist.keys()).index(POS.flag)])  # 逐行输出数据file_out.write(TopWord + '\t' + str(Frequency) + '\t' + list(EnToCNlist.values())[list(EnToCNlist.keys()).index(POS.flag)] + '\n')  # 逐行写入str格式数据count += 1file_out.close()  # 关闭文件# 去掉文本的不需要的内容
def remove_no_need_words(pattern, text_str):# 去掉符合的符号text_str = re.sub(pattern, '', text_str)return text_str# 输入要分析的文档
def read_text_file(analysis_text):# 读取文件file = open(analysis_text, 'r', encoding='utf-8')text_str = file.read()file.close()return text_str# 词性过滤方法,词性模版
def filter_method(word_list_analysis):object_list = []for word in word_list_analysis:if len(word) < 2:continuefor speech in jieba.posseg.cut(word):if speech.flag in list(EnToCN.En2Cn_name.keys()):object_list.append(word)return object_list# 多进程处理,加快速度
def multi_process(word_list_analysis, num):object_list = []pool = multiprocessing.Pool(num)# 将数组拆分为多块parts = [word_list_analysis[i:i + num] for i in range(0, len(word_list_analysis), num)]results = pool.map(filter_method, parts)for result in results:object_list.extend(result)pool.close()return object_listif __name__ == '__main__':start = datetime.datetime.now()main_process()end = datetime.datetime.now()print(end - start)

paddlepaddle-tiny error 安装不成功使用下面的命令

 python3 -m pip install paddlepaddle-tiny -i https://mirror.baidu.com/pypi/simple

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

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

相关文章

【0到1学习Unity脚本编程】第一人称视角的角色控制器

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;【0…

图像滤波处理

滤波处理是图像处理中常用的技术之一&#xff0c;用于去除图像中的噪声、平滑图像、边缘检测等。以下是几种常见的滤波处理方法&#xff1a; 1. 均值滤波 (Mean Filtering) 原理&#xff1a; 均值滤波使用一个固定大小的滤波器&#xff0c;在图像上滑动并取周围像素的平均值来…

ClickHouse SQL 查询优化

1 单表查询 1.1 Prewhere替代where Prewhere和where语句的作用相同&#xff0c;用来过滤数据。不同之处在于prewhere只支持 *MergeTree 族系列引擎的表&#xff0c;首先会读取指定的列数据&#xff0c;来判断数据过滤&#xff0c;等待数据过滤之后再读取select 声明的列字段来补…

自动驾驶学习笔记(九)——车辆控制

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 控制器设计 比例积分微分控制 线性…

在 Linux 环境下的简单调试技巧

在 Linux 环境下的简单调试技巧 GDB&#xff08;GNU调试器&#xff09;是一个强大的命令行调试工具&#xff0c;用于调试C、C等程序。下面是使用GDB的一些基本步骤&#xff1a; 编译程序时包含调试信息 确保在编译程序时使用 -g 选项来包含调试信息。例如&#xff1a; gcc -g …

Kotlin 知识体系

Kotlin 知识体系 1、Kotlin 文档2、Kotlin 基础3、桌面应用程序4、Android 与 iOS 应用程序 1、Kotlin 文档 Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复…

『亚马逊云科技产品测评』活动征文|借助AWS EC2搭建服务器群组运维系统Zabbix+spug

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 本文基于以下软硬件工具&#xff1a; aws ec2 frp-0.52.3 zabbix 6…

LRU最近最少使用算法

LRU(LeastRecentlyUsed)“最近最少使用”算法&#xff1a; 1.当缓存空间已满耗用时&#xff0c;淘汰最近最少使用数据的缓存对象以释放更多的缓存空间(用于历史缓存对象的维护)。 2. 哈希表:快速查找缓存对象&#xff1b;双向链表:维护 历史数据所在的节点顺序。 步骤&#xff…

掌握深度学习利器——TensorFlow 2.x实战应用与进阶

掌握深度学习利器——TensorFlow 2.x实战应用与进阶 摘要&#xff1a;随着人工智能技术的飞速发展&#xff0c;深度学习已成为当下最热门的领域之一。作为深度学习领域的重要工具&#xff0c;TensorFlow 2.x 备受关注。本文将通过介绍TensorFlow 2.x的基本概念和特性&#xff…

在 Linux 上搭建 Java Web 项目环境(最简单的进行搭建)

要在 Linux 上安装的程序有 1.JDK (要想运行 java 程序 JDK 是必不可少的) 2.Tomcat &#xff08;HTTP 服务器&#xff0c;是管理 Web 项目的常用工具&#xff09; 3. mysql &#xff08;数据库&#xff09; 一.安装 JDK 博主使用的 Linux 发行版是 centos &#xff0c;cen…

母婴服务预约小程序的效果如何

二胎家庭增速明显&#xff0c;占比较大&#xff0c;成为市场各母婴品牌的目标&#xff0c;而随着行业发展及市场变化&#xff0c;线上互联网深入人们生活&#xff0c;各家母婴品牌开始向“数字化”靠拢。 目前母婴门店商家主要面临服务/产品线上曝光不足、宣传度不够或扩圈无门…

【Kingbase FlySync】命令模式:安装部署同步软件,实现KES到KES实现同步

【Kingbase FlySync】命令模式:安装部署同步软件&#xff0c;实现KES到KES实现同步迁移 概述准备环境目标资源1.测试虚拟机下载地址包含node1,node22.同步工具下载地址3.临时授权下载地址4.ruby工具下载地址5.EXAMv0.11.sql下载地址 实操&#xff1a;同步软件安装部署1.node1准…

git rebase 和 git merge的区别?以及你对它们的理解?

文章目录 前言是什么分析区别后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;git操作相关 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0c;感谢…

【论文解读】FFHQ-UV:用于3D面部重建的归一化面部UV纹理数据集

【论文解读】FFHQ-UV 论文地址&#xff1a;https://arxiv.org/pdf/2211.13874.pdf 0. 摘要 我们提出了一个大规模的面部UV纹理数据集&#xff0c;其中包含超过50,000张高质量的纹理UV贴图&#xff0c;这些贴图具有均匀的照明、中性的表情和清洁的面部区域&#xff0c;这些都是…

mybatis动态sql语法

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.qvfan.mybatistest.mapper.Emp…

基于深度学习的恶意软件检测

恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…

sqli-labs关卡18(基于http头部报错盲注)通关思路

文章目录 前言一、靶场通关需要了解的知识点1、什么是http请求头2、为什么http头部可以进行注入 二、靶场第十八关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做…

LV.12 D18 中断处理 学习笔记

一、ARM的异常处理机制及工程代码结构 1.1异常概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序。 1.2异常处理机制 不同的处…

【Python】解析CPP类定义代码,获取UML类图信息

参考 & 鸣谢 CppHeaderParser - 官方文档Python解析C头文件win10直接获得文件绝对路径的方法总结 目的 解析CPP头文件中的类定义&#xff0c;获取UML中的属性。用于画UML类图。如下所示格式&#xff0c;图片来源-链接 即获取&#xff0c;类名&#xff0c;成员函数&#x…

H110主板搭配魔改QNCW升级小记

最近搬家完毕&#xff0c;翻出来一块闲置已久的qncw&#xff0c;隐约记得是买的主板套装&#xff0c;现在主板早已不知踪影&#xff0c;剩下孤零零一个CPU&#xff0c;一起翻出来一个G3900T亮机CPU&#xff0c;应该是同时代的产物。 qncw百度上一搜&#xff0c;发现参数还行&am…