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

使用EasyNMT英译德时,如何跳过已为德语的行?

仅翻译英语行、跳过德语行的EasyNMT实现方案

你可以通过语言检测实现需求:先判断每行文本的语言,仅对英语内容执行翻译,德语内容直接保留原文本。以下是修改后的代码:

import pandas as pd, warnings
from easynmt import EasyNMT
from langdetect import detect, LangDetectException

warnings.filterwarnings('ignore')
model = EasyNMT('opus-mt')

df = pd.read_excel('test.xlsx')

def en_de(x):
    try:
        # 检测文本语言
        lang = detect(x)
        if lang == 'en':
            # 仅英语内容执行翻译
            return model.translate(x, source_lang='en', target_lang='de')
        else:
            # 非英语内容直接返回原文本
            return x
    except LangDetectException:
        # 处理无法检测语言的情况,直接返回原文本
        return x

df['col_tl'] = df['col1'].apply(en_de)

关键说明:

  • 引入langdetect库实现语言自动检测,需先通过pip install langdetect安装该库
  • 加入异常捕获LangDetectException,避免因短文本或无意义内容导致的检测失败中断程序
  • 仅当检测到语言为英语(lang == 'en')时才调用翻译接口,德语或其他语言内容直接返回原值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:40:38