百度松果菁英班——机器学习实践四:文本词频分析

news2025/1/24 14:42:24

飞桨AI Studio星河社区-人工智能学习与实训社区

🥪jieba分词+词频统计

import jieba # jieba中文分词库
​
with open('test.txt', 'r', encoding='UTF-8') as novelFile:
    novel = novelFile.read()
# print(novel)
stopwords = [line.strip() for line in open('stop.txt', 'r', encoding='UTF-8').readlines()]
novelList = list(jieba.lcut(novel))
novelDict = {}
​
# 统计出词频字典
for word in novelList:
    if word not in stopwords:
            # 不统计字数为一的词
            if len(word) == 1:
                continue
            else:
                novelDict[word] = novelDict.get(word, 0) + 1
​
# 对词频进行排序
novelListSorted = list(novelDict.items())
novelListSorted.sort(key=lambda e: e[1], reverse=True)
​
# 打印前10词频
topWordNum = 0
for topWordTup in novelListSorted[:10]:
    print(topWordTup)
​
from matplotlib import pyplot as plt
x = [c for c,v in novelListSorted]
y = [v for c,v in novelListSorted]
plt.plot(x[:10],y[:10],color='r')
plt.show()
  • 导入必要的库: 代码首先导入了需要使用的库,包括了中文分词库jieba 和用于绘图的matplotlib

  • 读取文本文件: 使用 open() 函数打开名为 test.txt 的文本文件,并读取其中的内容到变量 novel 中。

  • 加载停用词列表: 代码读取了一个停用词文件 stop.txt,并将其中的停用词加载到列表 stopwords 中。

    • strip() 函数: strip() 函数用于去除字符串首尾的空白字符或指定的字符。在这段代码中,strip() 函数被用于去除停用词文件中每行字符串两端的空白字符。

  • 中文分词和词频统计: 使用 jieba 库对小说文本进行分词,得到分词列表 novelList。然后遍历分词列表,去除停用词,统计词频并保存在词频字典 novelDict 中。

    • lcut() 函数: lcut() 函数是 jieba 库中最基本的分词函数,用于将文本进行中文分词。它的输入是一个字符串,输出是一个分词后的列表,列表中的元素是文本中的各个词语。在这段代码中,lcut() 函数被用于对小说文本进行分词,将分词结果保存在 novelList 列表中。

    • novelDict[word]:从字典 novelDict 中获取键为 word 的值。

    • .get(word, 0):字典的 get() 方法,用于获取指定键的值。如果字典中存在键 word,则返回对应的值;如果不存在,返回默认值 0

    • + 1:表示将获取到的值加 1,即增加单词在文本中的出现次数。

  • 词频排序: 将词频字典 novelDict 转换为列表 novelListSorted,并按照词频从高到低进行排序。

  • 打印前10词频: 遍历排好序的词频列表,打印出前10个词频最高的词及其频次。

  • 词频可视化: 使用 matplotlib 库绘制词频最高的前10个词的词频图表。横坐标是词汇,纵坐标是词频。

🥪词云绘制

from wordcloud import WordCloud,ImageColorGenerator
import jieba
import matplotlib.pyplot as plt 
from imageio import imread
​
​
#读入背景图片
bg_pic = imread('图1.png')
#生成词云图片
wordcloud = WordCloud(mask=bg_pic,background_color='white',\
    scale=1.5,font_path=r'msyh.ttc').generate(' '.join(novelDict.keys()))
plt.imshow(wordcloud) 
plt.axis('off') 
plt.show()
#保存图片
wordcloud.to_file('父亲.jpg')
  • 导入必要的库: 代码中导入了需要使用的库,包括 WordCloudImageColorGeneratorjiebamatplotlib.pyplotimageio.imread

  • 读入背景图片: 使用 imread() 函数读取名为 "图1.png" 的背景图片,并将其存储在变量 bg_pic 中。

  • 生成词云图片: 使用 WordCloud 类来生成词云图像。在生成词云对象时,通过参数指定了使用 bg_pic 作为词云的遮罩(mask)图像,设置背景色为白色,放大比例为 1.5,使用字体文件 "msyh.ttc"。并使用 generate() 方法传入分词后的文本作为参数,生成词云图像。

  • 显示词云图: 使用 matplotlib.pyplot 库中的 imshow() 函数将生成的词云图像显示出来。

  • 隐藏坐标轴: 使用 axis('off') 函数隐藏坐标轴。

  • 展示图像: 使用 show() 函数展示词云图。

  • 保存图片: 使用 to_file() 函数将生成的词云图保存为名为 "父亲.jpg" 的图片文件。

⭐点赞收藏不迷路~

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

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

相关文章

C语言--条件编译(常见的编译指令)

#if(开始(判断条件))#endif(结束) 条件满足就参与编译,这里是一个判断的语句,当M大于0的时候,打印hehe不然就不打印 或者注释代码也好用 当#if 0的时候 ,也…

SDWAN专线保护企业数据传输安全

企业数字化进程的加速和网络环境的复杂化,数据传输安全已经成为企业网络管理的头等大事。SD-WAN(软件定义广域网)作为一种新兴的网络技术,不仅能够提升网络性能和效率,还能够有效地保护企业数据传输的安全性。以下是SD…

亚马逊店铺引流:海外云手机的利用方法

在电商业务蓬勃发展的当下,亚马逊已经成为全球最大的电商平台之一,拥有庞大的用户群和交易量。在激烈的市场竞争中,如何有效地吸引流量成为亚马逊店铺经营者所关注的重点。海外云手机作为一项新兴技术工具,为亚马逊店铺的流量引导…

