Я занимаюсь анализом настроений для нескольких языков. мой код работает успешно, но он очень медленный (10 минут только для 11K записей). Вот мой код:
# Spanish Classifier - from https://github.com/aylliote/senti-py
clf = SentimentClassifier()
# Italian Classifier - Also for Russian
from polyglot.text import Text as T
# Germany Classifier
from textblob_de import TextBlobDE as TextBlob_d
# English
from textblob import TextBlob
# French
from textblob_fr import PatternTagger, PatternAnalyzer
def Flag(row):
try:
if row['lang'] == 'es':
txt=clf.predict(row['rev'])
return txt
elif row['lang'] == 'it':
txt=T(row['rev'])
return txt.polarity
elif row['lang'] == 'de':
txt=TextBlob_d(row['rev'])
return txt.sentiment
elif row['lang'] == 'en':
txt=TextBlob(row['rev'])
return txt.sentiment.polarity
elif row['lang'] == 'fr':
txt=TextBlob(row['rev'], pos_tagger=PatternTagger(),
analyzer=PatternAnalyzer())
return txt.sentiment[0]
elif row['lang'] == 'ru':
txt=T(row['rev'])
return txt.polarity
else:
return ""
except:
return ""
df['sent']=df.apply(Flag,axis=1)
Я проверил другие сообщения о том, что импорт textblob.sentiments NaiveBayesAnalyzer очень медленный, но я не думаю, что с такой же ситуацией я сталкиваюсь здесь?
Спасибо