You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Googletrans处理大数据集失效:Dataframe波斯语翻译遇阻

解决大规模DataFrame文本翻译中断问题

问题原因

你遇到的核心问题是Googletrans免费API的请求频率限制,循环中每次初始化Translator+高频请求会触发限流机制,导致后续翻译请求失败,仅完成约1800行。

解决方案

以下是针对性优化方案,解决限流、重试和进度丢失问题:

1. 核心优化方向

  • 复用Translator实例,避免重复初始化带来的资源浪费和请求特征异常
  • 添加请求延迟,降低请求频率,规避限流
  • 实现失败重试机制,临时网络波动或限流时自动重试
  • 分批保存翻译结果,防止意外中断丢失全部进度

2. 优化后的代码

import pandas as pd
from googletrans import Translator
import time
from tenacity import retry, stop_after_attempt, wait_exponential

# 仅初始化一次翻译器,避免重复创建连接
translator = Translator()

# 失败重试装饰器:最多重试3次,等待时间指数增长(缓解限流)
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
def translate_single_text(text, dest_lang='fa'):
    translated = translator.translate(text, dest=dest_lang)
    return translated.text

def batch_translate(df, text_col='question', batch_size=100):
    translated_df = df.copy()
    translated_df['translated'] = ''
    
    # 分批处理数据,降低单次请求压力
    for start in range(0, len(df), batch_size):
        end = min(start + batch_size, len(df))
        batch = df.iloc[start:end]
        
        for idx in batch.index:
            try:
                raw_text = batch.loc[idx, text_col]
                translated_text = translate_single_text(raw_text)
                translated_df.loc[idx, 'translated'] = translated_text
                # 添加小延迟,避免触发API频率限制
                time.sleep(0.5)
            except Exception as e:
                print(f"行{idx}翻译失败: {str(e)}")
                translated_df.loc[idx, 'translated'] = None
        
        # 每批处理完成后保存中间进度,防止意外中断丢失数据
        translated_df.to_csv('translated_progress.csv', index=False)
        print(f"已完成{end}/{len(df)}行翻译,进度已保存")
    
    return translated_df

# 调用翻译函数
final_translated_df = batch_translate(df)
final_translated_df.to_csv('final_translated_data.csv', index=False)

3. 额外说明

  • 若未安装tenacity库,先执行pip install tenacity
  • 可根据实际情况调整time.sleep()时长(0.3-1秒区间均可)和batch_size大小
  • 若仍遭遇持续限流,建议切换到Google Cloud Translation API(需付费,但无严格频率限制,适配大规模数据翻译场景)

内容的提问来源于stack exchange,提问作者Majid wasiqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:52:09