wordcloud库和jieba库的使用

news2024/12/23 19:23:47

文章目录

  • wordcloud库的简单示范
  • 使用wordcloud库报错记录
  • anaconda安装第三方jieba库
  • jieba库的简单示范
  • 任务 1:三国演义中的常见词汇分布在“三国"这两个隶书字上,出现频率高的词字体大
  • 任务 2:三国演义中出现频率前十的人名。必须是以下这十个名字,名字组成心形

wordcloud库的简单示范

from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
from PIL import Image
import numpy as np

txt = "Python Java C++ JavaScript PHP Ruby Swift Kotlin Go Rust"     # 示例文本

# 创建词云对象,配置参数
c = WordCloud(
    width=400,
    height=400,
    font_path=None,
    repeat=True, # 表示单词是否可以重复出现
    mask=np.array(Image.open("love.png")), # 给词云生成轮廓用的参数,不需要做成轮廓的背景应为白色
    background_color="white", # 背景颜色
    max_words=150 # 词云的最大单词数
)
c.generate(txt)  # 指定词云的文本文件
c.to_file("词云图.jpg")    # 将生成的词云文件输入到一个文件中

使用wordcloud库报错记录

在使用wordcloud库的时候,运行报错:ValueError: Only supported for TrueType fonts

解决方案:去升级pillow库!!!

anaconda安装第三方jieba库

  1. 打开Anaconda Prompt,并进入目标环境。输入 activate 环境名
  2. 输入 pip install jieba
  3. 如果因为网络原因而下载失败,可使用清华大学镜像(99.9%解决下载失败问题):
    pip install 名称 -i https://pypi.tuna.tsinghua.edu.cn/simple

jieba库的简单示范

import jieba

s = "中国是一个伟大的国家"

s1 = jieba.lcut(s) # 精确模式
print(s1)

s2 = jieba.lcut(s, cut_all=True) # 全模式
print(s2)

s3 = jieba.lcut_for_search(s) # 搜索引擎模式
print(s3)

# jieba.add_word(str)   向分词词典添加新词 str

任务 1:三国演义中的常见词汇分布在“三国"这两个隶书字上,出现频率高的词字体大

from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
from PIL import Image
import numpy as np
from jieba import *

def getText(filename):
    text = open("{}".format(filename), encoding='utf-8').read()
    sign = '''!~·@¥……*“”‘’\n(){}【】;:"'「,」。-、?\u3000\ufeff'''
    for ch in sign: # 特殊符号替换成空格
        text = text.replace(ch, ' ')
    return text

def wordCount(text, N):
    words = lcut(text) # 精确分词
    counts = {} # 字典类型

    for word in words:
        if len(word) < 2:
            continue
        if word not in counts:
            counts[word] = 0
        else:
            counts[word] += 1

    temp = sorted(counts.items(), key=lambda d: d[1], reverse=True) # 按计数值逆序排序
    result = dict(temp[1:N+1])

    return result

def drawWordCloud(data, N):
    # 创建词云对象,配置参数
    c = WordCloud(
        width=400,
        height=400,
        font_path="C:\Windows\Fonts\STXINGKA.TTF", # 设置字体
        repeat=False,  # 表示单词是否可以重复出现
        mask=np.array(Image.open("三国.png")),  # 给词云生成轮廓用的参数,不需要做成轮廓的背景应为白色
        background_color="white",  # 背景颜色
        max_words=N  # 词云的最大单词数
    )
    result_str = ' '.join(data.keys())
    c.generate(result_str)  # 指定词云的文本文件
    c.to_file("自制结果1.jpg")  # 将生成的词云文件输入到一个文件中

if __name__ == '__main__':
    N = 200
    text = getText('三国演义utf8.txt')
    result = wordCount(text, N)
    drawWordCloud(result, N)

运行结果:

在这里插入图片描述

任务 2:三国演义中出现频率前十的人名。必须是以下这十个名字,名字组成心形

十个名字:刘备、赵云、关羽、周瑜、曹操、孔明、孙权、司马懿、张飞、吕布

from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
from PIL import Image
import numpy as np
from jieba import *

def getText(filename):
    text = open("{}".format(filename), encoding='utf-8').read()
    sign = '''!~·@¥……*“”‘’\n(){}【】;:"'「,」。-、?\u3000\ufeff'''
    for ch in sign: # 特殊符号替换成空格
        text = text.replace(ch, ' ')
    return text

