|||
推荐系统实验……
这周的任务是抓取新浪微博的数据(某一用户所有微博的所有评论),并对内容做情感分析。
通过摸索,得知了新浪微博抓取数据的流程:通过一个账号在线申请到微博应用,得到应用的app_key和secret_key,通过这两个参数和一个微博账号,可以申请到access_token,这是调用大部分新浪微博api所必须用到的信息。
有了access_token,就可以调用大部分微博api了。
新浪api文档:http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2
但是,幸福没有那么容易……新浪对api调用频次做了限制,对应用、使用应用的用户、IP层面上做了限制,具体限制如下:
所以,写好下载代码后(做到这几个字用了1天多的时间……),我一口气申请了八个应用,一个应用调用频次用完了,换下一个应用,循环使用。这样,用了半天的时间(过程需要人工干预,争取写出下一版本的代码,不需要人工干预)终于把中国红十字会的所有微博的所有评论下载下来了。(代码还存在一些小bug,就是异常处理部分。没想到微博评论的id居然还有重复的,导致一些数据没能正确存入数据库,下一版本修正这个补丁)。
数据下载下来了,如何做情感分析呢?作为一个测试性质的实验,先做初步的分析:看评论内容中正面情感词和负面情感词的比例。要做到这一点,首先得进行分词——将一段句子拆成单个的词。难点在于,句子是中文。在网上找了许久,找到了apache下的开源项目Lucene,用法很简单。但是网上很多教程都是旧版的,又找了好久,终于找到一个2012年版本的:
http://www.cnblogs.com/luxh/archive/2012/06/23/2559260.html
切分的效果还算不错。
听师兄说中科院有个开源项目也是做中文分词的,准确率很高,用C++写的。等研究下。
然后还需要有一个词性情感标注好了的字典,作为依据。师兄给了一个文档,包含两万七千左右个词:
http://pan.baidu.com/share/link?shareid=411164&uk=2366416894
我试了下,很多微博中出现的词,并没有包含在词典中。看来下一步还要找词典……
先到这了
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-7-17 14:21
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社