sloria / TextBlob

Simple, Pythonic, text processing--Sentiment analysis, part-of-speech tagging, noun phrase extraction, translation, and more.
https://textblob.readthedocs.io/
MIT License
9.09k stars 1.13k forks source link

HTTPError: HTTP Error 429: Too Many Requests #296

Closed monk-boop closed 4 years ago

monk-boop commented 4 years ago

I'm trying to increase my data size by converting it to different languages and back to english. This is my code below:

def translate(comment, language):
    if hasattr(comment, "decode"):
        comment = comment.decode("utf-8")

    text = TextBlob(comment)
    try:
        text = text.translate(to=language)
        time.sleep(0.5)
        text = text.translate(to="en")
        time.sleep(0.5)
    except NotTranslated:
        pass

    return str(text)
def main():

    languages = ["es", "de", "fr"]

    comments_list = train["comment_text"].str.lower().fillna('something').values

    if not os.path.exists("/content/drive/My Drive/"):
        os.mkdir("/content/drive/My Drive/")

    parallel = Parallel(backend="threading", verbose=5)
    for language in languages:
        print('Translate comments using "{0}" language'.format(language))
        translated_data = parallel(delayed(translate)(comment, language) for comment in comments_list)
        train["comment_text"] = translated_data

        result_path = os.path.join(args.result_path, "train_" + language + ".csv")
        train.to_csv(result_path, index=False)

if __name__ == "__main__":
    main()

But I get the following error:

HTTPError Traceback (most recent call last)

in () 25 26 if __name__ == "__main__": ---> 27 main() 22 frames /usr/lib/python3.6/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs) 648 class HTTPDefaultErrorHandler(BaseHandler): 649 def http_error_default(self, req, fp, code, msg, hdrs): --> 650 raise HTTPError(req.full_url, code, msg, hdrs, fp) 651 652 class HTTPRedirectHandler(BaseHandler): HTTPError: HTTP Error 429: Too Many Requests >

Does anyone know how to get around this?

sloria commented 4 years ago

The translation module has been deprecated because it uses an old, unsupported Google Translate API. Use the official Google Translate API instead.

sloria commented 4 years ago

You might want to check out https://github.com/ssut/py-googletrans as a substitute for TextBlob's translation functionality