メインコンテンツへ移動
AIチュートリアル

text-humanizerパイプラインでAI生成テキストを自然な文章に変換

オープンソースのPythonプロジェクト text-humanizer のインストール、設定、実行方法を解説します。意味を保ちながらAI生成テキストを書き換える多言語変換パイプライン、API設定、対応言語、基本コマンド、実用的なカスタマイズのヒントを紹介します。

text-humanizerでAI生成テキストを自然な文章に変換

text-humanizerとは?

text-humanizerは、多言語対応の大規模言語モデルベースのパイプラインを使用して、AI生成コンテンツを書き換える無料のオープンソースPythonプロジェクトです。原文の意味を保ちながら、より自然な文構造、表現の多様性、そして豊かな文体の変化を実現することを目的としています。

このプロジェクトはDeepSeekと翻訳サービスを組み合わせ、複数の言語を経由してテキストを変換した後、元の言語で再構成します。READMEでは、この処理によって多くのAI検出器を回避できる可能性があると説明されていますが、検出結果は変動するため、保証されたものとして扱うべきではありません。

主な機能

  • 原文の意味を保ちながら自然さを向上させます。
  • 多様な文構造と言語パターンを取り入れます。
  • さまざまな文体やトーンに対応します。
  • 多言語による書き換え・翻訳パイプラインを使用します。
  • 登録された言語コードを通じて、英語、日本語、中国語、韓国語、ドイツ語、フランス語、スペイン語に対応します。
  • 言語間のさらなる変化を加えるため、DeepLとの任意の連携を利用できます。
  • MITライセンスの下で提供される無料のオープンソースソフトウェアです。

書き換えパイプラインの仕組み

ステップ1:DeepSeekによる書き換え

DeepSeekは、表現、文構造、情報の流れを変更しながら、入力内容と意味的に同等の文章を生成します。プロジェクトのドキュメントによると、この段階では元の言語に関連するパターンを減らすため、中国語を中間表現として使用します。

ステップ2:Google翻訳

中間出力はGoogle翻訳を通過し、トルコ語に翻訳されます。これにより、構文や翻訳の挙動の違いに起因する言語間の変化が加わります。

ステップ3:DeepLによる任意の翻訳

DeepL APIキーを指定すると、トルコ語のテキストがDeepLを通じて日本語に翻訳されます。この任意の段階では、パイプラインにもう1つの言語と独立した翻訳エンジンが加わります。

ステップ4:DeepSeekによる最終再構成

DeepSeekは、入力と出力に選択された言語で結果を翻訳・再構成します。最終処理は、翻訳による不自然さを取り除き、読みやすい文章の流れを復元し、元の意味を維持することを目的としています。

前提条件

プロジェクトをインストールする前に、以下を用意してください。

  • Python 3.6以降。
  • リポジトリのクローンに使用するGit。
  • DeepSeek APIキー。
  • 追加のDeepL処理を有効にする場合は、任意のDeepL APIキー。
  • 外部モデルおよび翻訳サービスを利用するためのインターネット接続。

インストール

1. リポジトリをクローンする

git clone https://github.com/korcarc/text-humanizer.git
cd text-humanizer

2. 依存関係をインストールする

プロジェクトで定義されているPythonパッケージをインストールします。

pip install -r requirements.txt

お使いのシステムでpipが別のPythonインストールに割り当てられている場合は、環境に応じてpython -m pipやpython3 -m pipなどの適切なコマンドを使用してください。

3. 設定ファイルを作成する

Windowsでは、次のコマンドで設定例をコピーします。

copy .\config\config.example.toml .\config.toml

LinuxまたはmacOSでは、同等のコピーコマンドを使用します。

cp ./config/config.example.toml ./config.toml

設定

