現在有分段、句子數量可能不一致的中英文文本,如何用python實現中英文對照翻譯(即每行英文對應相應的中文)

以下是處理分段且中英文句子數量可能不一致的文本的Python實現方案,包含分句、翻譯和對齊功能:

from googletrans import Translator
import redef split_paragraphs(text):"""按空行分割段落并清洗"""return [p.strip() for p in text.split('\n\n') if p.strip()]def split_sentences(text, lang='en'):"""根據語言分句(支持中英文)"""if lang == 'en':# 處理英文分句(支持縮寫如Mr.、Ms.等)sentences = re.split(r'(?<!\b\w{2}\.)(?<=[.!?])\s+', text)elif lang == 'zh':# 處理中文分句(包含全角標點)sentences = re.split(r'(?<=[。!?])', text)else:raise ValueError("Unsupported language")# 清洗結果并過濾空字符串return [s.strip() for s in sentences if s.strip()]def process_translation(text, src_lang='en', dest_lang='zh-cn'):"""處理完整翻譯流程"""translator = Translator()results = []# 遍歷每個段落for para in split_paragraphs(text):# 源語言分句src_sentences = split_sentences(para, src_lang)try:# 批量翻譯(提高效率)translations = translator.translate(src_sentences, src=src_lang, dest=dest_lang)except Exception as e:print(f"翻譯錯誤: {str(e)}")continue# 目標語言分句(處理翻譯后可能不同的分句情況)dest_sentences = []for t in translations:dest_sentences.extend(split_sentences(t.text, dest_lang))# 對齊處理(取最大長度)max_len = max(len(src_sentences), len(dest_sentences))for i in range(max_len):src = src_sentences[i] if i < len(src_sentences) else "[無原文]"dest = dest_sentences[i] if i < len(dest_sentences) else "[無譯文]"results.append((src, dest))return results# 示例文本(包含多段落和復雜標點)
sample_text = """Hello Mr. Smith! How are you today?
I'm fine, thank you. And you?This is a test sentence with U.S. abbreviations. It should split properly.你好!我是王小明。
今天天氣真好,不是嗎?"""# 執行翻譯(示例處理中英文混合文本)
translations = process_translation(sample_text, 'en', 'zh-cn')# 打印對照結果
for idx, (src, dest) in enumerate(translations, 1):print(f"段落{idx}")print(f"EN: {src}")print(f"CN: {dest}\n")

功能特點:

  1. 智能分句處理

    • 英文支持常見縮寫(如Mr., Ms.等)
    • 中英文使用不同分句規則
    • 處理全角/半角標點差異
  2. 段落保持功能

    • 保留原始段落結構
    • 每個段落獨立處理
    • 自動處理空行分隔
  3. 容錯對齊機制

    # 對齊處理(取最大長度)
    max_len = max(len(src_sentences), len(dest_sentences))
    for i in range(max_len):src = src_sentences[i] if i < len(src_sentences) else "[無原文]"dest = dest_sentences[i] if i < len(dest_sentences) else "[無譯文]"
    
  4. 批量翻譯優化

    # 批量翻譯(提高效率)
    translations = translator.translate(src_sentences, src=src_lang, dest=dest_lang)
    

輸出示例:

段落1
EN: Hello Mr. Smith!
CN: 你好史密斯先生!段落2
EN: How are you today?
CN: 你今天好嗎?段落3
EN: I'm fine, thank you.
CN: 我很好,謝謝你段落4
EN: And you?
CN: 你呢?段落5
EN: This is a test sentence with U.S. abbreviations.
CN: 這是一個包含美國縮寫的測試句子段落6
EN: It should split properly.
CN: 它應該正確分割段落7
EN: 你好!
CN: [無原文]段落8
EN: 我是王小明。
CN: [無原文]段落9
EN: 今天天氣真好,不是嗎?
CN: [無原文]

使用說明:

  1. 安裝依賴

    pip install googletrans==4.0.0-rc1 regex
    
  2. 自定義處理

    • 調整split_sentences中的正則表達式優化分句
    • 添加重試邏輯處理API限制
    • 擴展支持更多語言對
  3. 注意事項

    • Google翻譯API的免費版有調用頻率限制
    • 中文分句準確率約90%(建議對專業文本進行后處理)
    • 網絡連接不穩定時添加重試機制

