成功する翻訳のために大きな投稿を分割する

Microsoft 翻訳を使ったことがないので、その点ではあなたの方が進んでいますね。ただし、理論的には手法は同じだろうと思います。

パラグラフ区切りを解析するというアイデアは気に入っていますが、すべてのドキュメントが CR/LF の行末記号を使っているとは限りません。'nix は LF 文字のみ、Mac は CR 文字のみ、Windows は両方を使います。他のドキュメントでは、行末記号として null バイトが使われることもあります。

Unicode には独自の課題があります。すべての文字が 2 バイト長になるためです。

考えられる解決策:最初の 1〜2 文の行末記号を確認し、その値を保存します。その後、ドキュメントを解析する前にすべての行末記号を「\n」に変換します。ドキュメントの処理が完了したら、自動的に正しい行末記号に戻すことができます。

ある手法としては、前方にスキャンして 10,000 語に達するまで進み、その後、パラグラフ区切りを探して後方にスキャンします。現在のブロックの先頭にヘッダーポインターを置き、前方にスキャンして 10,000 語の前にある最後のパラグラフ区切りを見つけたら、そこにテールポインターを配置します。そのブロックを切り取り、翻訳し、結果ドキュメントに移動させ、ヘッダーポインターをテールポインターの位置に移動させて続けます。

==============================

余談ですが、翻訳ソフトウェアはひどいものになることがあります。なぜなら、翻訳は文脈に強く依存し、スラングや専門用語が含まれることが多いためです。同様に、特定の業界や技能に固有の技術用語や単語も、多くの場合、翻訳すべきではないにもかかわらず、ひどく壊されてしまいます。法律、医療、工学/技術文書は典型的な例です。

複雑な医療文書(ある人の脳手術の手術記録)を、Google と Yandex の 2 つの翻訳エンジンに通してロシア語に翻訳しようと試みました。両方の翻訳の結果は、読みやすい文書というよりは、ひどいラザニアのようでした!