10

Python 用の TextBlob を使用して、ツイートの感情分析を行っています。TextBlob のデフォルトのアナライザーは PatternAnalyzer で、非常にうまく機能し、かなり高速です。

sent = TextBlob(tweet.decode('utf-8')).sentiment

NaiveBayesAnalyzer に切り替えようとしましたが、ランタイムが私のニーズには実用的ではないことがわかりました。(ツイートあたり 5 秒に近づいています。)

sent = TextBlob(tweet.decode('utf-8'), analyzer=NaiveBayesAnalyzer()).sentiment

以前に Naive Bayes Classifier の scikit Learn 実装を使用したことがありますが、これほど遅いとは思いませんでした。

少なくともドキュメントには、「映画レビューのデータセットでトレーニングされた Naive Bayes アナライザー」と記載されています。ただし、「映画レビューコーパスで単純ベイズ分類器をトレーニングする」と説明されている関数 train() もあります。各実行前にアナライザーを内部的にトレーニングしますか? ないことを願っています。

これをスピードアップする方法を知っている人はいますか?

4

2 に答える 2

17

はい、Textblob は各実行前にアナライザーをトレーニングします。次のコードを使用して、毎回アナライザーをトレーニングすることを避けることができます。

from textblob import Blobber
from textblob.sentiments import NaiveBayesAnalyzer
tb = Blobber(analyzer=NaiveBayesAnalyzer())

print tb("sentence you want to test")
于 2015-10-27T05:14:50.837 に答える