此方案通過分段落、智能分句、批量翻譯和容錯對齊機制,能夠較好地處理中英文混合文本的對照翻譯需求,即使原文和譯文的句子數量不一致也能保持基本對齊。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73462.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言每日一練——day_8

引言 針對初學者&#xff0c;每日練習幾個題&#xff0c;快速上手C語言。第八天。&#xff08;連續更新中&#xff09; 采用在線OJ的形式 什么是在線OJ&#xff1f; 在線判題系統&#xff08;英語&#xff1a;Online Judge&#xff0c;縮寫OJ&#xff09;是一種在編程競賽中用…

基礎知識《Redis解析》

Redis 詳細解析與介紹 Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的高性能鍵值對&#xff08;Key-Value&#xff09;數據庫&#xff0c;支持多種數據結構&#xff08;如字符串、哈希、列表、集合等&#xff09;&#xff0c;廣泛應用于緩存、消息隊列、…

區跨鏈知識和概念

1、以太坊 Geth 源碼解析 Geth&#xff08;Go Ethereum&#xff09;是以太坊官方提供的 Go 語言實現的客戶端&#xff0c;廣泛用于以太坊全節點運行、挖礦、DApp 開發等。理解 Geth 的源碼有助于掌握以太坊區塊鏈底層邏輯&#xff0c;如區塊同步、EVM 執行、P2P 交互等。 2、…

Vue 計算屬性與 Data 屬性同名問題深度解析

文章目錄 1. 問題背景與核心概念1.1 Vue 響應式系統架構1.2 核心概念定義 2. 同名問題的技術分析2.1 同名場景示例2.2 問題發生機制 3. 底層原理剖析3.1 Vue 初始化流程3.2 響應式系統關鍵代碼 4. 問題解決方案4.1 最佳實踐建議4.2 錯誤處理機制 5. 性能影響分析5.1 遞歸調用性…

Mybatis——基礎操作、動態SQL

目錄 一.基礎操作 1.刪除 2.新增 3.更新 4.查詢 5.XML映射文件 二、動態SQL 1.<if> 2.<where> 3.<set> 4.<foreach> 5.<sql> 6.<include> 一.基礎操作 1.刪除 參數占位符&#xff1a; 注意&#xff1a; #{...}相比于${...}…

[設計模式]1_設計模式概覽

摘要&#xff1a;設計模式原則、設計模式的劃分與簡要概括&#xff0c;怎么使用重構獲得設計模式并改善代碼的壞味道。 本篇作概覽與檢索用&#xff0c;后續結合源碼進行具體模式深入學習。 目錄 1、設計模式原理 核心原則&#xff08;語言無關&#xff09; 本質原理圖 原…

C語言數據類型取值范圍及格式化符號

一、數據類型取值范圍與格式化輸出符號表格 數據類型大小&#xff08;字節&#xff09;取值范圍格式化輸出符號char1-128到127<br>或0到255&#xff08;如果聲明為unsigned char&#xff09;%c (字符)<br>%hhu (無符號)signed char1-1.2810到1.2710%hhd (有符號)u…

2024華東師范大學計算機復試上機真題

2024華東師范大學計算機復試機試真題 2023華東師范大學計算機復試機試真題 2022華東師范大學計算機復試機試真題 2024華東師范大學計算機復試上機真題 2023華東師范大學計算機復試上機真題 2022華東師范大學計算機復試上機真題 在線評測&#xff1a;傳動門&#xff1a;pgcode…

星越L_內后視鏡使用講解

目錄 1內后視鏡角度調節 2,防炫目功能

Spring Boot應用首次請求性能優化實戰:從數據庫連接池到JVM調優

目錄 問題現象與背景分析性能瓶頸定位方法論數據庫連接池深度優化Spring Bean生命周期調優JVM層性能預熱策略全鏈路監控體系建設生產環境驗證方案總結與擴展思考1. 問題現象與背景分析 1.1 典型問題場景 在某互聯網金融項目的Spring Boot應用上線后,運維團隊發現一個關鍵現象…

