Heim >Backend-Entwicklung >Python-Tutorial >Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

Python当打之年
Python当打之年nach vorne
2023-08-09 17:37:521491Durchsuche


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.

1. Beschreibung der Anforderungen

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 : Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

Grundlegende Anforderungen : „Alle Inhalte dieser Dokumente stapelweise ins Chinesische übersetzen und in neue Dateien übertragen“ , der Effekt ist wie folgt: Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

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: Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

2. Logische Sortierung

1. Übersetzungs-API

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/indexhttp://api.fanyi.baidu.com/api/trans/product/index

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

  1. 使用百度账号登录百度翻译开放平台(http://api.fanyi.baidu.com);
  2. 注册成为开发者,获得APPID;
  3. 进行开发者认证(如仅需标准版可跳过);
  4. 开通通用翻译API服务:开通链接
  5. 参考技术文档和Demo编写代码
Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

完成后在个人页面在即可看到 ID 和密钥,这个很重要!下面给出整理好的通用翻译 API 的 demo,已经对输出做简单修改,代码拿走就能用!Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

可以看到,测试内容准确的被翻译出来,注意如果需要多次访问 API,免费版有并发数和时间限制,可以用 time

Die folgenden Arbeiten müssen abgeschlossen werden, bevor Baidus universelle Übersetzungs-API verwendet werden kann:
    Verwenden Sie das Baidu-Konto, um sich bei der Baidu Translation Open Platform anzumelden ( http://api.fanyi.baidu.com code>) ;
  1. Als Entwickler registrieren, APPID erhalten;
  2. Entwicklerzertifizierung durchführen (Sie können diese überspringen, wenn Sie nur die Standardversion möchten);
  3. Offener universeller Übersetzungs-API-Dienst: open link
  4. Informationen zum Schreiben von Code finden Sie in der technischen Dokumentation und in der Demo
Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?
Nach Abschluss können Sie die ID und den Schlüssel auf der persönlichen Seite sehen. Das ist sehr wichtig! Die Demo der kompilierten universellen Übersetzungs-API ist unten aufgeführt. Die Ausgabe wurde einfach geändert und der Code kann verwendet werden!

Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

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

🎜2. Formatänderung🎜🎜🎜Die Schwierigkeit bei erweiterten Anforderungen besteht darin, das Format beizubehalten. Einfach ausgedrückt: Was ist das Seitenformat und das Absatzformat des Originaldokuments und was ist der entsprechende Teil nach der Übersetzung? 🎜🎜🎜Basierend auf der oben genannten logischen Beziehung müssen Sie nur den entsprechenden Inhalt des Originaldokuments abrufen und ihn dem neu übersetzten Dokument zuordnen. (Derzeit kann nur die Vereinheitlichung von Seiteneinstellungen und Absatzeinstellungen erreicht werden. Für die Formatänderung bestimmter Wörter in einem Absatz ist zur Gewährleistung der Genauigkeit die Verarbeitung natürlicher Sprache (NLP) erforderlich, die in diesem Artikel nicht behandelt wird.) 🎜

2.1 Seitenstil

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 darstellenIst das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

2.2 Absatzstil

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, NoneIst das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

2.3 Änderung des Textblockstils

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 widerzuspiegelnIst das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

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:

3. In Anbetracht dessen ist jeder Teil des Vorgangs abgeschlossen Es gibt viele Dokumente, die übersetzt werden müssen, daher lautet die gesamte Logik wie folgt:
  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 参数的代码需要移动到后面的循环中。保留的部分:Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

效果如下Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

获取到段落文本后,可以将段落文本赋值给 query 参数,调用 API demo 的后续代码。输出结果的同时用 add_paragraph 将结果写入新文档:Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

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

wordfile_new.save(path + r'\\' + os.path.basename(file)[:-5] + '_translated.docx')
Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

单个文件操作完成后将读取和创建文件的代码块放到批处理框架内:Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

完成了上面的内容后,基本需求就完成了。根据我们梳理的对样式的修改知识,再把样式调整的代码加进来就行了,最终完整代码如下:Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

代码运行完毕后得到五个新的翻译后文件Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

翻译效果如下,可以看到英文被翻译成中文,并且样式大部分保留!Ist das in Python geschriebene Dokument-Batch-Übersetzungstool besser als kostenpflichtige Software?

至此,所有文档都被成功翻译,当然这是机器翻译的,具体应用时还需要对关键部分进一步人工调整,不过整体来说还是一次成功的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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Python当打之年. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen