簡體   English   中英

Textblob - HTTPError:HTTP 錯誤 429:請求過多

[英]Textblob - HTTPError: HTTP Error 429: Too Many Requests

我有一個數據框,其中一列在每一行都有一個字符串列表。

平均而言,每個列表有 150 個單詞,每個單詞大約 6 個字符。

數據框的 700 行中的每一行都與一個文檔有關,每個字符串都是該文檔的一個單詞; 所以基本上我已經標記了文檔的文字。

我想檢測每個文檔的語言,為此我首先嘗試檢測文檔中每個單詞的語言。

為此,我執行以下操作:

from textblob import TextBlob

def lang_detect(document):

    lang_count = {}
    for word in document:

        if len(word) >= 4:

            word_textblob = TextBlob(word)
            lang_result = word_textblob.detect_language()

            response = lang_count.get(lang_result)

            if response is None:  
                lang_count[f"{lang_result}"] = 1
            else:
                lang_count[f"{lang_result}"] += 1

    return lang_count

df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))

當我這樣做時,我收到以下錯誤:

---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-42-772df3809bcb> in <module>
     25 
---> 27 df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))
     28 
     29 
.
.
.

    647 class HTTPDefaultErrorHandler(BaseHandler):
    648     def http_error_default(self, req, fp, code, msg, hdrs):
--> 649         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    650 
    651 class HTTPRedirectHandler(BaseHandler):

HTTPError: HTTP Error 429: Too Many Requests

錯誤要長得多,我在中間省略了其余部分。

現在,即使我嘗試僅對兩個文檔/行執行此操作,我也會遇到相同的錯誤。

有什么方法可以讓我從textblob獲得更多單詞和文檔的回復?

我在嘗試翻譯推文時遇到了同樣的問題。 由於我超過了速率限制,它開始返回 HTTP 429 too many requests 錯誤。

因此,對於可能想要處理 TextBlob 的其他人,最好檢查速率限制。 Google 提供有關限制的信息: https : //cloud.google.com/translate/quotas?hl=en

如果超出速率限制,則必須等到配額在太平洋時間午夜重置。 可能需要 24 小時才能再次生效。

另一方面,您還可以在請求之間引入延遲,以免打擾 API 服務器。

例如:當您要翻譯列表中的 TextBlob 句子時。

import time
...
for sentence in list_of_sentences:
    sentence.translate()
    time.sleep(1) #to sleep 1 sec

你可以試試谷歌翻譯

“Googletrans 是一個免費且無限制的 Python 庫,它實現了 Google Translate API。它使用 Google Translate Ajax API 調用檢測和翻譯等方法。”

與 TextBlob 類似,Googletrans 具有語言檢測和翻譯等功能。 當我標記語言並翻譯大量郵件時,它對我來說效果很好。

(使用 TextBlob 時,我嘗試過 time.sleep time.sleep(1)但我最終達到了 API 限制...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM