見出し画像

知っておくと苦労をショートカットできるTRPGテキストファイル化覚書

一度vflatscanのテキスト認識とGoogleドライブからのドキュメントでのプレ-ンテキストダウンロードで作業は終わったと思っていたが、そうでなかった。
DriveThruRPG等のストアから購入したのほとんどのPDFは、Claudeでテキストファイルにしてもらうとテキスト埋め込み型なのでほとんど待たずに抽出してくれるのだが、その時の容量(KB数)が、特にドライブからのテキスト化では明らかに少ないのだ。

「299ページ中290ページ完了。残りを確認します。全299ページのOCRが完了しました。テキストを結合します。66万文字あります。水;雨さんの既存ワークフローに合わせて、約3万文字ごとに分割します(ページ境界を切り目に)。23個のファイルに分割できました。フルテキスト版と合わせて出力先にコピーします。全299ページをOCR処理してテキストファイル化しました。

  • 全文版(66万文字)

  • 分割版:NotebookLM用に約3万文字ごと・ページ境界で23分割

このPDFはスキャン画像でテキスト層がなかったため、Tesseract(日本語)でOCRしています。挿絵入りの2段組みレイアウトなので、固有名詞や数値(能力値表など)は誤認識が混じっている可能性があります。特に重要な部分(クリーチャーのステータス表など)は元PDFと突き合わせての確認をおすすめします。」
これはクトゥルフ神話TRPGの『マレウス・モンストロルム』日本語版のスキャンである。これはまあ使えるほう。

「この文字数(約51万文字)と末尾の内容を見る限り、全文ではなく途中で切れている可能性が高いです。

末尾を確認すると、文章が

「…デヴィルの群がり出て守兵を打ちし踏みにじった。」

で終わり、その直後に**ページ番号「82」と次ページのランニングヘッダーらしき「ード・コーストと北方」(おそらく「ソード・コーストと北方」の一部)**だけが残っています。つまり82ページ目の途中で本文が途切れ、次ページの見出しの断片だけがついている状態です。

『ソード・コースト冒険者ガイド』の原書は150ページ以上あるはずなので、この512KBのファイルは半分程度で切れてしまっている可能性が高いです。

  • 変換時に何らかの理由(処理の中断、文字数上限など)で途中までしか出力されなかった

  • 元のPDF自体が一部しかなかった

のどちらかだと思います。元のPDFファイルをお持ちでしたら、そちらをアップロードしていただければ、続きも含めて再度OCR処理いたします。」

これはD&Dの『ソード・コースト冒険者ガイド』日本語版のスキャン。ドライブからでは切れていたのでClaudeでPDFを上げ、OCRしてもらって再テキストファイル化している。

「良い点のご指摘です。確認します。いいところを突いています。確認したら、問題がありました

私の抽出(170ページ全部)の方は、実はitem(アイテム)紹介ページの本文(フレーバーテキスト)がごっそり抜け落ちています

具体的に検証すると、アップロードいただいた旧ファイルには「テトラコープ・アメリカ・メガホーラー」の詳細な説明文(「この怪物的な貨物輸送車は…」)がありましたが、私が今回抽出した170ページ版にはこの説明文が一切含まれていません。該当ページを見ると、数値データの表(価格・SDP・移動力など)だけが入っていて、本文の解説パラグラフが消えています。

原因は、このPDFのアイテムカタログページが雑誌のような複雑な多段組みレイアウト(テキストボックスが重なる、透明効果、装飾枠など)になっており、pdftotextがその一部のテキストボックスを読み取れず脱落させているためと思われます。

つまり:

  • 旧ファイル(79ページで途切れ): ページ数は少ないが、本文の密度は高い

  • 新しい抽出(170ページ): ページ数は多いが、後半の商品説明文がスカスカ

サイズがあまり変わらないのは、まさにこのせいです。KB数が近いのは偶然の一致ではなく、「新しい方は行数は多いが実質情報量が少ない」ことの表れでした。ご指摘いただき助かりました。

