Я хочу провести анализ тональности списка твитов, полученных по определенному ключевому слову. Поступающие твиты в основном на голландском языке, и TextBlob нуждается в их преобразовании в английский, чтобы вычислить полярность и субъективность твита. Как я могу перевести твит на английский язык? В основном мне нужен БЕСПЛАТНЫЙ API для перевода. Возникли проблемы с использованием переводчика MS Bing. Я пробовал использовать библиотеки goslate
, langdetect
, translate
и translation
, но ни одна из них не сработала. Вот код, который я использую:
#!/usr/bin/env python
import tweepy
import goslate
from langdetect import detect
from translation import baidu, google, youdao, iciba
from translate import Translator
import os
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
t=time.time()
#karan's api keys
consumer_key = 'xxx'
consumer_secret = 'xxx'
access_key = 'xxx'
access_secret = 'xxx'
gs=goslate.Goslate()
translator= Translator(to_lang="en")
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
search_results = api.search(q="football", count=2, geocode="52.132633,5.2912659999999505,300km")
f=open('tweets_football.txt','wb')
for i in range(0,len(search_results)):
try:
print search_results[i].text
print search_results[i].id
print search_results[i].user.screen_name
trans=search_results[i].text
#print(gs.translate(trans,'en'))
print(translator.translate(trans))
if search_results[i].text not in search_results:
f.write(search_results[i].text)
f.write("\n")
print "Written to file!"
except Exception as e:
print str(e)
f.close()
print time.time()-t
Пожалуйста, укажите мне правильное направление. Если есть более простой способ для этого процесса, пожалуйста, предложите и его. Заранее спасибо.