python高频词_python几万条微博高频词分析

python几万条微博高频词分析

看到别人有做影视热评的分析统计,觉得挺好玩的,就来试试

看看效果

Screenshot_2018-05-21-11-00-42-879_com.master.wei.png

思路

抓取想要的微博数据写入数据库

分词统计出词汇出现次数

过滤无意义的干扰词

存入数据库

写接口,然后Android端展示

代码

数据库连接 masterWeiBo.Utils.Sql

import pymysql

import pymysql.cursors

import threading

class Mydb(object):

tableName='master'

def __init__(self):

self.lock=threading.Lock()

self.client = pymysql.connect(host='localhost',charset='utf8', port=3306, user='root', passwd='ck123', db='weibo', cursorclass=pymysql.cursors.DictCursor)

self.client.autocommit(True)

self.cursor = self.client.cursor()

开始

import jieba

from masterWeiBo.Utils.Sql import Mydb as db

# 创建停用词list

def stopwordslist(filepath):

stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]

return stopwords

cursor = db().cursor

#如果不存在词表就创建

cursor.execute("""CREATE TABLE IF NOT EXISTS `weibo`.`masterWeiBo_category` (

`id` INT NOT NULL AUTO_INCREMENT,

`count` INT NOT NULL DEFAULT 0,

`category` VARCHAR(100) NOT NULL,

`wordsTop10` VARCHAR(1000) NULL,

PRIMARY KEY (`id`));""")

#清空词表

cursor.execute("DELETE FROM weibo.masterWeiBo_category")

#获取分类分词

cursor.execute("SELECT count(id) as countd, come FROM weibo.masterWeiBo_master GROUP BY come")

results = cursor.fetchall()

print(results)

dicts=[]

#加载过滤词汇

stopwords = stopwordslist("/root/PYServer/myFirstPYServer/words.txt")

for result in results:

each={}

each['count']=result['countd']

each['come']=result['come']

print(result['countd'])

print(result['come'])

cursor.execute("SELECT content from weibo.masterWeiBo_master where come= '"+result['come']+"'")

contents = cursor.fetchall()

articals=''

#把指定分类的内容拼接起来

for artical in contents:

articals+=","+artical['content']

#结巴分词

cuts = jieba.cut(articals)

words={}

#统计词频

for cut in cuts:

if(cut in words):

words[cut]=words[cut]+1

else:

words[cut]=1

#按词频倒序排列

sortedWords = sorted(words.items(), key=lambda d: d[1], reverse=True)

wordsTop10=''

i=0

#获取top10词汇

for key ,value in sortedWords:

#过滤无效词汇

if(key in stopwords or key.__len__()<2):

continue

wordsTop10+=key+","+str(value)+";"

i+=1

if(i==10):

wordsTop10=wordsTop10[:wordsTop10.__len__()-1]

break

each['wordsTop10']=wordsTop10

dicts.append(each)

#写入数据库

for value in dicts:

sql = "INSERT INTO weibo.masterWeiBo_category (count,category,wordsTop10) values( '" + str(

value['count']) + "','" + value['come'] + "','" + value['wordsTop10'] + "')"

print(sql)

cursor.execute(sql)

cursor.close()

print(dicts)

大功告成

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

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

相关文章

属性值动态调整_【VBA】Range对象的常用方法属性(三)

本文继续上一节的Range对象的方法和属性的讲解。上一讲讲到了End属性寻找最后一个已经使用的单元格。这一节继续讲解关于动态找单元格区域方面的属性。Offset 偏移相信学过OFFSET工作表函数的人对这个印象比较深刻&#xff0c;它可是函数中高手必备函数之一。在VBA中&#xff0…

git 新建分支并切换到该分支_git切换到指定分支,git新建分支与合并

一&#xff0c;git切换到指定分支使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况&#xff0c;操作如下1&#xff0c;查看远程所有分支git branch -agit branch不带参数,列出本地已经存在的分支&#xff0c;并且在当前分支的前面用*标记&#xf…

mysql入门到跑路_Mysql入门二十小题(DBA老司机带你删库到跑路)2018.11.26

1、 请介绍数据库管理系统的种类及代表产品RDBMS: mysql oracle mssqlNoSQL: redis mongoab memcache2、 请简述数据库管理系统的作用数据存储,管理数据,备份恢复,安全性,权限管理,3、 请简述RDBMS和NoSQL的特性对比RDBMS&#xff1a;强大的查询功能、强一致性、二级索引、支…

mysql用户如何迁移_迁移MySQL用户及权限

导出[rootdb01 tmp]# mysql -B -N -uroot -p -e "SELECT CONCAT(\, user,\\, host, \) FROM user WHERE user ! debian-sys-maint AND user ! root AND user ! " mysql > /tmp/mysql_all_users.txt[rootdb01 tmp]# cat /tmp/mysql_all_users.txt[rootdb01 tmp]# c…

mysql安装包没有安装程序_MySQL5.6的zip包安装教程详解

之前我们都是后缀为.msi的文件&#xff0c;换言之就是傻瓜式安装&#xff0c;但是有些版本不容易控制安装路径&#xff0c;或者数据库编码格式&#xff0c;还有些会安装很多无用的服务&#xff0c;但是都没有后缀为.zip文件简单直接&#xff0c;说是在哪里&#xff0c;就在哪里…

mysql not in 多列,MySQL中的多列外键?

I have a table that has a primary key consisting of two columns (product_id, attribute_id). I have another table that needs to reference this table. How can I make a foreign key in the other table to link it to a row in the table with two primary keys?解决…

