■ 導入:ページ数の多いテキストを、読みやすいMarkdownに整えたい
この案件は、
「ページ数の多いテキストデータを、ChatGPTでMarkdownに整えたい。
ただ、量が多すぎて手作業では現実的じゃない」
という相談から始まりました。
元データには「page 1」「page 2」のような区切りが入っていて、
ある程度ページ構造は見えているものの、
どこからどこまでをまとめて投げるか
どれくらいの分量なら安定して処理できるか
どこまで処理済みかをどう管理するか
といった部分は、すべて人力でなんとかしている状態でした。
■ 課題:長いテキストを「どこで切るか」と「どこまで済んだか」が曖昧
ChatGPTでMarkdownに整えていく作業を、もし手作業でやると、
テキストファイルを開く
コピーする範囲を決める
ChatGPTに貼り付けて整形してもらう
結果を別のファイルに貼り直す
次のページへ…
という流れを延々と繰り返すことになります。
ここで問題になるのは、
毎回「どのページからどのページまでコピーするか」を目で判断する
どこまで処理したかを自分で覚えておかないといけない
分量が多いと、途中で抜けや重複が発生しやすい
という、人間の記憶力と根気頼みの部分でした。
「ページ構造はあるのに、それを自動処理にうまく活かせていない」
というのが、この案件の一番のポイントでした。
■ 改善:ページ番号を起点に、“2ページ単位”で自動分割 → ChatGPT連携
そこで用意したのが、
1つのテキストファイルを「page ○○」ごとに解析し、
指定範囲を Nページごと(デフォルトは2ページ)に自動で分割しながら、
それぞれをChatGPTに送ってMarkdownとして整形していく仕組み
です。
具体的には、
元のテキストから「page ○○」という見出しを読み取り、実際のページ番号を把握する
開始ページと終了ページを、実際のページ番号で指定できるようにする
例:30〜80ページだけ処理したい、など
「何ページごとにまとめるか」を数字で指定し、2ページ単位・3ページ単位など柔軟に分割できるようにする
分割されたチャンク(かたまり)を1つずつChatGPTに送り、Markdownに整えてもらう
整形された内容を、1つのMarkdownファイルに順番どおり蓄積していく
という流れで設計しました。
ページ区切りをただの文字列ではなく、
「範囲指定や分割の基準」として再利用しているのがポイントです。
■ 工夫した点①:一時フォルダで“チャンク単位の進捗”を管理する
処理の途中でPCを閉じたり、ネットワークが不安定になったりしても大丈夫なように、
ページを分割したチャンクは一度「作業用フォルダ」に退避させています。
指定した範囲を、Nページ分ずつファイルに分けて並べる
ChatGPTで整形が済んだチャンクから順に削除していく
作業用フォルダが空になったら、全チャンク完了
という流れにすることで、
「どこまで終わったか」が、フォルダの中身を見るだけでわかる
途中で止まっても、残っている分だけを再開すれば良い
元のテキストファイルは一切触らないので安全
という、バッチ処理らしい堅実な運用ができるようにしています。
■ 工夫した点②:ChatGPTへの投入~結果の回収も“安定して回る”ように
ChatGPTとのやり取りも、
チャット欄にテキストを貼り付けて送信
回答が出揃うまで待つ
完成したMarkdownをコピーして、出力側のファイルに追記する
という動作を、自動で繰り返すようにしています。
ここでも、
単に「何秒待つ」ではなく、
回答が出てくるタイミングに多少の揺らぎがあっても動くこと
一度コピーに失敗しても、そのチャンクを消さずに再試行できること
といった “止まりにくさ” を優先した構造にしています。
■ 成果:長文テキストを、“抜け・重複なく”Markdownに落とし込めるようになった
この仕組みによって、
1つの大きなテキストファイルから、指定したページ範囲だけを抽出し
2ページ単位など、ちょうど良いサイズに分割しながら
ChatGPTの整形力を活かしてMarkdownに変換し
最後には、1本のまとまったMarkdownドキュメントとして保存できる
という流れが、ほぼ自動で回るようになりました。
特に大きかったのは、
「どこまでやったっけ?」と迷わなくなったこと
抜けや重複といったミスが構造的に起こりづらくなったこと
まとまったMarkdownとして再利用しやすくなったこと
といった、“長文ドキュメントを扱うときのストレス” がかなり減った点だと感じています。
■ まとめ:ChatGPTの整形力を、“バッチ構造”にのせて活かす
この案件は、
「人がやればできる。でも量が増えると現実的じゃない」
という作業を、仕組みで支える
という典型的な例でした。
ページ構造をきちんと読み取り、
範囲指定・分割・進捗管理・再開のしやすさまで含めて設計することで、
ChatGPTの力を **安定した“Markdown整形バッチ”**として運用できるようになったと思います。
今後も、
・大量テキストの構造化
・レポートや試験問題の再編集
など、同じようなニーズに応じて応用していける仕組みです。
▶「長文テキストの整形を自動化したい」「ChatGPTを使ったMarkdown整形フローを作ってほしい」という方はこちら