python词频统计完整步骤_Python中文文本分词、词频统计、词云绘制

本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。

1 准备工作

导入相关的包,读取相关数据。

#导入包

import pandas as pd #数据处理包

import numpy as np #数据处理包

from wordcloud import WordCloud #绘制词云

import jieba #中文分词包

import jieba.posseg as pseg

import re #正则表达式,可用于匹配中文文本

import collections #计算词频

#读取数据,使用pandas读取csv

df_question = pd.read_csv("D:/data/raw_data_20200401_copy/question.csv",low_memory=False)

#选择问题描述部分

df_description = df_question["description"].drop_duplicates().reset_index() #去除重复问题

list_description = df_description["description"].tolist()

description_all = "start"

for i in range(999): #选定一定范围作为示范,全部处理实在太多了

description_all = description_all+list_description[i]

#选取中文:使用正则表达式

filter_pattern = re.compile('[^\u4E00-\u9FD5]+')

chinese_only = filter_pattern.sub('', description_all)

2 中文分词

#中文分词

words_list = pseg.cut(chinese_only)

#删除停用词

stopwords1 = [line.rstrip() for line in open('D:/data/BI/stop_words/中文停用词库.txt', 'r', encoding='utf-8')]

stopwords2 = [line.rstrip() for line in open('D:/data/BI/stop_words/哈工大停用词表.txt', 'r', encoding='utf-8')]

stopwords3 = [line.rstrip() for line in open('D:/data/BI/stop_words/四川大学机器智能实验室停用词库.txt', 'r',encoding='utf-8')]

stopwords = stopwords1 + stopwords2 + stopwords3

meaninful_words = []

for word, flag in words_list:

if word not in stopwords:

meaninful_words.append(word)

3 计算词频

绘制词频并查看词频排在前30的词。

#计算词频,一行解决

word_counts = collections.Counter(meaninful_words) # 对分词做词频统计

word_counts_top30 = word_counts.most_common(30) # 获取前30最高频的词

print (word_counts_top30)

4 绘制词云

#绘制词云

wc = WordCloud(background_color = "black",max_words = 300,font_path='C:/Windows/Fonts/simkai.ttf',min_font_size = 15,max_font_size = 50,width = 600,height = 600)

wc.generate_from_frequencies(word_counts)

wc.to_file("wordcoud.png")

看一下结果,因为数据来源于某医患交互平台,分析的是患者关注的问题都有哪些,所以结果如下图。可以看到大家在关注什么问题,一般哪些问题在线上被问到的比较多。。。可能数据不全,仅做示范hhh。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDY3ODI2Ng==,size_16,color_FFFFFF,t_70#pic_center

好啦,是不是很简单,有问题可以私我

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

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

相关文章

现代 C++ 测试工具链

点击蓝字关注我们gtest的问题gtest需要安装有时候带来很多不方便,比如需要经常切换gcc和clang的时候就比较麻烦,安装的gtest可能在另一个编译器下编译不过, 编写跨平台程序的时候需要多次安装gtest,非常不便。另外一个问题是网络原因&#xf…

数据结构压缩_将数据压缩到数据结构中

数据结构压缩这个故事是关于我们最近在Plumbr进行的容量优化任务。 一切始于将无害的要求添加到现有组合中。 您可能知道,Plumbr监视解决方案作为连接到服务器的Java代理分发。 只需少量添加即可跟踪一段时间内所有已连接的代理,以便可以实时回答以下问…

python打开软件输入消息_用Python编写一个私人助理程序,为我们起草电子邮件!...

在你的工作中是否有一些你自己经常做重复的任务?这就是编程的乐趣所在。通过一些思考和编程,您可以使您的任务自动化,并为您节省大量时间。在本文中,我们将介绍一些Python工具和技巧,让你可以创建自己的Python个人助理。1. 助手功…

swing 状态视图分离_Java Swing模型视图适配器介体

swing 状态视图分离通常,我基于Spring Framework构建Java应用程序。 但是,最近有人要求我使用与语言无关的MVC框架PureMVC为客户端实现Java桌面应用程序,因此以下是我在Java Swing中为PureMVC进行员工管理展示的演示实现。 如果您想继续学习&…