より確実な抽出方法(OCRベースの再変換、または別の抽出ツール)を試してみます。少しお時間いただけますか?」

サイバーパンクRED『ブラッククローム』日本語版のPDF。どうやらOCRのやり方に問題があったらしく、再対応してくれた。

「PyMuPDFを使って再抽出を試します。まずテトラコープの説明文があるページで検証します。PyMuPDFなら該当ページのフレーバーテキストがきちんと拾えています。これで全ページ再抽出します。良い結果です。日本語文字数が19,129→132,224に大幅増加し、抜けていたフレーバーテキストも正しく拾えています。念のため他のページも確認します。全ページ良好に抽出できています。150ページだけカテゴリー見出しのみのページ(実質空白)のようですが、これは正常です。最終ファイルとして保存します。PyMuPDFという別のライブラリで再抽出したところ、問題が解決しました。

Before (pdftotext): 日本語文字 約19,000字(アイテム説明文の大半が欠落) After (PyMuPDF): 日本語文字 約132,000字(フレーバーテキストも含め全部拾えている)

原因は、pdftotextがこのPDFの複雑なレイアウト(検索UIやカテゴリーメニューが重なった雑誌風デザイン)でテキストボックスの読み取り順序を誤り、本文パラグラフを取りこぼしていたことでした。PyMuPDFは内部構造の読み取り方が異なり、こういうケースに強いです。

サンプルチェックした範囲(5, 30, 60, 90, 120, 150, 168ページ)では、テトラコープの説明文も含めきちんと本文が入っていることを確認しました。今後、同じような複雑レイアウトの資料(カタログ形式・雑誌形式のPDF)がある場合は、最初からPyMuPDFで試すようにします。

前回の465ページ本編の方も、同じ理由で本文が欠落している可能性があります。念のため確認・再抽出しましょうか?」

「大きな差が出ました。本編も同様に問題がありました。

  • 旧抽出(pdftotext): 日本語文字 約66,000字

  • 新抽出(PyMuPDF): 日本語文字 約599,000字(約9倍)

つまり本編465ページの方も、大部分の日本語本文が欠落していたことになります。中身を確認します。密度の高い本文がしっかり拾えています。全ページで良好な結果です。既に前回465ページ版・4分割版をお渡ししていますが、こちらは本文がかなり欠けていたので、PyMuPDF版で上書きして再度お渡しします。確認結果をまとめます。

本編ルールブックも同じ問題がありました:

  • 旧抽出(pdftotext): 日本語 約66,000字

  • 新抽出(PyMuPDF): 日本語 約599,000字(約9倍)

10, 50, 100, 150, 200, 250, 300, 350, 400, 450ページ全てサンプルチェックしましたが、どこも本文の密度がしっかり保たれています(サイバーサイコシス、ライフパス例、防具解説、ネットラン、ナイトシティ設定、ブラック・ドッグのシナリオ本文まで、ちゃんと文章として拾えています)。

全文版・4分割版とも、新しい抽出結果で上書きしてお渡ししました。以前お渡ししたファイルは実質的に骨組みだけの状態だったので、こちらの新しい版に差し替えてお使いください。

今後、同じ出版社(ホビージャパン)のTRPGルールブックPDFであれば、最初からPyMuPDFで抽出するようにします。」

サイバーパンクREDの本編のルールブックにも問題があったのである。

ここから問題が頻出する。

