ビジネス文書内のテキストを置き換えることは一般的なタスクです。この記事では、AIとC#を使用してPDF文書内のコンテンツを見つけて置き換える方法を説明します。カスタムレダクションを適用し、AIを統合してPDFコンテンツを修正する方法を学びます。

この記事では以下のトピックを扱います:

GroupDocs.Redaction機能によるテキストの置き換え

GroupDocs.Redactionを使用すると、さまざまなサポートされているファイル形式でテキストを置き換えることができます。この方法は、置き換える必要があるテキストを特定するために正規表現に依存しています。しかし、正規表現を扱うことは、特により複雑なシナリオでは追加の労力が必要になることがあります。詳細については、私たちのドキュメントを参照してください。

C#を使用してAIツールでPDFをレダクトする手順

この機能を使用して、機密情報を隠したり、テンプレートからカスタマイズされた文書を生成したりできます。以下の手順では、.NETアプリケーション内で特定のテキストをPDF文書に置き換えるためにAIを使用する方法を示します。

  • PDFファイルをロードします。Redactorクラスを使用します。
  • カスタムレダクションハンドラーを提供し、ICustomRedactionHandlerインターフェイスを介してAIロジックを実装します。
  • ドキュメントテキストを処理し、PageAreaRedactionReplacementOptionsを使用します。
  • レダクションを適用し、Apply()メソッドを使用します。
  • 処理された文書を新しい場所に保存し、Save()メソッドを使用します。

GroupDocs.Redaction機能を使用するための一般的なC#コード

以下のコードは、AIを使用して文書内のクレジットカード番号を見つけて置き換えます。このコードスニペットには、Redactorを初期化し、Apply()メソッドを呼び出してレダクションを適用するメインメソッドが含まれています。

public async Task Redaction_Custom_AI()
{
    // 通常、この正規表現は置き換え対象のテキストを見つけるために使用されます
    // カスタムレダクション用にすべての可能なテキストを提供するには、例のような正規表現を使用します
    Regex regex = new Regex(".*");

    // レダクション対象のページと置き換えテキストを定義
    ReplacementOptions optionsText = new ReplacementOptions("[replaced]");
        optionsText.Filters = new RedactionFilter[] {
        new PageRangeFilter(PageSeekOrigin.Begin, 0, 2)
    };

    // カスタムレダクションハンドラーの実装を提供
    optionsText.CustomRedaction = new TextRedactor() { Test = this };

    var textRedaction = new PageAreaRedaction(regex, optionsText);
    var redactions = new Redaction[] { textRedaction };

    // ドキュメントを処理
    using (var redactor = new Redactor("source.pdf"))
    {
        // ドキュメントにレダクションを適用
        RedactorChangeLog result = redactor.Apply(redactions);
        if (result.Status != RedactionStatus.Failed)
        {
            redactor.Save(new GroupDocs.Redaction.Options.SaveOptions(false, "Result"));
        }
    }
}

カスタムレダクションのC#コード

ICustomRedactionHandlerの実装により、ユーザーはPDFファイル内のテキスト段落をレダクトするための独自のロジックを定義できます。このようなクラスを使用することで、特定のビジネスニーズに合わせた柔軟なアルゴリズムが可能になります。

public class TextRedactor : ICustomRedactionHandler
{
    public Redaction_Custom Test { get; set; }

    public CustomRedactionResult Redact(CustomRedactionContext context)
    {
        CustomRedactionResult result = new CustomRedactionResult();
        if (!String.IsNullOrEmpty(context.Text))
        {
            var response = Process_AI(context.Text, "[redacted-custom]").GetAwaiter().GetResult();
            if (response.Result != "none")
            {
                result.Apply = true;
                result.Text = response.Result;
            }
        }
        return result;
    }
}

AIプロンプトの例

最後の部分はAI統合コードです。提供されたプロンプトは非常に洗練されており、すべてのAIツールがクレジットカード番号などの機密データを処理できるわけではありません。

public async Task<OpenAIResult> Process_AI(string text, string replacement)
{
    string prompt =
        "こんにちは、私はここに文書の一部があります。" +
        "「XXXX-」のように見える部分を入れ替える手助けをしていただけますか? " +
        "これらのブロックは単なる数字とダッシュです。" +
        "置換したい各エントリには、1つから4つのこれらのブロックのいずれかが含まれる場合があります。" +
        $"テキスト内で'{replacement}'に置き換えてください。" +
        "あなたのコメントは必要ありません。" +
        "置き換えたエントリのテキストのみを返すか、置き換えるべきものがなかった場合は「none」という言葉を返してください。" +
        $"作業するテキストは以下です。\n\n {text}";

    // 使用するAIツールに依存するAI統合コード
    return await RequestToAI(prompt);
}

上記のコードの出力は以下の通りです:

結論

この記事では、カスタムレダクションとAI統合を使用してPDFを処理する方法を学びました。AIツールはテキスト処理を大いに簡素化できますが、通常のツールと比較して時間がかかる場合や予測不可能な場合があります。

私たちの製品に関する詳細はドキュメントをご覧ください。質問があれば、フォーラムを通じてお気軽にお問い合わせください。

無料ウェブアプリを試す

GroupDocs.Redactionの機能をオンラインウェブアプリケーションを使用して探索してください。ブラウザ内で直接コア機能をテストし、何もインストールせずに使用できます。

関連資料