『成功』と表示されたのに、1件も検索できなかった。PDF・Excel・Wordを全文横断検索できるまでの遠回り
「あの資料、どこだっけ」。そう思った瞬間に、その日の午後が消えていく。製造業の事務や設計に関わる人なら、覚えのある感覚だと思います。
フォルダを開いて、ファイルを一つずつ開いて、中を確認して、違ったらまた閉じて——。探しているのが数千枚の中の1枚だと、数十分はあっという間です。しかも厄介なのは、どこに何があるかを、たいてい特定の誰かしか知らないこと。その人が休みだと、もう誰も探せません。
この「探す時間」を、なくしたいと思いました。今日は、それを数秒に変えるまでの話です。きれいに一直線で進んだわけではなく、途中でずいぶん遠回りをしました。その遠回りこそ、書いておきたいことです。
何に困っていたか(Before)
当時の状況は、こうでした。
探したい文書が、PDF・Excel・Wordにばらばらに散らばっている
数千枚規模で、どこに何があるか全体像が誰にも見えていない
探すときは、ファイルを1枚ずつ開いて中身を目で確認する
1回の探し物で数十分。見つからないこともある
在りかを知っているのは特定の人だけで、その人が不在だと止まる
情報はちゃんと社内にあるのに、たどり着けない。これは、現場でかなりの時間を静かに奪っている問題だと思います。
まず、文書の中身を横断検索できるようにした
最初に作ったのは、フォルダの中のPDF・Excel・Wordを、キーワードで一気に全文検索する道具でした。ファイルを開かずに、中身ごと探せる。画面(GUI)で操作できるので、プログラミングの知識はいりません。ヒットしたファイルを別フォルダにまとめてコピーする機能も付けました。
普通の文書なら、これで十分でした。数十分かけて探し回っていたものが、キーワードを入れて数秒。ここまでは、わりと順調だったのです。
ところが、いちばん探したい図面が引っかからなかった
問題は、図面でした。設計や製造の現場で本当に探したいのは、たいてい図面です。ところが、図面のPDFは中身が「画像」で、文字のデータ(テキスト層)を持っていないものが多い。人の目には文字に見えても、コンピュータにとっては絵にすぎません。だから、いくらキーワードで検索しても、1件も引っかからないのです。
探せるようにするには、画像の中の文字を読み取って、検索できる文字データに変える必要がありました。いわゆるOCR(光学文字認識)です。ここからが、長い遠回りの始まりでした。
AIに丸投げして、そのまま動かそうとした
正直に言うと、最初はいちばん楽な方法を選びました。やりたいことをAIに伝えて、出てきたコードをそのまま動かす。それで終わるはずだ、と。
ところが、そう簡単にはいきませんでした。動いていたものが、ある日急に動かなくなる。調べると、使っていたライブラリ(OCRを動かす部品)がバージョンアップして、設定の渡し方が変わっていた。古い書き方が通用しなくなっていたのです。ライブラリが世代交代すると、こうした非互換は珍しくありません。AIが書いてくれたコードは、AIが学習した時点の世界では正しくても、今この瞬間の私の環境とはズレていました。
細かなつまずきも続きました。インストール用のURLが1文字違っていて、どうやっても繋がらない。AIが示したアドレスを信じて手で打ち直していたのが原因でした。こういうものは、疑うより先に動かしてしまうので、原因に気づくまで時間を取られます。
「成功」と表示されたのに、検索できなかった
いちばん肝を冷やしたのは、これです。ツールを動かすと、画面には「成功」と出る。エラーは一つもない。なのに、出来上がったファイルで図番を検索しても、1件も引っかからないのです。
原因を追っていくと、設定の落とし穴でした。図面PDFはCADから出力されたもので、一部だけ文字データを持っている。すると道具が「もう文字があるから処理は不要」と判断して、肝心のOCRを飛ばしていたのです。だから「成功」と出る。でも、絵のままの部分は読み取られていない。設定を「全ページをもれなく読み取る」モードに変えて、ようやく検索できるようになりました。
この一件で、骨身にしみたことがあります。「エラーが出なかった」と「正しく動いた」は、まったくの別物だということ。出てきた結果を自分で実際に検索して、目で確かめるまで、成功とは言えない。AIが「できました」と言っても、それは確認の終わりではなく、始まりでした。
小さく試して、AIを「教育」しながら直した
そこから、進め方を変えました。一度に全部やらせるのをやめて、少量で試す。結果を確認して、つまずいた事実をAIに伝えて、直し方を一緒に考える。この往復を、ひたすら繰り返しました。
速くしようと欲張って、複数のファイルを並列でいっぺんに処理させたら、今度は全部失敗したこともあります。複数の処理が同じ部品ファイルを同時に取り合って、奪い合いになっていた。準備だけは一つずつ順番に終わらせて、本番の処理から並列にする。そう直したら、ようやく安定しました。
OCRの仕組みにもいくつか種類があり、Tesseract、EasyOCR、PaddleOCRと試しました。新しすぎるPythonでは入らないものもあって、結局は手元の環境で確実に動くものを標準に選び、用途に応じて切り替えられるようにしました。「最新が最適とは限らない」も、遠回りの中で覚えたことです。最後は、画面でOCRの種類や読み取りモードを選べる形にまとめ、誰が使っても同じ結果になるようにしました。