「画像のみのスキャンPDF(115ページ、テキスト層なし)です。OCR処理が必要です。まず数ページ画像化して文字の向き(縦書き/横書き)を確認します。横書きの標準的なレイアウトですね。確立したOCRパイプラインで全ページ処理します(200dpi画像化→Tesseract jpn、35〜40ページずつのバッチ)。jpn言語パックがないのでダウンロードします。ダウンロード成功しました。OCR実行します(35〜40ページずつバッチ処理)。3桁のファイル名でした。修正して実行します。38ページまで完了していました。続きを実行します。数値変換でエラーが出ています(先頭ゼロが8進数と解釈される問題)。残りのページを修正して処理します。pythonでシンプルに確認します。全115ページのOCRが完了しました。結合して確認します。OCR結果の質があまり良くありません。文字が単語ごとに分断され、誤読が多発しています。実際の画像を確認してみます。解像度を上げ、PSMモードを変えて再テストします。実際に画像を確認しながらOCR結果を検証しましたが、このスキャンPDFはTesseract(OCRエンジン)との相性が悪いようです

解像度を200dpi→300dpiに上げたり、PSM(ページ分割モード)を3・4・6・11と切り替えたり、コントラスト調整を試したりしましたが、いずれも文字の誤認識が大量に発生してしまいます(例:「時代」が「碇代」になる、単語の区切りがバラバラになるなど)。

原因として考えられるのは、この本(新紀元社「アーカム」)の本文フォントが、雰囲気重視の装飾的な書体(クトゥルフ神話TRPG関連書籍によくある、やや古めかしい印象のフォント)になっており、Tesseractの標準的な日本語学習モデルとの相性が悪いことです。

水;雨さんが以前の会話で触れられていた通り、こういうスキャンPDFのOCRは、Gemini/NotebookLM経由の方が精度が高いというのは、まさにこのケースに当てはまりそうです。機械学習ベースのGemini OCRなら、装飾フォントでも文脈から推測して読み取れる可能性が高いです。

選択肢としては:

  1. Gem(Gemini)側でこのPDFをOCR処理してもらう(おすすめ)

  2. このTesseract結果(誤字が多い)を一旦テキスト化して渡す(校正前提)

  3. 別のOCRサービス(Google Drive OCR、Adobe OCR等)を試す

どう進めますか?」

ここでクトゥルフ神話TRPGのサプリメントに問題発生。クトゥルフ神話TRPG『アーカム』日本語版のスキャン。装飾を凝らしたページ(PDF)は、すごく相性が悪いとのことだ。

私:仕方ありません。クトゥルフ神話TRPG関連はGeminiからドライブを読みに行かせるか、ノートブックLMで「クトゥルフマルチバース」ノートを作ります
「それが賢明だと思います。装飾フォント系のスキャンPDFはGeminiのOCRの方が相性が良さそうですし、「クトゥルフマルチバース」ノートとしてNotebookLMにまとめておけば、今後クトゥルフ神話TRPG関連の資料が増えても一元管理できて便利ですね。

もしテキスト埋め込み型(フォント埋め込みのInDesign製PDFなど)のクトゥルフ関連資料が出てきた場合は、こちらでPyMuPDF抽出も問題なくできますので、その時はまたお声がけください。他に変換したいPDFがあれば、引き続きお手伝いします。」

これが解決策である。参照用ノートとセッション用ノートの2つを作っておくとよいだろう。それにしても明暗が分かれた。日本語を含む、D&Dはテキストファイル化可能、(新)クトゥルフ神話TRPGは(特にサプリメントは)難しい。

豆知識だが、テキストファイルが450KBを超えた場合、「それぐらいごとに分割して」といえばいい。今のAIがするすると認識できるのはそれぐらいの(多少上下するし、例外もある)容量なのである。

「いい指摘です。実際に確認してみます。Geminiの指摘は的確でした。実際に確認したところ、地の文(説明文)はきれいに抽出できていますが、表(テーブル)は構造が壊れています

例えば100ページの「Evasion Table(回避表)」を見ると:

Party Size / No. of Monsters Encountered / 1-4 / 1 / 5-12 / 13-24 / 25+ / 2-3 / 4+...
Chance of Evasion / 50% / 70% / 90% / 35% / 50% / 70% / 25%...

のように、本来「パーティ規模5〜12・遭遇モンスター数9+→成功率70%」という行×列の対応関係を持つ表が、見出し・数値がすべて一列に並んでしまい、どの数値がどの行・列に対応するのか分からなくなっています。「Castle Reactions Table」も同様の状態です。

