見出し画像

図書館の作業員?検索エンジンの精度を高める「全文検索」の機能

AIの頭脳と言われる、自然言語処理。

頭脳も自然言語処理の中も、『知識』という膨大なデータが混在しています。

そこから『欲しい情報』を探してくれるのが『検索エンジン』であることを、前回の投稿ではお話しました。まずはそのおさらいです。

改めて図書館を例に、『検索エンジン』の仕組みについて確認しましょう!

①インデックス(図書館の本棚から)
②検索クエリ(利用者が欲しい本のキーワードを元に候補を上げて)
③検索ランキング(②の中から利用者に適した本順に優先順位をつける(ランク付け))

この一覧の流れが『検索エンジン』の役割。

では『全文検索』とは?実は②の精度を上げるために使われるのが『全文検索』なのです。

具体的には…そうですね。仮に『美味しいトマト』というキーワードを元に、Googleで検索をかけたとします。すると検索エンジンの機能だけでは、『美味しいトマト』の文章が、そのまま書かれたページしか表示されないのです。

画像4

※最近トマトにハマってますw

うう〜ん、せっかくトマトについて調べているなら、トマトに関連した他の情報も知りたいですよね。

残念ながら検索エンジンだけでは『美味しい国産のトマト』と書かれたページは、表示してくれません。

コリャ困った。そこで活躍するのが『全文検索』!

では『全文検索』はそもそもどんな仕組みで動いているのか?

それが自然言語処理の核でもある『形態素解析』が果たす役割なのです。…形態素解析?なんだそりゃですね、次に解説を行います。

自然言語処理の要である形態素解析とは

自然言語処理の中にある検索エンジン、検索エンジンの精度を高める全文検索。そして全文検索の精度を高めるために必要な形態素解析。ではそもそも「形態素」とはなんでしょう?

形態素(けいたいそ、英: morpheme)とは、言語学の用語で、意味をもつ表現要素の最小単位。ある言語においてそれ以上分解したら意味をなさなくなるところまで分割して抽出された、音素のまとまりの1つ1つを指す。

※日本語Wikipediaより引用

はい。ようは『美味しいトマト』を形態素解析すると

・美味しい
・トマト

になるんです。つまりこの文で言うなら
『美味しいトマト』を『美味しい』と『トマト』、形態素ごとに分ける作業を『形態素解析』

もっと簡単に言うなら、文章を単語に分ける作業が『形態素解析』というわけです。

これで『美味しいトマト』の文章が入ったページだけではなく、『美味しい国産のトマト』のページも検索結果に表示してくれるようになるんです。

すごいですね、形態素解析!
皆さんも、ネットサーフィンしてると思わぬ情報が手に入ったりしますよね。

まさに調べたいと思っていた以上の情報を得られるようになるのが、『形態素解析』の役割と言えます。

では、形態素解析の凄さが伝わったところで…今度は逆に出来ないこと、『形態素解析の限界』についてお話しましょう。

『形態素解析』に出来ないことは?

先程は『美味しいトマト』なら『美味しい』と『トマト』で、単語を分けてくれるのが形態素解析の役割であることをお話ししました。しかし、この形態素解析にも『限界』があるのです。

この形態素解析の『限界』を示す例文として有名なものがあります。

皆さんは以下の文、どんな文章に見えますか?

ここではきものをぬげ

『ここではきものをぬげ』、どんな意味に感じられましたか?実はこの文章、単語(形態素)の分け方によって2通りの意味を持つ文に変わるんです。

ここで|はきもの|を|ぬげ
ここでは|きもの|を|ぬげ

どうでしょう?どちらが正解かは、まさに書き手の意思ひとつ。この文章が漢字で書いてあれば容易なのですが、そうでない場合判別出来る材料が無く、形態素解析はどちらかに偏った判別しか出来なくなります。

とはいえこの辺は、人間が見ても判断に迷う内容ですから『形態素解析の限界=人間の認識の限界値』に近いとも言えます。面白いですね。

形態素解析にも種類がある!代表的な例

自然言語処理の一部の機能として、あらゆる形で使用される形態素解析技術。その形態素解析を行うためのツールの名称を『形態素解析器』と言います。

ちなみにこの『形態素解析器』、多くのものがなんと無料で使用できます。( いつもお世話になってます… )

以下が代表的な日本語の形態素解析器です。

MeCab

画像1

※ホラー写真ではなくメカブですw

作成者の工藤先生がめかぶが大の好物であったというところから命名されたようですが、もはや日本語の形態素解析器の金字塔、デファクト・スタンダードとなっています。とにかく高速でさくさく動作、十分に高い精度で形態素解析を行えるスグレモノ。

『日本語の形態素解析器と言えばMeCab!』と言われる位有名な形態素解析器なので、怪しい写真と共に名前を覚えておくと良いでしょう。

Sudachi

画像2

Elasticsearchという、オープンソースの検索エンジンのフレームワークで採用されている評判の良い形態素解析器です。形態素解析に使用される辞書が新しいという点と、形態素解析の挙動をモードとして選択する事ができ、より全文検索を行うのに相応しい形態素解析器といえます。

Janome

画像3

Janome=蛇の目という事で、勘の良い方であればピンときたかもしれませんが(いやノンプログラマーにはわからないカモ・・・)、『Python』というプログラミング言語専用の形態素解析器です。Pythonはプログラミングソフトとしてはかなりメジャーなものとなりつつあるので、こちらもお名前だけでも覚えておくと良いかもしれません。きっと多少の知ったかぶりに使えます。(多分)

JenomeはPython上で形態素解析器を実行する場合にとても便利なツールです。

まとめ

いかがでしょうか?

今回は『美味しいトマト』と検索しても、形態素解析によって『美味しい国産のトマト』のページも探してくれるようになる『全文検索』の機能について解説しました。

今も私達の知らないところで、既にたくさんのAIは働き、日々の生活になくてはならないものとなっています。

今後も『当たり前』、だけど『改めて考えたことがない』

そんなAIの解説を続けてまいりますので、今後ともよろしくお願いします。


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