目录

构建高效自动翻译工作流:技术与实践

引言

在现代企业中,尤其是制药行业,多语言支持是必不可少的。传统的机器翻译存在准确度不足、成本高昂等问题。为了解决这些问题,我们开发了一套基于大语言模型(LLM)的智能翻译工作流,提供三种翻译模式:简单翻译增强型翻译专家型翻译。本文将详细介绍这套工作流的设计和执行过程,并通过实际案例展示其在提高翻译效率和准确性方面的优势。

自动翻译工作流技术实现

工作流程

  1. 标准化和分割内容:用户提交的内容经过标准化和分割,以便于处理。
  2. 识别和提取文本、表格和图形:根据文本类型和需求,自动或手动选择翻译策略。
  3. 翻译执行:服务调用模块启动翻译流程,使用LLM技术进行翻译。
  4. 回填和检查:翻译后的内容按原格式回填,并可选合规检查以确保无敏感内容。

工程设计细节

  • 模块化设计

    • 数据预处理模块:接收和预处理原始翻译请求。
    • 条件判断模块:根据业务规则决定翻译流程。
    • 翻译执行模块:调用LLM进行翻译。
    • 合规处理模块:规范翻译结果。
    • 翻译文件生成模块:格式化最终结果。
  • 参数和结果存储:使用数据库或文件系统存储输入参数和输出结果。

翻译模式

1. 简单翻译

  • 直译:逐字逐句翻译,保持原有格式。
  • 问题识别:审阅直译结果,找出不符合目标语言习惯的部分。
  • 意译:根据直译和问题反馈进行意译,以确保流畅自然。

示例代码(Python)

python 复制代码
import docx

def simple_translate(docx_file, from_language, to_language):
    doc = docx.Document(docx_file)
    texts = []
    
    # 提取文本
    for para in doc.paragraphs:
        if para.text:
            texts.append(para.text)
    
    # 直译
    translated_texts = []
    for text in texts:
        translated_text = translate(text, from_language, to_language)  # 使用LLM进行直译
        translated_texts.append(translated_text)
    
    # 问题识别和意译
    refined_texts = []
    for i, text in enumerate(translated_texts):
        # 审阅直译结果,进行意译
        refined_text = refine_translation(text)  # 根据直译和问题反馈进行意译
        refined_texts.append(refined_text)
    
    # 回填翻译后的文本
    i = 0
    for para in doc.paragraphs:
        if para.text:
            para.text = refined_texts[i]
            i += 1
    
    # 保存翻译后的文档
    ts = time.strftime('%Y%m%d%H%M%S')
    new_file_name = os.path.splitext(docx_file)[0] + f'_{ts}_translated.docx'
    doc.save(new_file_name)
    
    return new_file_name

2. 增强型翻译

  • 初步翻译:使用LLM进行初步翻译。
  • 专家审查:审查翻译内容,给出改进建议。
  • 二次翻译:结合审查建议进行二次翻译。

示例代码(Python)

python 复制代码
import docx

def enhanced_translate(docx_file, from_language, to_language):
    doc = docx.Document(docx_file)
    texts = []
    
    # 提取文本
    for para in doc.paragraphs:
        if para.text:
            texts.append(para.text)
    
    # 初步翻译
    translated_texts = []
    for text in texts:
        translated_text = translate(text, from_language, to_language)  # 使用LLM进行初步翻译
        translated_texts.append(translated_text)
    
    # 专家审查和二次翻译
    refined_texts = []
    for i, text in enumerate(translated_texts):
        # 审查翻译内容,进行二次翻译
        refined_text = refine_translation_with_expert(text)  # 根据审查建议进行二次翻译
        refined_texts.append(refined_text)
    
    # 回填翻译后的文本
    i = 0
    for para in doc.paragraphs:
        if para.text:
            para.text = refined_texts[i]
            i += 1
    
    # 保存翻译后的文档
    ts = time.strftime('%Y%m%d%H%M%S')
    new_file_name = os.path.splitext(docx_file)[0] + f'_{ts}_translated.docx'
    doc.save(new_file_name)
    
    return new_file_name

