- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新浪微博文本分析初探
新浪微博文本分析初探Posted on /2013/01/analysis-of-weibo/2013/01/13 by /author/bigknife/郝智恒自从lijian大哥的Rweibo包问世以来,便成了R爱好者们获取新浪微博数据的最为重要的工具。在该包的中文主页上,作者对如何连接新浪微博的API,获取授权,并以此为基础开发应用的原理讲解的非常清楚。对于我这种连基本的网页开发神马原理都一点也不清楚的菜鸟来说,Rweibo是一种非常趁手的获取微博数据的工具。有了获取数据的工具,对于中文文本分析来说,最重要的是分词。这里使用的分词算法来自中科院 ictclas算法。依然是沾了lijian大哥Rwordseg的光,直接拿来用了。有了这两样利器,我们便可以来分析一下新浪微博的数据了。我选取的话题是最近热映的国产喜剧电影《泰囧》,在微博上拿到了998条和“泰囧”有关的微博文本。代码如下(以下代码不能直接执行,请首先阅读链接中Rweibo的关于授权帮助文档):require(Rweibo)registerApp(app_name = SNA3, ********, ****************)roauth - createOAuth(app_name = SNA3, access_name = rweibo)res - web.search.content(泰囧, page = 50, sleepmean = 10, sleepsd = 1)$Weibo获取了数据之后,首先迫不及待对微博文本进行分词。代码如下(Rwordseg包可以在语料库中自助加入新词,比如下面的insertWords语句):require(Rwordseg)insertWords(泰囧)n = length(res[, 1])res = res[res!= ]words = unlist(lapply(X = res, FUN = segmentCN))word = lapply(X = words, FUN = strsplit, )v = table(unlist(word))v = sort(v, deceasing = T)v[1:100]head(v)d = data.frame(word = names(v), freq = v)完成分词之后,我们最先想到的,便是对词频进行统计。词频排名前53的词列表如下(这个词频是我人工清理过的,但是只删除了一些符号):泰囧 1174 一代宗师 87 时候 53 生活 44 娱乐 35 成功 30电影 385 看过 70 影片 52 文化 43 但是 33 王宝强 30票房 306 上映 68 今天 51 影院 43 分享 33囧 275 泰国 68 喜剧 51 炮轰 40 发现 32笑 192 感觉 62 导演 49 电影院 38 故事 32俗 188 观众 61 好看 49 排 38 光线 32十二生肖 123 可以 60 喜欢 49 哈哈 37 国民 32什么 104 大家 59 上海 48 兽 37 时间 32中国 102 教授 56 现在 48 水平 37 哈哈哈 31徐峥 90 11亿 54 搞笑 47 需要 35 逼 30从中我们可以看出一些东西。比如说这部电影的口碑似乎还不错,此外某教授对其的炮轰也引发了不少得讨论。另外,同档期的另外两部电影(一代宗师,十二生肖)也经常和它同时被提及(这是否会对某些搞传播和营销的人带来一些启发,联动效应之类的,纯数个人瞎说)。 词云展示是不可少的,展示频率最高的150个词(这里我实现把分词的结果存放在了txt文件中,主要目的是为了节省内存):require(wordcloud)d = read.table(wordseg.txt)dd = tail(d, 150)op = par(bg = lightyellow)# grayLevels = gray((dd$freq)/(max(dd$freq) + 140))# wordcloud(dd$word, dd$freq, colors = grayLevels)rainbowLevels = rainbow((dd$freq)/(max(dd$freq) - 10))wordcloud(dd$word, dd$freq, col = rainbow(length(d$freq)))par(op)下面做一些相对来说比较专业的文本挖掘的工作。主要目的是对这998条微博进行聚类。聚类里最核心的概念是距离。将距离比较靠近的数据聚为一类就是聚类。对于文本来说,如何定义距离呢?也就是说我如何来衡量微博与微博之间的距离。这涉及到了文本挖掘最基本的概念,通过建立语料库,词频-文档矩阵,来衡量文档之间的相关性,从而衡量文
文档评论(0)