数秒で、図面まで探せるようになった(After)
道具が仕上がってからは、景色が変わりました。数千枚の図面を含めて、キーワードを入れれば数秒。ファイルを1枚ずつ開く作業は、もう要りません。
探し物に数十分、見つからないこともあった日々を思うと、ずいぶん遠くまで来たものだと思います。遠回りはしましたが、その一つひとつが「なぜ動かなかったのか」を体に残してくれました。

本当に効いたのは「時短」ではない
数十分が数秒になったのは、分かりやすい成果です。でも、現場で本当に効いたのは、その先でした。
探し物に追われていた頃は、見つけることがゴールになっていました。それが、すぐにたどり着けるようになって、ようやく「中身を考える時間」が戻ってきたのです。どの図面が最新か、似た図記号がほかにないか、過去にどう直したか——探すことに使っていた時間を、判断や確認に回せるようになりました。
もう一つ大きいのは、属人化がやわらいだことです。在りかを知っているのが特定の人だけ、という状態が崩れて、誰でも同じように探せるようになった。その人が休んでも、仕事が止まらない。情報が、個人の記憶から解放されたような感覚でした。
速くなったというより、止まっていた仕事が前に進むようになった。これが一番の価値だと思っています。
なお、図面については「どれが最新版か」を見分ける別の悩みもあります。先祖返りを防ぐために最新リビジョンだけを抽出した話は、別の記事に書きました。あわせてどうぞ。
こんな仕事にも応用できます
「探せない」「在りかが属人化している」という悩みは、図面に限りません。
過去の見積書・仕様書を、キーワードで横断して探す
スキャンした紙の資料を、中身ごと検索できるようにする
議事録やメモから、必要な決定事項だけを拾い出す
担当者しか知らない資料の在りかを、誰でも辿れるようにする
中身が画像のままで探せないものは、先に文字を起こしてやれば、検索の土俵に乗せられます。今回いちばんの遠回りも、まさにそこでした。
ここで紹介した検索の仕組みは、すぐ試せる配布ツールにもまとめています。あわせてどうぞ。
「成功と出たのに1件もヒットしない」を自分で直せるようにしたい方へ
PDF・Excel・Wordを横断検索するツールの完成コードを全文公開しています。なぜ検索が空振りするのか、どこを直せば拾えるようになるのかまで書きました。ツールを使うだけなら無料で配布しています。
https://note.com/shin_ai_dx/n/n0d08ad3ca820
おわりに
振り返ると、つまずきの多くは「AIが出してくれたものを、そのまま使った」ことで起きていました。AIは確かに速くコードを書いてくれます。でも、私の手元のバージョンや、ネットワークの制約や、ファイルの細かな挙動までは見えていません。そこは、現場にいる人間にしか分かりません。
AIと一緒に作るというのは、AIの出した答えを起点に、人が現場と照らし合わせて、検証して、直して、をくり返すことだと思います。「成功」の表示を疑い、自分の手で検索して確かめる。その地味な往復の中にこそ、本当の学びがありました。数秒で探せるようになったこと以上に、私にとってはそれが収穫でした。
製造業の現場で「探したい図面や資料がなかなか見つからない」「在りかが特定の人に属人化している」というお悩みがあれば、コメントをください。解決に役立つ、もう少し深掘りした記事をお届けします。