def wordCount(text, N):
    words = lcut(text) # 精确分词
    counts = {} # 字典类型
    name = ["刘备", "赵云", "关羽", "周瑜", "曹操", "孔明", "孙权", "司马懿", "张飞", "吕布"]

    for word in words:
        if word in name:
            if word not in counts:
                counts[word] = 0
            else:
                counts[word] += 1
        else:
            continue

    temp = sorted(counts.items(), key=lambda d: d[1], reverse=True) # 按计数值逆序排序
    result = dict(temp[:N])

    return result

def drawWordCloud(data, N):
    # 创建词云对象,配置参数
    c = WordCloud(
        width=400,
        height=400,
        font_path="C:\Windows\Fonts\STXINGKA.TTF", # 设置字体
        repeat=False,  # 表示单词是否可以重复出现
        mask=np.array(Image.open("love.png")),  # 给词云生成轮廓用的参数,不需要做成轮廓的背景应为白色
        background_color="white",  # 背景颜色
        max_words=N  # 词云的最大单词数
    )
    result_str = ' '.join(data.keys())
    c.generate(result_str)  # 指定词云的文本文件
    c.to_file("自制结果2.jpg")  # 将生成的词云文件输入到一个文件中

if __name__ == '__main__':
    text = getText('三国演义utf8.txt')
    result = wordCount(text, 10)
    drawWordCloud(result, 10)

运行结果:

在这里插入图片描述

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

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

相关文章

【日常总结】windows11 设置文件默认打开方式

一、场景 二、实战 Stage 1&#xff1a;打开设置 Stage 2&#xff1a;应用 > 默认应用 > 搜索 .txt Stage 3&#xff1a;修改成notepad &#xff0c;设置默认值即可 一、场景 windows 11 .txt 默认记事本打开 需求&#xff1a;如何使用notepad打开呢 &#xff1f;…

App Inventor 2 低功耗蓝牙(BLE) 硬件接入、数据通信及IO控制

低功耗蓝牙(BLE)以低功耗、低成本、开发简便逐渐被广泛应用&#xff0c;本文主要介绍一款较为通用、价格低廉的BLE设备从零开始如何利用App Inventor 2开发一款自己专属的手机蓝牙App应用。 BLE与经典蓝牙的区别可参考&#xff1a;《低功耗蓝牙(BLE) 和 经典蓝牙(SPP) 的区别》…

一张序列图搞懂resilience4j的工作原理

本文主要回答以下几个问题&#xff1a; Spring Cloud与Resilience4j如何集成的&#xff08;spring-cliud-circuitbreaker-resilience4j模块的 Resilience4JAutoConfiguration类实现了主要组件的注入&#xff0c;特别是在Resilience4jBulkheadConfiguration中定义如何自定义fac…

Qt简易的五子棋

五子棋是个简单的小游戏&#xff0c;尝试使用Qt将他做出来&#xff0c;学习时的练习demo。 成果展示 需求分析 五子棋&#xff1a;在棋盘上&#xff0c;黑棋先行&#xff0c;交替下棋&#xff0c;五子练成直线获取胜利。 实现过程 1.棋盘绘制&#xff1a;下棋的第一步肯定是绘制…

ubuntu gedit主题更改

ubuntu16.04 gedit 编辑器又有首选项如何设置主题 这里下载主题 将主题XML复制到 /usr/share/gtksourceview-3.0/styles 文件夹内&#xff1b; 使用gsettings 命令设置喜欢的配色方案&#xff0c;使用方式如下&#xff1a;(实测不带.xml后缀哦) gsettings set org.gnome.gedi…

本地配置Joplin Server用于Joplin笔记同步并实现公网远程访问

文章目录 1. 安装Docker2. 自建Joplin服务器3. 搭建Joplin Sever4. 安装cpolar内网穿透5. 创建远程连接的固定公网地址 Joplin 是一个开源的笔记工具&#xff0c;拥有 Windows/macOS/Linux/iOS/Android/Terminal 版本的客户端。多端同步功能是笔记工具最重要的功能&#xff0c;…

小程序定制开发:解析定制化移动应用的未来

引言 在当今数字化时代&#xff0c;移动应用已经成为人们生活不可或缺的一部分。随着智能手机的普及&#xff0c;移动应用的需求呈现出爆发式增长&#xff0c;企业们也纷纷投身于这场数字化浪潮。然而&#xff0c;众多企业在竞争激烈的市场中&#xff0c;如何突显个性、提高用…

uniapp本地存储日志

uniapp本地存储日志 背景实现代码实现使用查看生成log读取 注意事项尾巴 背景 我们的APP开发完成之后&#xff0c;在我们测试环境或者自测的时候都好好的&#xff0c;但是发布到生产环境客户使用总会出现一些奇奇怪怪的问题。这时候因为没在开发环境&#xff0c;我们无法查看到…

