我想在twitter上进行情绪分析。我不想存储任何推文,而是对它们进行分析,比如说关于某个特定标签的积极内容的推文等。我的问题是访问推文太慢。访问推文并对其进行分析并向用户提供结果的方法是什么。这里有一个很好的例子:http://www.sentiment140.com/search?query=hello&hl=en-
尽管上面链接中的那个家伙只拍了10条推文并对其进行了分析。我想知道如何访问api,以便用户能够得到快速响应。
甚至这也是一个很好的例子:http://snapbird.org/即使我知道如何访问推文并自动分析它们,而不必将它们存储在任何地方,这也是一个完美的解决方案。
请注意,我只是问如何在没有存储的情况下访问推文,以便我可以直接对用户进行分析并在我的网络应用程序中显示。
Sentiment140在GoogleApp引擎上,所以你可以打赌他们正在使用Python来完成任务。Python在这方面做得很好,并且有很棒的用于情感分析(NLTK)和使用twitter API的库。还有很棒的教程。您可以按照以下步骤操作:
- 获取关键字的最后N个tweet(使用tweepy-lib)提供的示例
- 将它们存储在阵列中
- 将数组传递给使用Python的NLTK构建的贝叶斯分类器[参见链接]
- 近乎实时地获取分析结果
- 如果需要,可以将它们呈现给用户(在Django/Flask模板中,等等)
从twitter API获取N条推文
花呢示例(返回最后10条带有关键字"莱昂内尔·梅西"的推文)
#!/usr/bin/env python
import tweepy
ckey = 'xxx'
csecret = 'xxx'
atoken = 'xxx'
asecret = 'xxx'
auth = tweepy.OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
api = tweepy.API(auth)
tweets = [] # You pass this array to the Bayesian Classifier
for tweet in tweepy.Cursor(api.search,
q="Lionel Messi",
result_type="recent",
include_entities=True,
lang="en").items(10):
print tweet.created_at, tweet.text
tweets.append(tweet.text) # Store the tweets in your array
构建朴素贝叶斯分类器
关于如何构建分类器和良好资源的示例:
http://ravikiranj.net/drupal/201205/code/machine-learning/how-build-twitter-sentiment-analyzerhttps://github.com/ravikiranj/twitter-sentiment-analyzer
请记住,你必须训练和微调你的机器人/分类器。您在这些资源中获得了更多信息和样板代码。
PS:或者,你可以将你的推文数组/dict传递给像text-processing.com的API这样的服务,他们会为你做情绪分析。。。
http://text-processing.com/demo/sentiment/
https://www.mashape.com/japerk/text-processing/pricing#!文件
在简单的网站中显示结果
对于这个任务,你可以使用烧瓶花呢。只要阅读他们的演示,你就会发现将上面的脚本合并到烧瓶中并在视图中呈现结果是多么容易。
希望它能有所帮助!
您想要使用Twitter的流式API。
有了这个,你可以从推特上获得近乎实时的提要,过滤成你想要的任何搜索文本。
您不需要进行多次请求,也不需要存储结果;只需流式传输和分析。
1) You have to go for some realtime engine like twitter strom api
2) strom has twitter spout(which connects to twitter and pull the tweets)
3) write your own bolt which can take a tweet and perform sentiment and throw(publish) the result to some Q mechanism(like Rabbitmq)
4) from your web app consume the Q(so no persistent layer required here).
5) for sentiment engine, you have to write some Machine learning classifier.
霍普回答了你的问题。