原文链接:/?p=5124
原文出处:拓端数据部落公众号
包含关键词“生物信息学”的推文示例
第1步: 加载所需的软件包
# 加载所需的软件包library(igraph)
第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")
最受欢迎的见解
1.采用spss-modeler的web复杂网络对所有腧穴进行分析
2.用R语言和python进行社交网络中的社区检测
3.R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
4.在R语言中使用航空公司复杂网络对疫情进行建模
5.python隶属关系图模型 基于模型的网络中密集重叠社区检测
6.使用Python和SAS Viya分析社交网络
7.关联网络分析:已迁离北京外来人口的数据画像
8.情感语义网络:游记数据感知旅游目的地形象
9.用关联规则数据挖掘探索药物配伍中的规律