包含关键词“生物信息学”的推文示例
第1步: 加载所需的软件包
可下载资源
# 加载所需的软件包
library(igraph)
自社交网络诞生以来,有关学者和专家就对社交网络的概念定义和 内涵解释存在不少争议,且国内外的学者对社交网络的研究更多的集中 于其商业及社交价值,加之社交网络这一存在不断变化发展的过 程中,使得学界对社交网络的定义更加模糊不淸c
学者Amelman (2003)对社交网络的定义是:社交网络是一个 虚拟的个人空间,用户在空间里上传个人资料,兴趣爱好,并且不断更 新自我状态与信息,同时连接聚集到一个或多个可信赖的朋友或同亊群 体屮,使用社交网络提供的多种应用工具丰富充实空间里的信息资料, 同时达到增进群体内部关系的目的。
综合网络及国内.外学者对社交网络的研究,本文将社交网络定义 为:以社交软件(Social Network Software)为工具,以社交网站(Social Network Site)为载体,通过一系列网站应用为人们提供社会性网络服 务,帮助人们建立网络社交关系的交往平台。也就是我们平常所说的社 交网站
第2步: 收集关于“生物信息学”的推文
# 包含“生物信息学”的英语推文
dm_tweets = searchTwitter("bioinformatics", n=500,)
# 得到文本
dm_txt = sapply(dm_tweets, function(x) x$getText())
第3步:识别转发
# 查找转发的正则表达式
grep("(RT|via)((?:\\b\\W*@\\w+)+)", dm_tweets,
# 哪些推文是转发推文
rt_patterns = grep("(RT|via)((?:\\b\\W*@\\w+)+)",
dm_txt, ignore.case=TRUE)
# 显示转发(这些是我们要关注的转发)
dm_txt[rt_patterns]
第4步:收集谁转发和谁发布
我们将使用这些结果来形成边列表以创建图形
# 创建列表以存储用户名
who_retweet = as.list(1:length(rt_patterns))
# for循环
for (i in 1:length(rt_patterns))
{
# 通过转发实体获取消息
twit = dm_tweets[[rt_patterns[i]]]
# 获取转推源
poster = str_extract_all(twit$getText(),
"(RT|via)((?:\\b\\W*@\\w+)+)")
#删除':'
poster = gsub(":", "", unlist(poster))
# 转推的用户名
who_post[[i]] = gsub("(RT @|via @)", "", poster, ignore.case=TRUE)
# 转推用户名
who_retweet[[i]] = rep(twit$getScreenName(), length(poster))
# 转换列表为向量格式
who_post = unlist(who_post)
第5步: 从编辑清单创建图形
# 两列边矩阵
retweeter_poster = cbind(who_retweet, who_post)
# 产生图
rt_graph = graph.edgelist(retweeter_poster)
# 获取点名称
ver_labs = get.vertex.attribute(rt_graph, "name", index=V(rt_graph))
第6步: 让我们绘制图
# 选择绘图布局
glay = layout.fruchterman.reingold(rt_graph)
# 绘图
par(bg="gray15", mar=c(1,1,1,1))
plot(rt_graph, layout=glay,
vertex.label.color=hsv(h=0, s=0, v=.95, alpha=0.5),
edge.width=3,
edge.color=hsv(h=.95, s=1, v=.7, alpha=0.5))
# 添加标题
title("\nTweets with 'bioinformatics': Who retweets whom",
cex.main=1, col.main="gray95")
第7步:生物信息学表示
# 绘制另外一个图
par(bg="gray15", mar=c(1,1,1,1))
plot(rt_graph, layout=glay,
edge.color=hsv(h=.35, s=1, v=.7, alpha=0.4))
# 添加标题
title("Tweets with 'bioinformatics': Who retweets whom",
cex.main=1, col.main="gray95", family="mono")
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!