首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对100条推文进行情感分析的app,最好的加速方法是什么?

对100条推文进行情感分析的app,最好的加速方法是什么?
EN

Stack Overflow用户
提问于 2015-05-25 01:37:29
回答 1查看 91关注 0票数 0

我正在创建一个应用程序,从Twitter的API返回100条推文,然后对所有100条推文进行情绪分析。当用户输入感兴趣的查询并且浏览器向'/get_tweets‘发出请求时,将调用以下方法。

代码语言:javascript
复制
def get_tweets
  tweets = $twitter.search(query_params, count: 100).attrs[:statuses]
  @tweets = []
  datumbox = Datumbox.create('2ef48d67598553804617c9862dfcaf8f')
  tweets.each do |t|
    tweet = Tweet.new
    tweet.twitter_id = t[:id_str]
    tweet.text = t[:text]
    tweet.user_id = t[:user][:id_str]
    tweet.name = t[:user][:name]
    tweet.screen_name = t[:user][:screen_name]
    tweet.location = t[:user][:location]
    tweet.profile_image_url = t[:user][:profile_image_url_https]
    tweet.tweet_created_at = t[:created_at]

    # Need to remove @ symbols to use datumbox API analysis
    sentiment_text = tweet.text.gsub(/@/,'')
    tweet.sentiment = datumbox.twitter_sentiment_analysis(text: sentiment_text)
    @tweets << tweet
  end
  render :index
end

问题是这是非常慢的。当用户输入他/她感兴趣的查询时,该方法执行101个API调用。

什么是加速这一过程的最佳方法?在构建需要进行“大量”API调用的应用程序时,有没有需要考虑的设计方法?最后,我希望以选项卡格式向用户显示tweet,用户可以在正面、中性和负面tweet之间切换。我是否应该考虑批量调用情感分析API?

非常感谢您的建议!

EN

回答 1

Stack Overflow用户

发布于 2015-05-25 03:31:37

可能的方法:

  1. 预先在后台处理推文,这样用户就不会实时查询Twitter API,而只是查询预处理的数据库。
  2. 使用AJAX,这样页面就不会被重新加载。您可以显示一个加载指示器,它将向用户显示the is happening.
  3. Don't一次性获得100条tweet。一次完成一个,并通过保持连接打开,在处理过程中将每个请求发送给用户。为此,您可以查看ActionController::Live,或者某种WebSockets实现。您的javascript将有一个事件处理程序,用于在每个已处理的推文到达时将其放入您的UI中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30426382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档