【云原生】docker安全与https加密的超文本传输协议CA证书生成

目录 一、docker安全 二、http与https的区别 三、为什么要使用 SSL 证书&#xff1f; 四、https证书认证的过程 https单向认证的访问流程 https双向认证的访问流程 五、如何获取证书&#xff1f; 六、实操获取证书并验证 1、通过阿里云获取证书 2、通过mkcert获取证书…

Flutter的安装与环境配置

一、下载安装Futter&#xff1a; 1、Flutter中文文档&#xff1a; 安装和环境配置 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2、下载 Futter SDK&#xff1a; Flutter中文文档 里面有&#xff0c;下载完成之后找个文件夹解压出来&#xff0c;最好不要将 Flu…

GoLang和GoLand的安装和配置

1. GoLang 1.1 特点介绍 Go 语言保证了既能达到静态编译语言的安全和性能&#xff0c;又达到了动态语言开发维护的高效率&#xff0c;使用一个表达式来形容 Go 语言&#xff1a;Go C Python , 说明 Go 语言既有 C 静态语言程序的运行速度&#xff0c;又能达到 Python 动态语…

编程实战实例分享,棋牌室计时计费管理系统软件教程

编程实战实例分享&#xff0c;棋牌室计时计费管理系统软件教程 一、前言 以下编程实例以 佳易王棋牌计时计费软件V17.8为例说明 1、开始计时和等待中&#xff0c;图片自动识别&#xff0c;自动匹配 2、开始计时后&#xff0c;系统记录开始时间&#xff0c;并直观显示所用的时…

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目&#xff0c;Message Nest - 可以打造个性化消息推送平台&#xff0c;整合邮件、钉钉、企业微信等多种通知方式。定制你的消息&#xff0c;让通知方式更灵活多样。 开源地址&#xff1a; https://github.com/engigu/Message-Push-Nest 测试平台 系统&am…

网安人必看!CISP家族顶流证书攻略

网络安全已成为当今的热门领域&#xff0c;证书在职业发展中的重要性不言而喻。但是&#xff0c;证书市场五花八门&#xff0c;选择适合自己的证书可是个大问题。别担心&#xff0c;今天我们就来聊聊CISP家族的几个热门认证&#xff0c;让你在网络安全领域的发展更加顺利&#…

Android存储系统基础知识

英文原版链接→ Android存储系统概览图&#xff08;图片模糊的话请拖动图片至新标签页打开&#xff09;&#xff1a; 从 Android 的角度来看 → 内部存储和 → 外部存储&#xff1a; 内部存储 内部存储只能通过已取得 root 权限的设备进行访问。 应用程序包保存在&#xff1a;…

家政小程序开发

随着人民生活水平的提高&#xff0c;我国老龄化日益增加&#xff0c;越来越多的家庭对家政服务需求也日益提升。目前&#xff0c;家政服务业已经成为了人们日常生活中不可缺少的一部分&#xff0c;家政服务市场具有较大的发展潜力。 近几年&#xff0c;家政服务市场规模呈快速…

驱动开发KMDF编译时:cannot open sourcefile “device.tmh“

有人说 设置项目的 WPP Tracing -> 设置 "Run Wpp Tracing" 为 YES&#xff0c;但是属性页压根没有这玩意啊&#xff1f;咋回事呢&#xff1f; 别人的工程属性页是这样的&#xff0c;这是为什么&#xff1f;

IT运维如何帮助企业降本增效?

IT监控运维管理技术发展应用和趋势 1、智能运维 随着人工智能和大数据技术的发展&#xff0c;智能运维将成为IT监控运维管理的重要趋势。通过利用机器学习、深度学习等技术&#xff0c;实现对IT系统的自动化监控、故障预测和智能维护&#xff0c;提高运维效率和质量。 2、容…

数字化转型对企业发展有哪些帮助?

数字化转型利用技术增强流程、运营和客户体验&#xff0c;在业务发展中发挥着至关重要的作用。以下是数字化转型促进企业发展的一些助力&#xff1a; 1.提高效率和生产力&#xff1a; 日常任务和流程的自动化有助于简化操作&#xff0c;减少完成它们所需的时间和精力。数字工…

瑞_数据结构与算法_红黑树

文章目录 1 什么是红黑树1.1 红黑树的背景1.2 红黑树的特性 ★★★ 2 红黑树的Java实现2.1 红黑树颜色枚举类Color2.2 红黑树节点类Node2.2.1 实现判断是否是左孩子方法isLeftChild()2.2.2 实现查找叔叔节点方法uncle()2.2.3 实现查找兄弟节点方法sibling() 2.3 红黑树类RedBla…