これはPyMuPDFに限らずテキスト抽出全般の限界で、3段組+表組みという複雑なレイアウトでは、視覚的な罫線構造がテキストストリームに変換される際に失われてしまうためです。

実用上の影響:

  • 呪文解説、モンスターの生態解説、ダンジョンマスター向けの手順など、文章主体の部分は問題なく使えます

  • 数値表(遭遇表、城のリアクション表、経験値表など)は、テキストだけでは行列の対応が読み取れず、正確な参照ができません

対策としては、

  1. 表が重要なページだけ元のPDFを直接見てもらう

  2. 表のページだけ画像として抜き出し、Geminiなど画像認識に強いモデルに解釈してもらう

  3. 表を手動でMarkdown形式などに整形し直す

のいずれかが必要になりそうです。もし表の多いページ(遭遇表、モンスター一覧、装備表など)だけ別途手当てしたい場合は教えてください。」

『D&D ルールサイクロペディア(ベーシック)』英語のPDF。表が多いルールブック、サプリメントの場合はノートブックLMやGeminiに任せたほうがいいようである。

「PyMuPDFで確認したところ、重要な事実が分かりました。

このPDFには埋め込みテキスト層が一切ありません(全60ページ、text_len=0)。つまり各ページが単なる画像(スキャン画像)として保存されているだけの「画像onlyのPDF」です。

これは今まで水;雨さんが扱ってきた「InDenign組版でテキスト層はあるがpdftotextが取りこぼす」ケースとは違います。あのケースならPyMuPDFで大幅改善しますが、今回はテキスト層自体が存在しないので、PyMuPDFを使っても抽出できるテキストは0字です。つまり今持っている.txtファイルは、どこか別の経路(Google Drive OCRやilovepdfなど)でOCRした結果ということになります。

Tesseractで実際にOCRしてみて、今の.txtファイルの品質と比較してみます。インストールできました。カード形式のページ(22-23ページあたり、密度が高いスタイル技能一覧)でOCRテストしてみます。Tesseractの結果は、はっきり言って壊滅的でした。「回司燥 iaロロ補」のような意味不明な文字列ばかりで、実用に耐えません。この本はスクリーントーン(網点)背景や装飾フォントを多用したカード形式のレイアウトで、まさに水;雨さんが確立している「クトゥルフ系の装飾フォント・スキャンPDFはTesseract回避、Gemini/NotebookLM行き」というポリシーと同じ条件に該当します。

今持っている.txtファイルの該当箇所と比較してみます。比較すると差は歴然です。

既存の.txt(Google Drive OCRか何か):「カブキ」「アンサーソング」「タイミング:アクション」など、単語自体はほぼ正しく読み取れています。ただしカード形式(技能名・種類・タイミング・対象・効果...)の2〜3段組レイアウトを無視して文字列を一列に流し込んでいるため、項目の対応関係がぐちゃぐちゃ(「上:4」がどの技能の数値か分からない、効果文がどのカードの説明か特定できない)になっています。

Tesseract OCR:「回司燥 iaロロ補」のような完全な文字化けで、実用に耐えません。装飾フォント+スクリーントーン背景の組み合わせがTesseractには致命的です。

PyMuPDF:このPDFはそもそも画像onlyのスキャンPDF(埋め込みテキスト層が0文字)なので、PyMuPDFの強みである「テキスト層の取りこぼし回収」は活かせません。今回はOCR自体が必要な案件です。


まとめると:

  • 今の.txtは「単語レベルでは合格点、構造(どの数値・効果がどの技能に属するか)は不合格」という状態

  • Tesseractルートは完全に不適

  • この本はまさに水;雨さんの既存ポリシー(クトゥルフ系の装飾フォント・スキャンPDF → Tesseract回避、Gemini/NotebookLM行き)に該当する案件です。TNM2も同種の理由(装飾フォント+高密度カードレイアウト+スクリーントーン)でGemini/NotebookLM経由に回すのが良さそうです