超级炫酷的C语言技巧!

点击蓝字关注我们C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。一、指定的初始化很多人都知道像这样来静态地初始化数…

webgl 基础渲染demo_WebGL + ThreeJS 实现实时水下焦散 Part 1

知乎视频​www.zhihu.com采用 WebGL 和 ThreeJS 运行实时焦散运算,需要一点相关基础。本文主要介绍焦散的原理以及计算方法原作者https://github.com/martinRenou​github.com代码和原文https://github.com/martinRenou/threejs-caustics​github.com由于本人的笔电…

python代码性能分析_使用memory_profiler对代码进行性能分析会增加执行时间

我正在编写一个简单的应用程序,它将大文本文件拆分为较小的文件,并且我已经编写了2个版本,一个使用列表,另一个使用生成器。我使用memory_profiler模块对这两个版本进行了概要分析,并清楚地显示了生成器版本的更好的内…

超硬核C++BestPractices翻译与阅读笔记

点击蓝字关注我们硬货开始这本书的副标题是:45ish Simple Rules with Specific Action items for better C ,这本书是由大佬推荐的, C学习有必要掌握一下这45条最佳实践, 可以很大程度上提升代码的可读性和健壮性, 而且这本书也不…

redis集成spring_将Redis集成到您的Spring项目中

redis集成spring本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中。 我们将从Gradle配置开始。 我们将使用jedis驱动程序。 group com.gkatzioura.spring version 1.0-SNAPSHOTapply plugin: java apply plugin: eclipse apply plugin: idea apply plugin: spring…

Python3实现翻转二叉树问题

Python3实现翻转二叉树问题翻转一棵二叉树。# 二叉树的结构如下 class TreeNode:def __init__(self, x):self.val xself.left Noneself.right None# 解决方案 class Solution:# 从根节点开始递归翻转其左子树和右子树def invertTree(self, root: TreeNode) -> TreeNode:i…

diskgenius单文件专业版_金蝶KIS专业版系列——系统工具六(业务套打工具)

导读:(一)问一问1.1.套打的作用1.2.举例(二)怎么进入套打设计器2.1.入口12.2.入口2(三)怎么使用套打设计器打开套打模板3.1.打开系统标准套打模板3.2.新建一个空白的套打模板3.3.保存套打模板3.…

面试常问的16个C语言问题,你全会吗?

点击蓝字关注我们金三银四不少小伙伴在找工作,这里我给大家分享一下面试中经常会遇到的一些嵌入式C语言问题,你看看能做到全会吗?1、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题&#xff09…

高性能 高可用 可弹性伸缩_性能,可伸缩性和活力

高性能 高可用 可弹性伸缩本文是我们名为Java Concurrency Essentials的学院课程的一部分。 在本课程中,您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识,并学习诸如原子性,同步和线程安全性的概念。 在这里查看 !…

Python3实现32位整数翻转

Python3实现32位整数翻转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 […

iptables命令_程序员最有用的linux命令汇总

总结程序员在工作中,最有用的linux命令如下:1、vi/vim 我们须要在服务器上代码一些代码时候,就用vi/vim命令就可以,vim是vi的升级,本色自带代码高亮工具,利于查看。dd 删除光标所在行o 向光标所在行向下增加…

抽象类和接口设计_如何设计类和接口

抽象类和接口设计本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的旅程! 在这里查看 &#xf…

详解C++异常

点击蓝字关注我们1、异常概念异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: …

Python3 反转一个单链表

Python3 反转一个单链表反转一个单链表。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL解题: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val x # …

python怎么改字体_python,tkinter_Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线,python,tkinter - phpStudy...

Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线 如题。未查到Tkinter下,促发条件后,是否能修改label中文字的样式 class Pomodoro_app(Tk): def add_task(self): global time time StringVar() time.set("Start") t…

使用所有对象共有的方法

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的旅程! 在这里查看 ! 目录 1.简…