[AI安全论文] 26.基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
前文详细介绍了向量表征系列文章,从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec。这篇文章将描述Excel可视化分析的基本知识,以2022年电影市场为例。在论文中,一个好的图表胜千言万语,而实验数据生成后如何可视化表示至关重要,之前作者通常利用Python、Echarts等编写代码实现,而这篇文章将利用Excel生成,不论是代码、工具还是Office,它们都只是论文的辅助工具,更重要的是论文的创新和实验所生成的结果。
基础性文章,希望您喜欢。一方面自己英文太差,只能通过最土的办法慢慢提升,另一方面是自己的个人学习笔记,并分享出来希望大家批评和指正。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
文章目录:
一.论文实验图表的重要性
二.柱状图绘制
三.饼图绘制
四.折线图绘制
五.条形图绘制
六.词云图绘制
七.方框图绘制
八.重点:四象限图绘制
九.重点:演员关系图谱绘制
十.总结
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正。同时,前期翻译提升为主,后续随着学习加强会更多分享论文的精华和创新,在之后是复现和论文撰写总结分析。希望自己能在科研路上不断前行,不断学习和总结更高质量的论文。虽然自己科研很菜,但喜欢记录和分享,也欢迎大家给我留言评论,学术路上期待与您前行,加油~
前文推荐:
[AI安全论文] 05.RAID-Cyber Threat Intelligence Modeling Based on GCN
[AI安全论文] 06.NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats
[AI安全论文] 14.S&P2019-Neural Cleanse 神经网络中的后门攻击识别与缓解
[AI安全论文] 21.S&P21 Survivalism经典离地攻击(Living-Off-The-Land)恶意软件系统分析
[AI安全论文] 24.向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)
[AI安全论文] 25.向量表征经典之DeepWalk:从W2V到DeepWalk,再到Asm2vec和Log2vec (二)
[AI安全论文] 26.基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
一.论文实验图表的重要性
二.柱状图绘制
三.饼图绘制
四.折线图绘制
五.条形图绘制
六.词云图绘制
七.方框图绘制
八.重点:四象限图绘制
九.重点:演员关系图谱绘制
#coding:utf-8
import csv
import os
import time
import numpy as np
from scipy.sparse import coo_matrix
from collections import Counter
def get_feature(fr_name,fw_name):
#记录关键词
word = []
all_str = ""
fr = open(fr_name,"r",encoding="utf-8")
#---------------------------------------------------------------------------
#读取数据
for line in fr.readlines():
line = line.strip()
line = line.replace("\n", "")
all_str += line + "/"
for n in line.split("/"):
if n not in word:
word.append(n)
fr.close()
print(len(word)) #关键词总数
print(word)
#数量统计
all_words = all_str.split("/")
c = Counter()
for x in all_words:
if len(x)>1 and x != '\r\n':
c[x] += 1
print('\n词频统计结果:')
for (k,v) in c.most_common(20):
print("%s:%d"%(k,v))
#采用coo_matrix函数解决该MemoryError矩阵过大汇报内存错误
word_vector = coo_matrix((len(word),len(word)), dtype=np.int32).toarray()
print(word_vector.shape)
#---------------------------------------------------------------------------
#计算共现矩阵
fr = open(fr_name,"r",encoding="utf-8")
num = 0
line = fr.readline()
while line:
line = line.strip()
line = line.replace("\n", "")
nums = line.split("/")
#print(nums)
#循环遍历关键词所在位置 设置word_vector计数
i,j = 0,0
while i<len(nums): #ABCD共现 AB AC AD BC BD CD加1
j = i + 1
w1 = nums[i] #第一个单词
while j<len(nums):
w2 = nums[j] #第二个单词
k = 0
n1 = 0
while k<len(word): #从word数组中找到单词对应的下标
if w1==word[k]:
n1 = k
break
k = k +1
#寻找第二个关键字位置
k = 0
n2 = 0
while k<len(word):
if w2==word[k]:
n2 = k
break
k = k +1
#重点:词频矩阵赋值 只计算上三角
if n1<=n2:
word_vector[n1][n2] = word_vector[n1][n2] + 1
else:
word_vector[n2][n1] = word_vector[n2][n1] + 1
j = j + 1
#print(w1,w2,n1,n2)
i = i + 1
num += 1
line = fr.readline()
fr.close()
print("next:",num)
#---------------------------------------------------------------------------
#CSV文件写入
fw = open(fw_name,"w",encoding="utf-8",newline="")
writer = csv.writer(fw)
writer.writerow(['Word1', 'Word2', 'Weight'])
i = 0
while i<len(word):
w1 = word[i]
j = 0
while j<len(word):
w2 = word[j]
#判断两个词是否共现 共现词频不为0的写入文件
if word_vector[i][j]>0:
#写入文件
templist = []
templist.append(w1)
templist.append(w2)
templist.append(str(int(word_vector[i][j])))
writer.writerow(templist)
j = j + 1
i = i + 1
else:
fw.close()
#共现分析
fr_name = "data.txt"
fw_name = "keywords-rela.csv"
get_feature(fr_name,fw_name)
print(fw_name)