このスクリプトは、複数の言語で書かれたテキストを日本語に翻訳するためのツールです。日本語テキストはそのまま保持し、英語、中国語、韓国語、ロシア語、フランス語のテキストは Amazon Translate API を利用して翻訳されます。また、漢字の文脈解析を通じて、日本語固有の文字(ひらがな・カタカナ)と中国語の漢字を適切に区別し、文章の自然な接続を実現しています。
- 多言語対応: 英語、中文、韓国語、ロシア語、フランス語のテキストを日本語に翻訳します。
- 日本語テキストの保持: 既に日本語で書かれた部分はそのまま出力されます。
- 文脈に基づく言語判定: ひらがな・カタカナを日本語固有の指標として利用し、漢字の文脈から日本語と中国語を識別します。
- 自然な文章の結合: 小さすぎるチャンクの結合や句読点・スペースの適切な処理により、読みやすい翻訳結果を生成します。
- Amazon Translate の利用: AWS の翻訳サービスを利用して、信頼性の高い翻訳を実現しています。
- Python 3.x
- 以下の Python パッケージ:
- AWS アカウントと Amazon Translate の利用権限
-
リポジトリのクローン
本スクリプトのコードを含むリポジトリをクローンします。git clone /~https://github.com/timeless-residents/handson-amazon-translate.git cd handson-amazon-translate
-
仮想環境の作成と依存関係のインストール
推奨される仮想環境を作成し、必要なパッケージをインストールします。python3 -m venv venv source venv/bin/activate # Linux / macOS # venv\Scripts\activate # Windows pip install boto3 python-dotenv
-
.env ファイルの作成
プロジェクトルートに.env
ファイルを作成し、以下のように AWS の認証情報を設定してください。AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key AWS_REGION=ap-northeast-1 # 必要に応じてリージョンを変更
コマンドライン引数として翻訳対象のテキストを渡して実行します。
./your_script.py "ここに翻訳したいテキストを入力します。"
または、
python3 your_script.py "ここに翻訳したいテキストを入力します。"
スクリプトは入力テキストを言語ごとにチャンク分割し、各チャンクを Amazon Translate API を用いて日本語に翻訳します。最終的な結果はクリーンアップされ、自然な文章として出力されます。
-
get_translate_client()
AWS の認証情報を環境変数(.env)から読み込み、Amazon Translate 用の boto3 クライアントを初期化します。 -
detect_language_chunks(text)
入力テキストを文字ごとに走査し、各文字の言語を判定。漢字の場合は前後の文脈から日本語か中国語かを判断し、適切なチャンクに分割します。 -
translate_chunk(client, text, source_lang)
個々の言語チャンクを Amazon Translate API を使用して日本語に翻訳します。英語、フランス語、韓国語、ロシア語、中国語などのテキストに対して前処理も行います。 -
clean_translation(text)
翻訳結果の句読点やスペースを適切に調整し、自然な文章に整形します。 -
translate_text(client, text)
入力テキストをチャンクに分割し、各チャンクの翻訳・統合を行って最終的な日本語の文章を生成します。 -
main()
コマンドライン引数から入力テキストを受け取り、翻訳プロセス全体を実行します。
-
AWS 認証情報
AWS の認証情報が正しく設定されていない場合、クライアントの初期化に失敗します。必ず.env
ファイルに正しい情報を記載してください。 -
API 利用制限
Amazon Translate API の利用には料金が発生する場合があります。利用前に AWS の利用料金および制限をご確認ください。 -
テキストの長さと構成
長文や特殊な文字列の場合、意図しないチャンク分割や翻訳結果が出力される可能性があります。必要に応じて正規表現や前処理部分の調整を検討してください。
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご参照ください。
ご提案やバグ報告、プルリクエストは大歓迎です!
ご不明な点や改善案などがあれば、GitHub の Issues からお知らせください。
ご質問やフィードバックは、business@satotakuya.jp までお気軽にご連絡ください。
このスクリプトがあなたの多言語テキストの翻訳にお役立ちできれば幸いです。Happy Translating!