見出し画像

全文検索システムが完成するまで

こんばんは。今日は、全文検索システムがあなたの職場で利用できるようになるまでのステップを簡単にご説明していきたいと思います。それほど特殊なスキルを持っていなくてもちょっと頑張れば安く仕上げられるかもしれません。ぜひ読んでいってください。

ステップ1 検索したい資料を電子化する

これは比較的普通のステップなのですが、全文検索システムをつくろうとした場合、検索したい資料は必ず電子化されていないとまず話になりません。もしキングファイルなどで保管していれば、それを検索したいファイル単位に区切って、スキャナーでPDFファイルなどの形式で電子化しましょう。もしくはどこかにバラバラの場所に置いてあるのであれば、検索対象にしたいファイルをまずは特定していきましょう。

ステップ2 電子化した資料をOCR処理する

これも比較的シンプルな話です。スキャンした資料をコンピュータが文字認識できるように処理をすることです。OCR(光学式文字認識)という技術が代表的なものですが、最近では特別な存在でもなくなってきましたね。たとえばオフィスについている複合機もOCR機能付きのものがあるみたいですし、職場によってはAcrobat Readerをインストールしていれば、そのファイルを開いたらあとは”文字認識”ボタンをぽちっと押すだけで完了です。

ここでポイントになるのは現在の多くの文字認識技術では手書き文字が識別できません。おすすめとしてはここで欲を出して完璧なものにしようとしないことです。今仮に、フォルダ管理やキングファイル管理しているとしたら、全文検索できるようにするだけで劇的な改善になります。高価な手書き文字認識AIなどは、費用対効果を考えて慎重になったほうが個人的には良いと思います。今資料検索環境が0点であれば、まず50点を目指しましょう。最初から100点を取ろうとすると途端にうまくいきません。

ステップ3 クロールする

ステップ2まで終わった電子データは、クロールというプロセスでまずどの資料にどのようなテキスト(文章たち)が含まれているかを抜き取っていく操作が必要となります。

たとえば、平成18年廃液濃縮装置事故報告書.pdfというOCR済みのファイルをクロールすると、以下のようなデータを抜き取ることになります。

"平成18年廃液濃縮装置事故報告書.pdf"
…11月12日10:36 頃、巡視パトロールの最中に、廃液濃縮装置周辺で異臭があり、状況確認のために設備を停止し、問題箇所を特定しました。中和剤投入用の配管から溶剤の漏洩があり、管理値の範囲に制御…

以上がクロールでした。

ステップ4 インデックスをつくる

図書一つ一つにIDを振って、それに含まれているテキストを形態素解析します。形態素解析とは、単語単位にテキストを分割し、それぞれの単語の品詞を特性するプロセスです。

①"平成18年廃液濃縮装置事故報告書.pdf"
②"平成15年廃液濃縮装置定期検査記録まとめ.pdf"
③"平成16年冷却水ポンプ点検結果.pdf"

インデックスをつくるプロセスでは、ファイルのタイトルと本文にも注目することになります。

例えば1つ具体例で説明すると

"平成18年廃液濃縮装置事故報告書.pdf"というファイルはこんな感じで文章を単語に区切ります。

"平成/18年/廃液濃縮装置/事故
報告書/.pdf"
…11月/12日/10:36 /頃/、/巡視/パトロール/の/最中/に、/廃液濃縮装置/周辺/で/異臭/があり、/状況/確認/のために/設備/を/停止/し、/問題/箇所/を/特定/しました。/中和剤/投入用/の/配管/から/溶剤/の/漏洩/が/あり、/管理値/の/範囲/に/制御…


そして、こんな感じで不要な助詞や句読点を抜きます。
さいごに、単語の出現回数をカウントします。

廃液濃縮装置 2回、事故 1回、報告書 1回、11月 1回、12日 1回 …


そうすると、ようやく"平成18年廃液濃縮装置事故報告書.pdf"という書類にはこれだけと単語がこれだけの回数出現しますということがわかります。

同じように、以下のようにファイルそれぞれに同じことをやってどのファイルにどんな単語が何回出現するのかを整理していくわけです。

"平成15年廃液濃縮装置定期検査記録まとめ.pdf"
"平成16年冷却水ポンプ点検結果.pdf"

整理した結果は、こんな感じになります。ファイル名をふられている数字①②③であらわします。

"平成"→①と②と③で出現
"廃液濃縮装置"→①と②で出現
"事故"→①のみで出現

以上がインデックスをつくるというプロセスでした。

ステップ5 ユーザインターフェースをつくる

インデックスが作成されたら次は、ユーザが実際に検索したい単語を入力するためのユーザインターフェースをつくる必要があります。検索キーワードを入れるボックスを準備したり、その結果を表示する画面をつくるといったところになります。

以上が、5つのステップでした。この流れを一番簡単に低コストで実現する方法としてFessというオープンソースソフトウェアがあります。まずは、これを使って実装してみることがおすすめです。特にややこしいステップ3,4,5が一気に楽になります。お近くにソフトウェアエンジニアがいる場合、ぜひ検討してみてください!

実はFess自体も、Elasticsearchというソフトウェアを動かすためのパッケージになっていて、制約もあるかもしれませんが入門編としておススメです!

最後まで読んでいただき、ありがとうございました!!


この記事が参加している募集

私のイチオシ

この記事が気に入ったらサポートをしてみませんか?