星期三, 一月 11, 2012

Twitter文本挖掘初步

Twitter已经成为社交媒体领域重要的信息来源,也是数据挖掘和可视化的重点研究对象。据说华尔街的多家对冲基金公司已经在利用twitter数据挖掘来衡量人们的情绪,从而预测资本市场的运动方向。可见在未来数年,对twitter信息的挖掘必将成为一个热点。

在R语言中提取twitter信息的扩展包是twitterR,它可以提取公共信息流,也可以针对某个用户提取其信息流,或者是以某个标签搜索推文。下面我们以“wukan”(乌坎)为关键词搜索推文标签,观察推友的发推数量。

首先载入软件包,以#wukan为关键词提取1000条推文,然后将其转化为数据框格式。df数据中存储的中文推文内容在R中似乎无法正常浏览,不过推文的用户名仍然是英文的可加以利用。

library(twitteR)
rdmTweets <- searchTwitter('#wukan', n = 1000)
df <- twListToDF(rdmTweets)
下一步提取推文用户名并制成频数表,然后将发推数小于10的数据删除。为了绘图方便起见,将用户名进行按照发推数重新排序,而非原来的字母顺序。最终数据存在data变量中。
counts <- table(df$screenName)
cc <- data.frame(subset(counts, counts>10))
names(cc) <- 'value'
cc <- data.frame(value = cc$value,name = rownames(cc))
newname <- with(cc, reorder(name, value))
data <- data.frame(cc, newname)
载入ggplot2包,绘制条形图。从图中可观察到,在所有关于#wukan的推文中,revhus这位用户发推数最多。
library(ggplot2)
p <- ggplot(data,aes(y=value,x=newname))
p+geom_bar(stat='identity',aes(fill=value))+coord_flip()


参考资料:
http://cran.r-project.org/web/packages/twitteR/vignettes/twitteR.pdf
http://rdatamining.wordpress.com/2011/11/09/using-text-mining-to-find-out-what-rdatamining-tweets-are-about/
http://blog.ouseful.info/2011/11/09/getting-started-with-twitter-analysis-in-r/
http://simplystatistics.tumblr.com/post/13897994725/plotting-beijingair-data

4 条评论:

  1. 很感谢你的文章。

    在实验文中的代码,在searchTwitter时候,我得把n下降到10左右的才可以。否则报错。也尝试了除了wukan之外的关键词,比如news,这个n也相对较小,不大于100.

    请问,searchTwitter的时候和自己的Twitter授权有关系么?我是半个月前注册到API授权的。

    所以问,searchTwitter并不是在Twitter全库中搜索,而仅仅是在自己ID的相关推文中搜索么?

    谢谢,google不到答案,所以问问你,麻烦了。

    多谢。

    回复删除
  2. 想請教大大我在使用searchTwitter的時候出現這個問題:
    Error in twInterfaceObj$doAPICall(cmd, params, "GET", ...) :
    OAuth authentication is required with Twitter's API v1.1

    我把n下降到10左右還是一樣不行
    想知道原因,謝謝!!

    回复删除
    回复
    1. 使用twitteR包的基本条件是要能翻墙,比如使用VPN,否则无法抓取推文。此外由于官方的限制,抓取条数是有限制的,如果想多抓些可以用开发者认证授权,不过我没试过。

      删除