导入mysql source_mysql导入source数据库

首先要确保数据库存在&#xff0c;如果不存在则创建方法1 source很智能&#xff0c;很方便&#xff0c;很快捷。# mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 54467Server version: 5.6.36-log Sour…

mysql count优化_MySQL count()函数及其优化

很简单&#xff0c;就是为了统计记录数由SELECT返回为了理解这个函数&#xff0c;让我们祭出 employee_tbl 表所有记录统计行的总数计算 Zara 的记录数注意&#xff1a;由于 SQL 查询对大小写不敏感&#xff0c;所以在 WHERE 条件中&#xff0c;无论是写成 ZARA 还是 Zara&…

dz论坛连接mysql数据库_dz论坛搬家后连接数据库等教程

dz搬家后&#xff0c;第一步就是上传源文件到网站根目录和导入数据库然后修改对应的数据库连接配置文件 一共有三个这样修改之后网站就可以访问啦1、config/config_global.php$_config[db][1][dbuser] 数据库用户名;$_config[db][1][dbpw] 数据库密码;$_config[db][1][dbname…

mysql创建表时默认默认_mysql创建数据表时指定默认值教程

指定默认值如果在插入行时没有给出值&#xff0c;MySQL允许指定此时使用的默认值。默认值用 CREATE TABLE 语句的列定义中的 DEFAULT 关键字指定。请看下面的例子&#xff1a;输入&#xff1a;create table orderitems(order_num int NOT NULL,order_item int NOT NULL,prod_id…

csv mysql 导入 mac_将sqlserver导出的csv数据导入到ubuntu和mac上的mysql

最近在捣鼓一些数据相关的东西。将sql server里的数据导入到ubuntu和mac上的mysql&#xff0c;方法有很多。不过我选择了最简单的一种&#xff1a;将sql server的数据导成csv&#xff0c;然后将csv导入到mysql。想法挺好&#xff0c;坑挺多。sql server是windows的&#xff0c;…

2012 安装mysql 5.6_如何安装mysql server 5.6

匿名用户1级2016-02-22 回答有两种方法&#xff0c;一种方法使用mysql的check table和repair table 的sql语句&#xff0c;另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。1. check table 和 repair table登陆mysql 终端…

php mysql循环语句怎么写_mysql数据库循环语句该怎么写???

数据库结构num date2 2013-07-245 2013-07-258 2013-08-0310 2013-08-224 2013-09-10最后要在页面中输出为一个行行统计格式7月份 7条记录8月份 18条记录9月份 4条记录要求sql语句只有一句话&#xff0c;有的人会想可以select (count(条件))关键是还要换行的。。有点不会了。回…

mac mysql 安装 简书_在Mac系统上配置MySQL以及Squel Pro

为了响应nodejs的大红大紫&#xff0c;最近应用其实现了一些server端的功能。数据库方面选择了老少咸宜的MySQL。今后肯定还会有相关应用需求。特此记录Mac系统下如何安装、配置MySQL及其管理工具Squel Pro。为什么选择MYSQL&#xff1a;数据库有很多&#xff0c;为什么么我选择…

ntext在mysql_varchar和text说不清的那些事

数据库定义到char类型的字段时&#xff0c;不知道大家是否会犹豫一下&#xff0c;到底选char、nchar、varchar、nvarchar、text、ntext中哪一种呢&#xff1f;结果很可能是两种&#xff0c;一种是节俭人士的选择&#xff1a;最好是用定长的&#xff0c;感觉比变长能省些空间&am…

win+mysql自动备份吗_Windows下mysql自动备份的最佳方案

网上有很多关于window下Mysql自动备份的方法&#xff0c;其实不乏一些不好的地方和问题&#xff0c;现总结出一个最好的方法供大家参考&#xff1a;新建一个记事本&#xff0c;然后重命名为&#xff1a; mysql_backup.bat 然后单击右键选择编辑&#xff0c;把下面的部分粘贴进来…

字符串转16进制_16、atoi-整数字符串转整数-leetcode8-中等

思路&#xff1a;借助正则表达式。class Solution:def myAtoi(self, s: str) -> int:import repattern re.compile(r^[-]?d) # 生成patterns s.lstrip() #去除左侧空格num_str pattern.findall(s) #找到pattern&#xff0c;返回一个listnum int(*num_str) #用*将list解…

python递归查找_[Python]递归查找文件(最简洁)

google了一下发现大多数人都是自己实现的&#xff0c;其实python标准库里是有相关方法的&#xff0c;更简洁&#xff0c;而且支持pattern匹配。其实自己实现也没多难&#xff0c;但是一个非常重要的经验告诉我&#xff0c;内置方法哪怕代码跟你的一模一样都会比你自己写的快很多…

vue移动端通过px动态计算图片宽高_vue图片宽高自适应_移动web图片高度自适应的解决方案...

由于图片的加载是在dom加载完成之后进行的&#xff0c;于是&#xff0c;在手机端浏览网页时&#xff0c;经常会看到页面刚打开时很多内容叠在一起&#xff0c;当图片加载完成后&#xff0c;页面会由于图片加载完成出现明显的抖动针对这个问题&#xff0c;有以下几种解决方案媒体…

多个数据文件 mysql_mysql多实例(多个配置文件方式)

CleverCode最近在研究mysql的多实例&#xff0c;发现有两种方式&#xff1a;第一种是使用多个配置文件启动不同的进程来实现多实例。这种方式的优势逻辑简单&#xff0c;配置简单&#xff0c;缺点是管理起来不太方便。第二种是通过官方自带的mysqld_multi。使用单独的配置文件来…