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

引言

在现代企业中,尤其是制药行业,多语言支持是必不可少的。传统的机器翻译存在准确度不足、成本高昂等问题。为了解决这些问题,我们开发了一套基于大语言模型(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函数进行并行处理。翻译完成后,将翻译后的文本准确地还原到原始文档的相应位置。

翻译效果测试

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

回顾与总结

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

相关推荐
苏三说技术1 分钟前
给你1亿的Redis key,如何高效统计?
后端
JohnYan24 分钟前
工作笔记- 记一次MySQL数据移植表空间错误排除
数据库·后端·mysql
程序员清风1 小时前
阿里二面:Kafka 消费者消费消息慢(10 多分钟),会对 Kafka 有什么影响?
java·后端·面试
WindrunnerMax1 小时前
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
前端·架构·github
CodeSheep1 小时前
宇树科技,改名了!
前端·后端·程序员
hstar95271 小时前
三十五、面向对象底层逻辑-Spring MVC中AbstractXlsxStreamingView的设计
java·后端·spring·设计模式·架构·mvc
楽码1 小时前
AI决策树:整理繁杂问题的简单方法
人工智能·后端·openai
星辰大海的精灵1 小时前
基于Dify+MCP实现通过微信发送天气信息给好友
人工智能·后端·python
wandongle1 小时前
HTML 面试题错题总结与解析
前端·面试·html
import_random2 小时前
[深度学习]5大神经网络架构(介绍)
后端