我正在使用TextBlob for python对推文进行情感分析。 TextBlob中的默认分析器是PatternAnalyzer,其运行良好且运行速度非常快。

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

我现在尝试切换到NaiveBayesAnalyzer,发现运行时对于我的需求而言是不切实际的。 (每条推文接近5秒。)
sent = TextBlob(tweet.decode('utf-8'), analyzer=NaiveBayesAnalyzer()).sentiment

我以前曾经使用过scikit Learn的Naive Bayes分类器实现,却没有发现它这么慢,所以我想知道在这种情况下是否正确使用它。

我假设分析器是经过预训练的,至少the documentation指出“在电影评论的数据集上经过训练的朴素贝叶斯分析器”。但是,它还有一个函数train(),它被描述为“训练电影评论语料库上的朴素贝叶斯分类器”。是否在每次运行之前对分析仪进行内部培训?我希望不是。

有人知道一种加快速度的方法吗?

最佳答案

是的,Textblob将在每次运行之前训练分析仪。您可以使用以下代码来避免每次训练分析仪。

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

print tb("sentence you want to test")

关于python - TextBlob NaiveBayesAnalyzer非常慢(与Pattern相比),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33241842/

10-11 07:23