科技改變生活 · 科技引領未來

          • 首頁
          • 資訊
          • 技術
          • 百科
          • 問答
          • 學習
          • 看看
          • 站長
          • 生活
          • 快訊

          首頁 > 看看 > 創業經驗

          百度翻譯器在線(百度翻譯在線掃一掃)

          時間:2022-08-22 19:43 作者:陳夕一

          來源:早起Python

          作者:陳熹

          大家好,我是早起。

          本文將給大家分享一個實用的Python辦公自動化腳本 「利用Python批量翻譯英文Word文檔并保留格式」,最終效果甚至比部分收費的軟件還要好!先來看看具體的工作內容。

          一、需求描述

          手上有大量外文文檔(本案例以5份為例,分別命名為 test1.docx test2.docx 以此類推),其中一份如下:

          基本需求:「批量將這些文檔的內容全部翻譯成中文,并轉存到新的文件中」,效果如下:

          高級需求:基本需求滿足的同時,要求 「保留原文檔的格式」,效果如下:

          二、邏輯梳理

          (一)翻譯 API

          本需求的核心是翻譯,策略是利用網絡的翻譯 API,這里推薦百度翻譯開放平臺,不考慮并發數的話可以用標準版,免費使用不限字符量!

          “

          百度翻譯開放平臺:http://api.fanyi.baiduu.com/api/trans/product/index

          ”

          在使用百度的通用翻譯 API 之前需要完成以下工作:

          1. 使用百度賬號登錄百度翻譯開放平臺(http://api.fanyi.baiduu.com);
          2. 注冊成為開發者,獲得APPID;
          3. 進行開發者認證(如僅需標準版可跳過);
          4. 開通通用翻譯API服務:開通鏈接
          5. 參考技術文檔和Demo編寫代碼

          完成后在個人頁面在即可看到 ID 和密鑰,這個很重要!下面給出整理好的通用翻譯 API 的 demo,已經對輸出做簡單修改,代碼拿走就能用!

          可以看到,測試內容準確的被翻譯出來,注意如果需要多次訪問 API,免費版有并發數和時間限制,可以用 time 模塊睡眠一秒

          (二) 格式修改

          高級需求的難點就是保留格式,簡單來說原文檔的頁面格式和段落格式是什么,翻譯后對應的部分就是什么。

          基于上述的邏輯關系,只需要獲取原文檔的對應內容再賦值給新翻譯的文檔即可。(暫時只能滿足頁面設置和段落設置的統一,針對一段中特定詞語的格式修改,保證精確性需要基于自然語言處理NLP,本文暫不涉及)

          2.1 頁面樣式

          頁面樣式只要包括邊距、方向、高度、寬度等等,從原文檔中可以看到,采取的是窄邊距。但我們無需知道窄邊距四個方向應該如何設置,只需要在代碼中呈現新舊文檔的變量傳遞即可,具體如下

          2.2 段落樣式

          段落樣式包括對齊、縮進、間距等等,原文檔中采取了段后縮進,標題是居中對齊。這些設置在變量傳遞中能夠很好完成。如果原文檔中沒有設置的變量值為 None

          2.3 文字塊樣式修改

          對于字號、加粗、斜體、顏色等樣式調整,采取的策略是建立空列表,遍歷原文檔每一段每一個文字塊,獲取相應屬性并放到各自的列表中,對同一段而言,其包含的文字塊屬性最多的選項賦值給翻譯后文檔的對應段落(如同一段全部或大部分的文字是加粗,則翻譯后對應段落所有文字塊均設置為加粗) 對NLP感興趣的讀者可自行嘗試如何高度還原英文文檔中某些特定詞語的樣式修改,并在翻譯后的文檔中體現出來

          上面的代碼不包含對字體的設置,因為沒必要把英文的字體傳遞給中文文檔。對中文字體的設置之前的文章有提到過,比較復雜,直接見代碼:

          from docx.oxml.ns import qn
          
          run.font.name = &39;微軟雅黑&39;
          r = run._element.rPr.rFonts
          r.set(qn(&39;w:eastAsia&39;), &39;微軟雅黑&39;)
          

          (三)整體實現步驟

          現在每個部分操作均以完成,考慮到本例中有多個文檔均需要翻譯,故全部邏輯如下:

          1. 利用 glob 模塊批處理框架可獲取某個文件的絕對路徑
          2. 由 python-docx 完成 Word 文件實例化后對段落進行解析
          3. 解析出的段落文本交給百度通用翻譯 API,解析返回的 Json 格式結果(上面的修改 demo 中已經完成了這一步)并重新寫入新的文件
          4. 同個文件全部解析、翻譯并寫入新文件后保存文件

          三、代碼實現

          導入需要的模塊,除翻譯 demo 中需要的庫外還需要 glob 庫批量獲取文件、python-docx 讀取文件、time 模塊控制訪問并發。為什么要 os 模塊見下文:

          import requests
          import random
          import json
          from hashlib import md5
          import time
          from docx import document
          import glob
          import os
          

          對原 demo 的部分內容進行保留,涉及到 query 參數的代碼需要移動到后面的循環中。保留的部分:

          效果如下

          獲取到段落文本后,可以將段落文本賦值給 query 參數,調用 API demo 的后續代碼。輸出結果的同時用 add_paragraph 將結果寫入新文檔:

          最后保存成新文件,期望命名為 原文件名_translated 的形式,可用 os.path.basename 方法獲取并經字符串拼接達到目的:

          wordfile_new.save(path + r&39;\&39; + os.path.basename(file)[:-5] + &39;_translated.docx&39;)
          

          單個文件操作完成后將讀取和創建文件的代碼塊放到批處理框架內:

          完成了上面的內容后,基本需求就完成了。根據我們梳理的對樣式的修改知識,再把樣式調整的代碼加進來就行了,最終完整代碼如下:

          代碼運行完畢后得到五個新的翻譯后文件

          翻譯效果如下,可以看到英文被翻譯成中文,并且樣式大部分保留!

          至此,所有文檔都被成功翻譯,當然這是機器翻譯的,具體應用時還需要對關鍵部分進一步人工調整,不過整體來說還是一次成功的Python辦公自動化嘗試!

          相關話題

          • 蕾絲特價格表(美腿很長)
          • 尿素的價格多少錢一噸(國際尿素價格大幅下跌)
          • 鮮當歸市場價格(各大產地藥材品種報價)
          • 316不銹鋼價格多少錢一噸(最新3月12日不銹鋼基地報價參考匯總)
          • 千恒按摩椅價格(按摩椅選購經驗分享)
          • 國醬酒價格53度醬香型多少錢(茅臺播窖1935紅色圣地53vol醬香型)
          • 同樣的藥為什么價格相差很多(阿伐那非)
          • 幸福里二手房價格(60萬一套)
          • 尿素的價格多少錢一噸(下調20)
          • 進口牛排價格表(進口牛排選購終極指南)
          • 廢金屬回收價格官方網(廢金屬9月9日廢金屬回收價格調整最高下調2250元)
          • 活旗魚的價格(3名壯漢才搬得動)
          • 重力被子價格(中國推出)
          • 補漏貼價格(沖著好奇買的12個生活小玩意兒)
          • 大豆今年價格(6月份供需報告出爐)
          • 廣州換鎖芯價格(廣州掛靠地址需要注意哪些問題)
          • 查微型空調價格(科龍空調賠本賺吆喝)
          • 碧草云天的價格((散文)
          • 量子燈價格(鼻孔插燈)
          • 西洋參價格參(熬夜上火)

          熱門推薦

          • 古鐘二鍋頭46度多少錢(全國喝啥酒)
          • 順豐寄50斤冰箱多少錢(評測五大快遞平臺)
          • 做飯保姆一個月多少錢(52歲阿姨哭訴)
          • 鹿茸補腎丸多少錢一盒(參茸鞭丸腎陰虛者能吃嗎)
          • 北京換烤瓷牙多少錢(明星為整牙有多拼)
          • 樂高培訓加盟費多少錢(樂高教育取消授權波及上百門店)
          • 西鳳酒15年多少錢一瓶(價不高待客又不失面子的純糧酒)
          • 聚酰亞胺多少錢一公斤(酶中戰斗機)
          • 公司入職體檢一般多少錢(通過聘多多找到工作)
          • 插座維修上門多少錢(換個插座還用找電工)
          • 二元店一年掙多少錢(揭秘)
          • ctfau750鉆戒多少錢(黑客游戲和解謎游戲的關聯之處)
          • 23年工齡退休拿多少錢(繳費23年)
          • 平衡霜多少錢一瓶(日本POLA旗下這個小眾牌子THREE)
          • 歐米茄手表電池多少錢一塊(福布斯公布運動員收入榜單)
          • 正規醫院種植牙多少錢一顆(成本百元卻賣上萬)
          • 微信能賣多少錢(微信賬號被公開買賣)
          • 奔富707多少錢一瓶(宴請時的)
          • 超聲波焊接機多少錢一臺(關于超聲波焊接)
          • 一鳴加盟費要多少錢(一鳴真鮮奶吧多少錢)

          陳夕一

          關注
          免責聲明:本文章由會員“陳夕一”發布,如果文章侵權,請聯系我們處理,本站僅提供信息存儲空間服務 如因作品內容、版權和其他問題請于本站聯系

          關注排行榜

          1. 1新百倫多少錢(都有一個)
          2. 2活牛多少錢一斤(牛價丨2月11日)
          3. 3鋁單板多少錢一平方(鋁單板廠家報價大揭秘)
          4. 4一箱牛奶多少錢(實體店一箱牛奶賣50元)
          5. 5普洱茶一般多少錢(有的普洱茶只要幾十有的上萬)
          6. 6換手機外屏多少錢(盤點各個旗艦手機換屏價格)
          7. 7一輛電動車多少錢(最低不到8000元)
          8. 8巴寶莉圍巾多少錢(花2580元網購的博柏利圍巾竟系假貨)
          9. 9養老保險每年多少錢(2021年養老保險繳費15年)
          10. 10每升油多少錢(?定了)

          編輯精選

          Copyright ?2009-2022 KeJiTian.Com, All Rights Reserved

          版權所有 未經許可不得轉載

          增值電信業務經營許可證備案號:遼ICP備14006349號

          網站介紹 商務合作 免責聲明 - html - txt - xml

          感谢您访问我们的网站,您可能还对以下资源感兴趣:

          经典香港**毛片免费看_91精品一区二区综合在线_欧美人与性动交a欧美精品_国产小视频在线看