Pythonで書かれた文書一括翻訳ツール、効果は有料ソフトより高い?
「Python を使用して英語の Word 文書をバッチ翻訳し、形式を保持します」、最終的な効果は一部の有料ソフトウェアよりもさらに優れています。まずは具体的な仕事内容を見ていきましょう。
手元に大量の外国語のドキュメントがあります (このケースでは
5 を例として取り上げます)。 test1 .docx
test2.docx などの名前が付いています)。そのうちの 1 つは次のとおりです:
基本要件 : 「これらのドキュメントを一括処理します。すべての内容が中国語に翻訳され、新しいファイルに転送されます。」、結果は次のようになります:
高度な要件:基本的なニーズが満たされている、要件『元の文書の形式を維持する』、結果は次のとおりです:
1 . 翻訳 API
この要件の核心はTranslation です。戦略は、次の翻訳 API を使用することです。 ここではBaidu Translation Open Platformを推奨します 同時実行数を考慮しない場合に使用できます 標準バージョン、文字数制限なしで無料で使用できます !
「#Baidu のユニバーサル翻訳 API を使用する前に、次のタスクを完了する必要があります。Baidu 翻訳オープン プラットフォーム:
”http://api.fanyi.baidu.com/api/trans/product/index
- Baidu アカウントを使用してログインします。 Baidu 翻訳オープン プラットフォーム (
http://api.fanyi.baidu.com );
- 開発者として登録し、APPID を取得します;
- #ユニバーサル翻訳 API サービスを開きます: アクティベーション リンク
- 技術ドキュメントを参照してください。デモでコードを作成します。

テスト コンテンツが正確に翻訳されていることがわかります。API に複数回アクセスする必要がある場合、無料版には同時実行性と時間制限があることに注意してください。 time
モジュールは 1 秒間スリープします
高度な要件の難しさは、 format. 簡単に言うとoriginal 文書のページ形式と段落形式とは何か、また翻訳後の対応部分は何か。
上記の論理関係に基づいて、元の文書の対応するコンテンツを取得し、それを新しく翻訳された文書に割り当てるだけで済みます。 (当面はページ設定と段落設定の統一のみ対応可能です。段落内の特定の単語の書式変更については精度を確保するために自然言語処理NLPが必要ですが、本記事では扱いません) ページ スタイルには、元の文書からわかるように、余白、方向、高さ、幅などを含める必要があるだけです。 , 以下は狭幅です。ただし、4 方向の狭いマージンの設定方法を知る必要はなく、次のようにコード内で新旧ドキュメントの変数転送を示すだけで済みます。 上記のコードにはフォント設定が含まれていません。英語のフォントを中国語のドキュメントに渡す必要がないからです。中国語フォントの設定については、以前の記事で説明しました。比較的複雑です。コードを直接参照してください:
2.1 ページ スタイル
2.2 段落スタイル
段落スタイルには、配置、インデント、スペースなどが含まれます。元の文書では、段落後のインデントが採用され、タイトルは中央に配置されます。これらの設定は変数の受け渡しでうまく行うことができます。元の文書に設定されていない変数値が
の場合2.3 テキストブロックのスタイル変更
フォント サイズ、太字、斜体、色などのスタイルを調整するために採用される戦略は、空のリストを作成し、元の文書の各段落の各テキスト ブロックを走査し、対応する属性を取得してそれらをその属性に配置するという
、および同じ段落の場合 たとえば、最も多くのテキスト ブロック属性を含むオプションが、翻訳された文書の対応する段落に割り当てられます (段落内のすべてまたは大部分のテキストが太字の場合、すべてのテキストが太字になります)翻訳後の対応する段落内のブロックは太字に設定されます)
NLP に興味のある読者は、英語文書内の特定の単語のスタイル変更を高度に復元し、翻訳文書に反映する方法を自分で試すことができます。from docx.oxml.ns import qn
run.font.name = '微软雅黑'
r = run._element.rPr.rFonts
r.set(qn('w:eastAsia'), '微软雅黑')
##3. 全体的な実装手順
利用 glob
模块批处理框架可获取某个文件的绝对路径 由 python-docx
完成 Word 文件实例化后对段落进行解析 解析出的段落文本交给百度通用翻译 API,解析返回的 Json 格式结果(上面的修改 demo 中已经完成了这一步)并重新写入新的文件 同个文件全部解析、翻译并写入新文件后保存文件
三、代码实现
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办公自动化尝试!
以上がPythonで書かれた文書一括翻訳ツール、効果は有料ソフトより高い?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。
