Heim >Backend-Entwicklung >Python-Tutorial >Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?
In diesem Artikel stellen wir Ihnen ein praktisches Python-Büroautomatisierungsskript vor „Verwenden Sie Python, um englische Word-Dokumente stapelweise zu übersetzen und das Format beizubehalten“. Software! Werfen wir zunächst einen Blick auf die konkreten Arbeitsinhalte.
Ich habe eine große Anzahl fremdsprachiger Dokumente zur Hand (in diesem Fall nehmen wir 5 Dokumente als Beispiel, benannt test1.docx
test2.docx
usw.), von denen eines wie folgt lautet :
Grundlegende Anforderungen : „Alle Inhalte dieser Dokumente stapelweise ins Chinesische übersetzen und in neue Dateien übertragen“ , der Effekt ist wie folgt:
Erweiterte Anforderungen : Während die Grundbedürfnisse erfüllt sind Wenn die Anforderung „Format der Originaldokumente beibehalten“ erfüllt ist, ist der Effekt wie folgt:
Der Kern dieser Anforderung ist Übersetzung, die Strategie besteht darin, die Übersetzungs-API des Netzwerks zu verwenden, hier empfehlen wir die Baidu Translation Open Platform. Wenn Sie die Anzahl gleichzeitiger Benutzer nicht berücksichtigen, können Sie die Standardversion verwenden, die kostenlos ist und keine Zeichenbeschränkung hat !
“Baidu Translation Open Platform:
”http: //api.fanyi.baidu.com/api/trans/product/index
http://api.fanyi.baidu.com/api/trans/product/index
在使用百度的通用翻译 API 之前需要完成以下工作:
http://api.fanyi.baidu.com
);完成后在个人页面在即可看到 ID 和密钥,这个很重要!下面给出整理好的通用翻译 API 的 demo,已经对输出做简单修改,代码拿走就能用!
可以看到,测试内容准确的被翻译出来,注意如果需要多次访问 API,免费版有并发数和时间限制,可以用 time
http://api.fanyi.baidu.com code>) ;
Sie können sehen, dass der Testinhalt korrekt übersetzt wurde. Beachten Sie, dass die kostenlose Version Parallelität und Zeitlimits hat, wenn Sie mehrmals auf die API zugreifen müssen , können Sie
Der Seitenstil muss nur Ränder, Richtung, Höhe, Breite usw. enthalten. Wie Sie dem Originaldokument entnehmen können, werden schmale Ränder übernommen. Aber wir müssen nicht wissen, wie man die vier Richtungen schmaler Ränder festlegt. Wir müssen nur die variable Übertragung der alten und neuen Dokumente im Code wie folgt darstellen
Der Absatzstil umfasst Ausrichtung, Einzug, Abstände usw. werden nach Absätzen im Originaldokument eingerückt und der Titel wird zentriert. Diese Einstellungen lassen sich gut in der Variablenübergabe vornehmen. Wenn der Variablenwert, der im Originaldokument nicht festgelegt ist, None
Für Stilanpassungen wie Schriftgröße, Fettschrift, Kursivschrift, Farbe usw. gilt folgende Strategie Erstellen Sie eine leere Liste und durchlaufen Sie das Originaldokument. Für jeden Textblock in jedem Absatz werden die entsprechenden Attribute abgerufen und in die jeweiligen Listen eingefügt. Für denselben Absatz wird die Option mit den meisten Textblockattributen dem entsprechenden Absatz zugewiesen des übersetzten Dokuments (z. B. der gesamte oder der größte Teil eines Absatzes). Wenn der Text fett gedruckt ist, werden nach der Übersetzung alle Textblöcke des entsprechenden Absatzes fett dargestellt.) Leser, die sich für NLP interessieren, können versuchen, die Stiländerungen bestimmter spezifischer Wörter in englischen Dokumenten weitgehend wiederherzustellen und sie in den übersetzten Dokumenten widerzuspiegeln
Der obige Code enthält keine Schriftarteinstellungen, da keine Änderungen erforderlich sind Die englische Schriftart wird an das chinesische Dokument übergeben. Die Einstellung chinesischer Schriftarten wurde im vorherigen Artikel erwähnt. Bitte sehen Sie sich den Code direkt an:
glob
模块批处理框架可获取某个文件的绝对路径python-docx
完成 Word 文件实例化后对段落进行解析导入需要的模块,除翻译 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'\\' + os.path.basename(file)[:-5] + '_translated.docx')
单个文件操作完成后将读取和创建文件的代码块放到批处理框架内:
完成了上面的内容后,基本需求就完成了。根据我们梳理的对样式的修改知识,再把样式调整的代码加进来就行了,最终完整代码如下:
代码运行完毕后得到五个新的翻译后文件
翻译效果如下,可以看到英文被翻译成中文,并且样式大部分保留!
至此,所有文档都被成功翻译,当然这是机器翻译的,具体应用时还需要对关键部分进一步人工调整,不过整体来说还是一次成功的Python办公自动化尝试!
Das obige ist der detaillierte Inhalt vonIst das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!