第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》

​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇 广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇 广告效果测量定义和其他矩阵之- 3.2 可见性 (Viewability…

ctfshow web入门 命令执行 web53--web77

web53 日常查看文件 怎么回事不让我看十八 弄了半天发现并不是很对劲,原来我发现他会先回显我输入的命令再进行命令的回显 ?cnl${IFS}flag.php||web54 绕过了很多东西 基本上没有什么命令可以用了但是 grep和?通配符还可以用 ?cgrep${IFS}ctfshow${IFS}???…

【论文速读】| 大语言模型平台安全:将系统评估框架应用于OpenAI的ChatGPT插件

本次分享论文为:LLM Platform Security: Applying a Systematic Evaluation Framework to OpenAI’s ChatGPT Plugins 基本信息 原文作者:Umar Iqbal, Tadayoshi Kohno, Franziska Roesner 作者单位:华盛顿大学圣路易斯分校,华盛…

PicGo + Gitee + VsCode - 搭建私人图床

文章目录 前言搭建图床VsCode 安装插件安装 PicGo准备 Gitee 图床测试 尾声 前言 本人是一个重度 vimer,并且喜欢客制化一些东西… Typora 固然好用,但不支持 vim…发现 vscode 中既可以使用 vim,也可以 md,用起来比较舒服.因此…

如何自定义项目启动时的图案

说明:有的项目启动时,会在控制台输出下面的图案。本文介绍Spring Boot项目如何自定义项目启动时的图案; 生成字符图案 首先,找到一张需要设置的图片,使用下面的代码,将图片转为字符文件; impo…

vscode 安装vim插件配置ctrl + c/v功能

搜索Vim插件 插件介绍部分有提示操作 首先安装该插件,然后按照下述步骤设置ctrl相关的快捷键,以便于脱离im快捷键而愉快的敲代码。 1.在“设置”搜索框内搜索vim.handleKeys,选择 Edit in settings.json 2. 设置ctrl-c,ctrl-v等快捷键置为fa…

【Frida】【Android】 10_爬虫之WebSocket协议分析

🛫 系列文章导航 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446【Frida】【Android】03_RPC https://bl…

LDR6328助力Type-C普及,便捷充电,绿色生活更精彩

随着科技的进步和全球统一接口的需求,Type-C接口正日益受到青睐。越来越多的设备正选择采纳这一先进的接口设计,它的普及无疑在改善着我们的日常生活。 在过往,许多小功率设备如小风扇、蓝牙音箱、桌面台灯以及家用加湿器等,都普遍…

STC89C51学习笔记(五)

STC89C51学习笔记(五) 综述:文本讲述了代码中速写模板的创建、如何将矩阵键盘的按键与数字一一对应以及如何创建一个矩阵键盘密码锁。 一、速写模板 点击“templates”,再鼠标右键选择配置,按照以下方式即可修改一些…

Linux初学(十七)redis

一、简介 redis就是一个内存数据库 redis中的数据,都是保存在内存中 端口:6379 二、安装redis 方法一:编译安装 方法二:yum安装-epel 第一步:配置epel源 详见:http://t.csdnimg.cn/AFl1K第二步&#xff1a…

为什么苹果 Mac 电脑需要使用清理软件?

尽管 Apple Mac 电脑因其卓越的性能、简洁高效的 macOS 操作系统及独特的美学设计备受全球用户青睐,但任何电子设备在长期使用后都难以避免面临系统资源日渐累积的问题。其中一个重要维护需求在于,随着使用时间的增长,Mac电脑可能会由于系统垃…

【CicadaPlayer】demuxer_service的简单理解

G:\CDN\all_players\CicadaPlayer-github-0.44\mediaPlayer\SMPMessageControllerListener.cppplayer的demuxer服务类 std::unique_ptr<demuxer_service> mDemuxerService{nullptr};根据option (Cicada::options),可以决定音视频的不同操作,通过 hander可以获得具体使…

Svg Flow Editor 原生svg流程图编辑器(五)

系列文章 Svg Flow Editor 原生svg流程图编辑器&#xff08;一&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;二&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;三&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;四&#xf…

MySQL高级篇(存储引擎InnoDB、MyISAM、Memory)

目录 1、存储引擎简介 1.1、查询建表语句&#xff0c;默认存储引擎&#xff1a;InnoDB 1.2、查看当前数据库支持的存储引擎 1.3、创建表&#xff0c;并指定存储引擎 2、 存储引擎-InnoDB介绍 2.1、存储引擎特点 3、MyISAM存储引擎 4、Memory存储引擎 5、InnoDB、MyISAM、Memory…

AcWing刷题-公约数

公约数 代码 from math import gcd a, b map(int, input().split()) p int(input()) max_gcd gcd(a, b) res []for i in range(1, int(max_gcd**0.5)1):if max_gcd % i 0:res.append(i) res.append(max_gcd//i) res sorted(set(res))for _ in range(p):l, r map(int,…

【ArcGIS微课1000例】0108:ArcGIS计算归一化差值植被指数

本文讲解ArcGIS中,基于Landsat8数据的NDVI归一化差值植被指数计算。 文章目录 一、加载数据二、归一化植被指数NDVI1. NDVI介绍2. NDVI计算三、注意事项一、加载数据 加载配套数据0108.rar中的Landsat8的8个单波段数据,如下所示: Landsat8波段信息对照表如下表所示: 接下来…

8.排序(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序)的模拟实现

1.排序的概念及其运用 1.1排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录…