アプリケーションを実行する前に、config.tomlを開いて利用可能なオプションを設定します。

  • target_language: 入力と出力に使用する言語を選択します。指定可能な値はen、ja、zh、ko、de、fr、esです。
  • deepseek_api_key: 必須のDeepSeek APIキーです。
  • deepl_api_key: 任意のDeepL APIキーです。
  • base_url: APIのベースURLを上書きします。プロバイダーのデフォルトを使用する場合は空のままにします。
  • model: モデルのスラッグを設定します。プロバイダーのデフォルトを使用する場合は空のままにします。
  • temperature: LLMのサンプリング温度を制御します。プロジェクトでは1.3が推奨されています。

ドキュメントに記載された設定に基づく構成は、次のようになります。提供された設定例ファイルにある構造とフィールドの配置を正確に維持してください。

target_language = "en"
deepseek_api_key = "YOUR_DEEPSEEK_API_KEY"
deepl_api_key = ""
base_url = ""
model = ""
temperature = 1.3

プレースホルダーを実際のDeepSeekキーに置き換えます。任意のDeepL翻訳段階を使用しない場合は、deepl_api_keyを空のままにします。

基本的な使い方

リポジトリのディレクトリからhumanizerを起動します。

python main.py

Python 3で別の実行ファイル名が使用されるシステムでは、次を実行します。

python3 main.py

プログラムはconfig.tomlの言語およびプロバイダー設定を使用してテキストを処理します。たとえば、target_languageをenに設定すると、パイプラインは英語の入力と出力用に構成されます。日本語のテキストを処理するには、プログラムを再度起動する前にjaへ変更します。

言語変更の例

ドイツ語の入力と出力の場合:

target_language = "de"

スペイン語の入力と出力の場合:

target_language = "es"

プロジェクトの設定でサポートされている言語コードのみを使用してください。

高度な設定のヒント

任意のDeepL段階を有効にする

deepl_api_keyに有効なDeepLキーを追加すると、トルコ語から日本語への翻訳段階が有効になります。このキーがない場合、パイプラインはこの任意のステップをスキップします。

温度を調整する

READMEでは、温度を1.3に設定することを推奨しています。この設定は、LLMによる書き換えで変化を促すことを目的としています。別の値を試す場合は、元の意味が維持されていることを確認するため、出力を慎重に比較してください。

カスタムエンドポイントまたはモデルを使用する

base_url設定ではデフォルトのAPIエンドポイントを上書きでき、modelではモデルのスラッグを指定できます。プロバイダーのデフォルト値を使用する場合は、いずれかのフィールドを空のままにしてください。カスタム値は、使用するAPIサービスに対応している必要があります。

複数回の翻訳後に意味を確認する

このプロジェクトは意味を保持するよう設計されていますが、書き換えや翻訳の各段階で微妙な変化が生じる可能性があります。公開前に、最終結果に含まれる名前、数値、引用、専門用語、事実に関する主張を確認してください。

API認証情報を保護する

APIキーは秘密情報として扱ってください。値が入力されたconfig.tomlを公開したり、認証情報を公開リポジトリにコミットしたりしないでください。

責任ある利用

text-humanizerは、著者情報を偽ったり、AI支援の開示を求める規則を回避したりするためではなく、明瞭さ、語調、文体の多様性を向上させるために使用してください。

AI検出システムの判定には一貫性がなく、どのような書き換えワークフローでも特定の検出結果を保証することはできません。自身の作業に適用される、開示、学術的誠実性、出版、プラットフォームに関するポリシーに従ってください。

まとめ

text-humanizerは、DeepSeek、Google Translate、そしてオプションのDeepL処理を組み合わせることで、多言語テキストを書き換える設定可能な方法を提供します。リポジトリをクローンし、依存関係をインストールしてAPI設定を追加した後、python main.pyでパイプラインを起動できます。すべての結果を確認し、読みやすさ、事実の正確性、意味の忠実性を確かめてください。

ソースコードとMITライセンスは、text-humanizerのGitHubリポジトリで利用できます。