見出し画像

『成功』と表示されたのに、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の出した答えを起点に、人が現場と照らし合わせて、検証して、直して、をくり返すことだと思います。「成功」の表示を疑い、自分の手で検索して確かめる。その地味な往復の中にこそ、本当の学びがありました。数秒で探せるようになったこと以上に、私にとってはそれが収穫でした。

製造業の現場で「探したい図面や資料がなかなか見つからない」「在りかが特定の人に属人化している」というお悩みがあれば、コメントをください。解決に役立つ、もう少し深掘りした記事をお届けします。

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