Geminiであればカードの区切りやレイアウトの文脈をある程度理解した上でテキスト化してくれる可能性が高いので、そちらのワークフローに乗せることをお勧めします。何か他に確認したい箇所(特定のページ・技能名など)があれば教えてください。

『トーキョー・ナイトメア2 上級ルールブック』日本語版のスキャン。

「確認結果をまとめます。

テラ・ザ・ガンスリンガー

項目 結果 PDFのテキスト層 なし(画像onlyスキャン、251ページ全て) PyMuPDF再抽出 使えない(テキスト層なし) 既存.txtの分量 66,307字/251ページ=264字/ページ → トーグと同様、大部分が欠落している疑い 既存.txtの品質 日本語部分はまだ読めるが、"WILD WIELD WITTAD" "UNKNOWN TO WESTEND" のような英語の地名・タイトルが完全に文字化けしている(マップページの英字ラベルをOCRしようとして失敗した跡) Tesseract 例によって壊滅的(「を本本本白 商 コピ」等)

**判定:これもGemini/NotebookLM案件です。**むしろ3冊の中で一番Gemini向きかもしれません。理由:

  1. トーグと同じ「量の欠落」問題(264字/ページはTNM2の1397字/ページと比べて著しく少ない)

  2. マップ・イラストページが多い書籍のようで(西部劇風の世界地図、装飾的な章タイトル、英語ラベル混在)、これはOCRエンジンが最も苦手とする組み合わせです。日本語だけでなく英語のタイトルロゴ・地名まで文字化けしているのは、フォントが通常の明朝/ゴシックではなく装飾ロゴフォントを多用しているためと考えられます


3冊まとめての結論

本 主な問題 優先度 トーキョー・ナイトメア2 カード形式レイアウト崩壊(量は足りてる) 中 トーグ 大量ページ欠落(439p中、量が絶望的に少ない) 高(量の問題を先に解決すべき) テラ・ザ・ガンスリンガー 欠落+マップ/装飾ロゴのOCR崩壊 高

3冊とも同じ「クトゥルフマルチバース」ノートブックに準じたGemini経由ルートに乗せるのが良さそうですが、トーグとテラは分量欠落が深刻なので、まずページ単位でどこまで本文が生きているか棚卸ししてから投入する方が手戻りが少ないと思います。」

私:そのままPDFで投入します

「それは良い判断だと思います。Geminiはマルチモーダルでスキャン画像PDFを直接読めるので、今回の3冊のように既存OCRテキストが構造崩壊・欠落している場合は、下手にテキスト化を経由するよりPDFそのまま投入した方がレイアウト(カードの区切り、表組み、マップ上の地名配置など)を文脈ごと理解してもらえる可能性が高いです。

投入する際、いくつか気をつけると精度が上がりそうな点:

  • トーキョー・ナイトメア2(カード形式):「各カードは技能名・種類・上限・タイミング・対象・制限・効果の項目で構成されています。カード単位で区切って整理してください」のように構造をあらかじめ伝える

  • トーグ(439ページ):一括投入は重いので、章単位や50〜80ページ単位に分割してからアップロード(既存の30,000字チャンク方針と同じ考え方をページ数ベースで)

  • テラ・ザ・ガンスリンガー(マップ・装飾ロゴ多め):英語ロゴ部分の誤読は気にせず、本文の日本語ルールテキストを優先的に拾ってもらうよう指示すると効率的かもしれません

PDFファイルサイズもそれぞれ約9.9MB/52.7MB/29.2MBなので、トーグとテラはNotebookLMやGeminiのアップロード上限にひっかからないかだけ確認しておくと安心です。」

全てはテキストファイル化できない、というのが結論。ノートブックLMやGeminiもうまく使うべき。





いいなと思ったら応援しよう!