全球新闻数据可视化(1)--数据下载与处理
一、GDELT介绍
二、研究内容
- 基于BERT实现GDELT新闻事件数据中事件正文文本的情感分析
- 基于MySQL的本地数据库导入、查询和存储
- 基于JavaScript和echarts的数据可视化图表库对新闻事件数据进行多方面可视化
- 将可视化界面部署到服务器上以供其他用户通过网址查看
- 其他算法进行情感分析
三、项目实施方法设计
1、使用语言
2、项目流程
四、具体实现与测试
1、数据集下载
def get_data(url):# 获取urlfile_name = url.split("gdeltv2/")[1].split(".zip")[0]r = requests.get(url)temp_file=open("./temp.zip", "wb")temp_file.write(r.content)temp_file.close()try:my_zip=zipfile.ZipFile('./temp.zip','r')my_zip.extract(file_name,path="./data")my_zip.close()except Exception:print("%s not exist" % file_name)return None
def get_data_df(): #日期读取f=open("date.txt")date=[]time=[]for i in f.readlines():date.append(i.strip("\n"))f.close()f=open("time.txt")for i in f.readlines():time.append(i.strip("\n"))f.close()#地址整合url1 = "http://data.gdeltproject.org/gdeltv2/%s.export.CSV.zip"url2 = "http://data.gdeltproject.org/gdeltv2/%s.mentions.CSV.zip"for i in date:for j in time:str_real_time=i+jget_data(url1%str_real_time)get_data(url2%str_real_time)print("%s-complete"%i)
import os
import shutil
for i in range(1,8):src_folder="./totaldata/20220"+str(i)tar_folder="./totaldata/20220"+str(i)files=os.listdir(src_folder)for file in files:src_path=src_folder+'/'+filefor file in files:# 将每个文件的完整路径拼接出来src_path = src_folder + '/' + fileif os.path.isfile(src_path):tar_path = tar_folder + '/' + file.split('.')[-2]print(tar_path)# 如果文件夹不存在则创建if not os.path.exists(tar_path):os.mkdir(tar_path)# 移动文件shutil.move(src_path, tar_path)
os.chdir(Folder_Path)
file_list=os.listdir()
for i in range(1,len(file_list)):df=pd.read_csv(file_list[i],sep='\t')df.to_csv(SaveFile_Path+"/"+SaveFile_Name,encoding="utf_8_sig",index=False,header=None,mode='a+')sys.stdout.write("\r已合并:%.2f%%"%float((i/len(file_list))*100))sys.stdout.flush()
2、数据集处理
(1)查看空字段数量并排序
is_null=df_01.isnull().sum().sort_values(ascending=False)
is_null[is_null>row*0.85]#筛选出空值数量大于85%的数据
(2)删除缺失率大于85%字段
drop_columns=['Actor2Type3Code','Actor1Type3Code','Actor2Religion2Code',
'Actor1Religion2Code','Actor2EthnicCode','Actor1EthnicCode',
'Actor2Religion1Code','Actor2KnownGroupCode','Actor1Religion1Code',
'Actor1KnownGroupCode','Actor2Type2Code','Actor1Type2Code']
df_01.drop(drop_columns,axis=1,inplace=True)
得到结果如下:
3、数据导入MySQL与分析
(1)创建数据库
这里值得注意的是,很多字段在后续分析中没有用到,但还是导入进去了,为了和元数据保持一致性。
CREATE TABLE `export` (
`GLOBALEVENTID` int NOT NULL,
`SQLDATE` bigint,
`MonthYear` bigint,
`Year` bigint,
`FractionDate` bigint,
`Actor1Code` varchar(255),
`Actor1Name` varchar(255),
`Actor1CountryCode` varchar(255),
`Actor1Type1Code` varchar(255),
`Actor2Code` varchar(255),
`Actor2Name` varchar(255),
`Actor2CountryCode` varchar(255),
`Actor2Type1Code` varchar(255),
`IsRootEvent` varchar(255),
`EventCode` varchar(255),
`EventBaseCode` varchar(255),
`EventRootCode` varchar(255),
`QuadClass` int,
`GoldsteinScale` double,
`NumMentions` int,
`NumSources` int,
`NumArticles` int,
`AvgTone` double,
`Actor1Geo_Type` varchar(255),
`Actor1Geo_FullName` varchar(255),
`Actor1Geo_CountryCode` varchar(255),
`Actor1Geo_ADM1Code` varchar(255),
`Actor1Geo_ADM2Code` varchar(255),
`Actor1Geo_Lat` double,
`Actor1Geo_Long` double,
`Actor1Geo_FeatureID` varchar(255),
`Actor2Geo_Type` varchar(255),
`Actor2Geo_FullName` varchar(255),
`Actor2Geo_CountryCode` varchar(255),
`Actor2Geo_ADM1Code` varchar(255),
`Actor2Geo_ADM2Code` varchar(255),
`Actor2Geo_Lat` double,
`Actor2Geo_Long` double,
`Actor2Geo_FeatureID` varchar(255),
`ActionGeo_Type` varchar(255),
`ActionGeo_FullName` varchar(255),
`ActionGeo_CountryCode` varchar(255),
`ActionGeo_ADM1Code` varchar(255),
`ActionGeo_ADM2Code` varchar(255),
`ActionGeo_Lat` double,
`ActionGeo_Long` double,
`ActionGeo_FeatureID` varchar(255),
`DATEADDED` bigint,
`SOURCEURL` text,
PRIMARY KEY (`GLOBALEVENTID`)
);
(2)导入数据
LOAD DATA INFILE 'E:/term/code/mergedata/export/export_202201.csv' INTO TABLE
`export`
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
(3)年份处理和简单查询
DELETE
FROM rus_and_ukr
WHERE `MonthYear`<202201
SELECT COUNT(GLOBALEVENTID) FROM export -- 21504131
接下来将针对俄乌冲突进行筛选查询和可视化~
全球新闻数据可视化(1)--数据下载与处理相关推荐
- GEEer成长日记九:Worldpop100m分辨率人口数据可视化及批量下载
最近看到好多小伙伴在找Worldpop人口数据.小编之前去看的时候,全国的影像一张就4G左右,太大了.不过小编已经为大家搜集好了全国的数据,关注微信公众号:GEEer成长日记.即可获取. 今天我们主要 ...
- 什么是数据可视化,数据可视化有什么价值
"数据可视化"这个词看上去似乎让人有点摸不着头脑,但其实在实际生活中也有类似的应用. 举个例子,媒婆给你介绍对象,前面给你铺垫一堆,如五官端正.身材修长.皮肤雪白(各种繁杂的信息描 ...
- python可视化的优势_「数据可视化」数据可视化的优势有哪些?
数据可视化的优势有哪些?大数据可视化的实际意义是协助人更强的分析数据,信息内容的品质挺大水平上取决于其表达形式.对大数字列举所构成的数据信息中所包括的实际意义开展剖析,使剖析結果数据可视化. 实际上大 ...
- MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测
MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测 摘要 近些年,随着计算机技术的不断发展,神 ...
- Tikz作图教程:pgfplots宏包二维数据可视化的数据导入方法
pgfplots 绘图思想简介 下面一段介绍来自pgfplots说明文档的引言部分,它对pgfplots的绘图思想作了清晰地描述: 科研工作者在交流研究结果.论文时,将数据可视化往往是必要和方便的. ...
- 图灵程序设计丛书•鲜活的数据:数据可视化指南 - 电子书下载(高清版PDF格式+EPUB格式)...
图灵程序设计丛书•鲜活的数据_数据可视化指南-邱 (Nathan Yau) 在线阅读 百度网盘下载(o3hg) 书名:图灵程序设计丛书•鲜活的数据:数据可视化指南 ...
- 【数据可视化】数据可视化之美——用专家的眼光洞察数据
⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术.Web3.区块链.答疑解惑.面试辅导以及职业发展.博主创作的 <前端面试复习笔记& ...
- AB PLC数据的Node-Red简单数据可视化+MQTT数据云共享之节点分享
介绍 本文主要介绍Node-Red读取AB PLC 数据并做简单的数据可视化设计以及数据的云端局部共享 . 目的只为分享Node-Red节点及使用. 数据读取及发布配置 本节通过Node-Red节点的 ...
- 【数据可视化】数据可视化七大发展趋势
根据云栖社区文章整理,2017年全球深度报道大会针对数据可视化趋势. 1. 玩转地图 Groeger表示,目前的可视化技术水平已经远远超出了Google Maps,而且每天都会出现很多实验性的技术. ...
- 数据可视化:数据可视化四象限,教你正确应用图标
文章目录 简介 01 观点说明 02 观点生成类 03 可视化发掘 3.1 可视化证实 3.2 可视化探索 04 日常数据可视化 简介 将性质和目的这两个问题的答案整合在一个经典的2×2矩阵中,就得到 ...
最新文章
- 测试中如何管理外包质量_如何从测试自动化中实现价值
- Android RecyclerView 性能优化总结
- nodemanager不能正常关闭_家居燃气安全,燃气阀门的开与关可不能不当回事
- Atitit 浏览器tech原理与概论 目录 1. 浏览器概述	1 1.1. 浏览器野史 UserAgent列传	1 1.2. 浏览器趋势	1 1.3. 浏览器大战	1 1.4. 三次浏览器大战	2
- 语音信号的LPC特征提取
- 计算机电源改造加大功率,最标准的电脑电源功率计算公式 十代酷睿电源搭配建议...
- 数字单位转换(例:元->万元)
- 【Java每日一题】Java笔试100题(1)
- 数据报表开发技巧:自动为数据报表添加【小计】、【总计】行
- matlab零序五次谐波,基于5次谐波的小电流接地系统故障选线方法仿真与分析.docx...
- Luogu5149会议座位
- Fortify常见漏洞解决方案
- 操作系统OS第一章练习作业【附答案详解】
- 三星手机定时开关机设置方法
- 【菜鸟窝】人工智能就业与面试指南
- buuctf_Misc-喵喵喵
- matlab imfill,Python相当于Matlab的灰度函数imfill?
- php 通过phpqrcode.php 生成二维码
- bsc是指什么_什么是平衡计分卡
- python+vue 餐饮食品安全监管投诉平台