【深度解析:以“不要的心態”獲取所求的本質邏輯】

深度解析&#xff1a;以“不要的心態”獲取所求的本質邏輯 一、文化基因&#xff1a;禮讓傳統與權力合法性的雙重編碼 儒家倫理的深層滲透 孔子提出"禮之用&#xff0c;和為貴"&#xff0c;將"辭讓"納入"仁義禮智信"的道德體系。《禮記》明確記…

C++【類和對象】(結束篇)

C類和對象 1.static成員2.友元3.內部類4.匿名對象5.對象拷貝時的編譯器優化 1.static成員 用static修飾的成員變量叫做靜態成員變量&#xff0c;靜態成員一定要在類外進行初始化。靜態成員變量為所有類的共享&#xff0c;放入靜態區&#xff0c;不屬于某個具體對象&#xff0c…

每日一題---腐爛的蘋果(廣度優先搜索)

腐爛的蘋果 給定一個 nm nm 的網格&#xff0c;其中每個單元格中可能有三種值中的一個 0 , 1 , 2。 其中 0 表示這個格子為空、1 表示這個格子有一個完好的蘋果&#xff0c;2 表示這個格子有一個腐爛的蘋果。 腐爛的蘋果每分鐘會向上下左右四個方向的蘋果傳播一次病菌&…

maven筆記

maven介紹和作用 Maven 是一款為 Java 項目構建管理、依賴管理的工具&#xff08;軟件&#xff09;&#xff0c;使用 Maven 可以自動化構建、測試、打包和發布項目&#xff0c;大大提高了開發效率和質量。 主要作用的理解&#xff1a; 依賴管理&#xff1a; 在編寫項目時我…

模板-C++提高編程

C的一種編程思想稱為泛型編程&#xff0c;用到的技術就是模板 C提供兩種模板&#xff1a;函數模板和類模板。 1.函數模板 1.函數模板作用 建立一個通用函數&#xff0c;其返回值類型和形參類型可以用一個虛擬的類型來代替,提高代碼復用性&#xff0c;將類型參數化。 2.語法…

基于Asp.net的物流配送管理系統

作者&#xff1a;計算機學姐 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源碼”。 專欄推薦&#xff1a;前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄&#xff1a;…

順序表和鏈表的對比(一)

前言 今天給小伙伴們分享的是在數據結構中順序表和鏈表的對比。它們在計算機科學和軟件開發中具有廣泛的應用&#xff0c;是理解更復雜數據結構&#xff08;如棧、隊列、樹、圖等&#xff09;的基礎。這次將會給大家從定義初始化&#xff0c;以及功能增刪查改上進行詳細對比&a…

星越L_外后視鏡使用講解

目錄 1.外后視鏡調節 2后視鏡折疊 3.后視鏡加熱 1.外后視鏡調節 L控制左邊后視鏡調節,上下撥動調整視野,一般此鏡左右21分,上下55開。 R控制左邊后視鏡調節,上下撥動調整視野,一般此鏡左右13分,上下55開。 2后視鏡折疊 車輛解鎖自動展開 車輛關閉自動折疊 嚴寒天氣…

DevOps實踐:持續集成與持續部署完全指南

文章目錄 引言&#xff1a;從人工到自動化的進化革命一、CI/CD核心認知升級1.1 持續集成 vs 持續部署 vs 持續交付1.2 中小團隊為什么要實施CI/CD&#xff1f; 二、CI/CD工具鏈選型指南2.1 中小團隊推薦技術棧2.2 工具對比決策矩陣 三、實戰五步構建企業級流水線3.1 基礎環境搭…

【數據結構】數據結構,算法 概念

0.本篇問題&#xff1a; 數據、數據元素、數據對象、數據項之間的基本關系&#xff1f;ADT是什么&#xff1f;數據結構的三要素&#xff1f;數據的邏輯結構有哪些&#xff1f;數據的存儲結構有哪些&#xff1f;算法的五個特征&#xff1f;O(1) O(logn) O(n^n) O(n) O(n^2…