電子書籍の文字列検索が期待外れだった件
前回、前々回と洋書の電子書籍が国内の電子書籍よりもずっと便利であることを記した。(iOSのブックアプリ、ブックストア利用) 確かに便利であるが、実際に何度も使ってみると見えてくる事もある。 電子書籍の便利さの一つの要素として単語や文節を検索できる事が挙げられる。 辞書の場合は見出し語だけではなく、例文も含めて検索が可能であり、紙の辞書では体験出来ない利便性を享受できる。 さて、その便利な検索ではあるが、実際に使ってみると検索システムに工夫が無い事に気がつく。 私は長く検索システムに関わっており、普通の人よりは詳しい方なので、その問題について記しておく。 これは「anh」で検索した例。 しかし、検索結果の上位に一つも「anh」が無いことに気がつく。 発生している問題は2つある、「anh」で「th anh 」等のanhを含む単語がヒットしている。 もう一つは声調や母音の種類を表す発音記号が無視されている。「anh」で「ảnh」がヒットしてしまっている。 このため関係ない単語が大量にヒットし、「anh」を含む単語を見つけるのが困難になっている。 こういうのを私は検索のノイズと呼んでいる。 「anh」の場合は二種類のノイズが同時発生した事で大量のノイズが発生した。 何故このような事になるのか? まず、より問題の大きい前者の部分一致について記す。 例えばGoogleスプレッドシートやドキュメントで検索しても検索精度は似たようなものであり、この結果を仕方ないと思う人もいるかもしれない。 ただ、それは大量の文書に対して検索することを前提としていないスプレッドシートやドキュメントでは許されるのであって、大量のテキストから検索する必要がある状況ではそれなりにちゃんとした検索システムを構築するべきである。 電子書籍のような数百ページの本から単語を検索する事が通常である環境ではちゃんとした検索システムを構築して欲しいと思う。 通常、データベースに対して全文検索を行う場合は、検索精度を向上させるために言語ごとに特化した調整が行われる。 英語やスペイン語等の欧米の言語では単語をスペースで区切る分かち書きが行われている。 なので、スペースを単語の区切りとして、単語が完全に一致するものをヒットするようにするのが一般的である。 そうすれば「ACE」で「SPACE」がヒットしてしまうような事はなく