3. 专家型翻译

  • 初步直译:使用LLM进行初步直译。
  • 专家审查:对直译结果进行审查,提供专业修改建议。
  • 反馈整合:结合专家反馈进行精细调整和优化。

示例代码(Python)

python 复制代码
import docx

def expert_translate(docx_file, from_language, to_language):
    doc = docx.Document(docx_file)
    texts = []
    
    # 提取文本
    for para in doc.paragraphs:
        if para.text:
            texts.append(para.text)
    
    # 初步直译
    translated_texts = []
    for text in texts:
        translated_text = translate(text, from_language, to_language)  # 使用LLM进行初步直译
        translated_texts.append(translated_text)
    
    # 专家审查和反馈整合
    refined_texts = []
    for i, text in enumerate(translated_texts):
        # 审查直译结果,进行精细调整和优化
        refined_text = refine_translation_with_expert_feedback(text)  # 根据专家反馈进行精细调整
        refined_texts.append(refined_text)
    
    # 回填翻译后的文本
    i = 0
    for para in doc.paragraphs:
        if para.text:
            para.text = refined_texts[i]
            i += 1
    
    # 保存翻译后的文档
    ts = time.strftime('%Y%m%d%H%M%S')
    new_file_name = os.path.splitext(docx_file)[0] + f'_{ts}_translated.docx'
    doc.save(new_file_name)
    
    return new_file_name

文档格式保留和还原

使用结构化方法确保文档原始格式的保留。例如,使用python-docx库处理.docx文件,遍历文档中的所有段落、表格、内联形状以及页眉和页脚,提取文本内容,并将这些文本收集到一个列表中,为翻译工作做准备。

在翻译阶段,利用多线程执行提高效率,通过concurrent.futures.ThreadPoolExecutor创建线程池,并将待翻译的文本列表分配给translate函数进行并行处理。翻译完成后,将翻译后的文本准确地还原到原始文档的相应位置。

翻译效果测试

通过对比分析,自动翻译工作流能够保持原文档的格式与内容,自动化判断或人工指定三种不同的翻译方式,以适应不同的翻译需求。简单版翻译适用于快速浏览和非正式场合;增强版翻译适用于需要一定程度专业性的内部文档;专家型翻译在内容完整性、准确度和流畅度方面表现最佳,因此适用于更加正式技术文档。

回顾与总结

自动翻译工作流满足企业级的多元化内部翻译场景,有助于提升用户的翻译体验。这种方案不仅适用于制药行业,也可以拓展到其他垂直行业,如制造、零售、游戏等行业。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
追逐时光者3 分钟前
C#/.NET/.NET Core技术前沿周刊 | 第 33 期(2025年4.1-4.6)
后端·.net
灼华十一16 分钟前
Golang系列 - 内存对齐
开发语言·后端·golang
兰亭序咖啡32 分钟前
学透Spring Boot — 009. Spring Boot的四种 Http 客户端
java·spring boot·后端
独行soc41 分钟前
2025年渗透测试面试题总结- 某四字大厂面试复盘扩展 一面(题目+回答)
java·数据库·python·安全·面试·职场和发展·汽车
Asthenia041242 分钟前
深入解析Pandas索引机制:离散选择与聚合选择的差异及常见误区
后端
zew10409945881 小时前
基于spring boot的外卖系统的设计与实现【如何写论文思路与真正写出论文】
spring boot·后端·毕业设计·论文·外卖系统·辅导·查重
东方雴翾1 小时前
Scala语言的分治算法
开发语言·后端·golang
李慕瑶1 小时前
Scala语言的移动UI设计
开发语言·后端·golang
Sissar1 小时前
变更日志0..1.0
github