電子書籍の文字列検索が期待外れだった件

 前回、前々回と洋書の電子書籍が国内の電子書籍よりもずっと便利であることを記した。(iOSのブックアプリ、ブックストア利用)

確かに便利であるが、実際に何度も使ってみると見えてくる事もある。

電子書籍の便利さの一つの要素として単語や文節を検索できる事が挙げられる。

辞書の場合は見出し語だけではなく、例文も含めて検索が可能であり、紙の辞書では体験出来ない利便性を享受できる。

さて、その便利な検索ではあるが、実際に使ってみると検索システムに工夫が無い事に気がつく。

私は長く検索システムに関わっており、普通の人よりは詳しい方なので、その問題について記しておく。

これは「anh」で検索した例。
しかし、検索結果の上位に一つも「anh」が無いことに気がつく。
発生している問題は2つある、「anh」で「thanh」等のanhを含む単語がヒットしている。
もう一つは声調や母音の種類を表す発音記号が無視されている。「anh」で「ảnh」がヒットしてしまっている。
このため関係ない単語が大量にヒットし、「anh」を含む単語を見つけるのが困難になっている。
こういうのを私は検索のノイズと呼んでいる。
「anh」の場合は二種類のノイズが同時発生した事で大量のノイズが発生した。

何故このような事になるのか? まず、より問題の大きい前者の部分一致について記す。
例えばGoogleスプレッドシートやドキュメントで検索しても検索精度は似たようなものであり、この結果を仕方ないと思う人もいるかもしれない。
ただ、それは大量の文書に対して検索することを前提としていないスプレッドシートやドキュメントでは許されるのであって、大量のテキストから検索する必要がある状況ではそれなりにちゃんとした検索システムを構築するべきである。
電子書籍のような数百ページの本から単語を検索する事が通常である環境ではちゃんとした検索システムを構築して欲しいと思う。

通常、データベースに対して全文検索を行う場合は、検索精度を向上させるために言語ごとに特化した調整が行われる。
英語やスペイン語等の欧米の言語では単語をスペースで区切る分かち書きが行われている。
なので、スペースを単語の区切りとして、単語が完全に一致するものをヒットするようにするのが一般的である。
そうすれば「ACE」で「SPACE」がヒットしてしまうような事はなく、目的の単語を見つけやすくなる。
このように欧米の言語では精度の向上は比較的容易に行えるが、日本語のようにスペースによる分かち書きが行われない言語では調整は簡単ではない。
しかし、調整しないと日本語もノイズに苦労することになる。
わかりやすい例で言うと、「京都」で検索しているのに「東京都」がヒットすると、大量の東京都を含む結果によって京都が見つけづらくなってしまう。
「スター」で検索したはずが「マスター」とか「カスタード」がヒットしたら邪魔でしょうがない。
では、どうするのかというと、大量の文書を検索する際には形態素解析を行うのが一般的である。
形態素解析とは何かというと、文書を単語単位で認識する技術である。
※詳細はこちらを見てほしい→Kuromoji

例えば、「私はカスタードプリンを食べるのが好きだ」という文節を形態素解析すると

名詞,代名詞,一般,*
助詞,係助詞,*,*
カスタード 名詞,一般,*,*
プリン 名詞,一般,*,*
助詞,格助詞,一般,*
食べる 動詞,自立,*,*
名詞,非自立,一般,*
助詞,格助詞,一般,*
好き 名詞,形容動詞語幹,*,*
助動詞,*,*,*

というように解析され単語が分割される。
この形態素に対して完全一致で検索するようにする事で、「スター」では「カスタード」と一致しないのでヒットしないようにする事が出来る。

このように全文検索の精度を向上させようとすると、一つ一つの言語に特化した調整が必要になる。
そういうのが難しい時には多言語モードで検索することになるが、多言語モードでは現在のブックアプリのような低精度の検索になる。

つまりは、ブックアプリの現状は多言語モードのような状態であり、言語ごとの調整が行われていない。つまり手抜きだと感じる。

まぁ、OSの言語設定を英語にした場合にはブックアプリの検索が単語単位になるのかもしれない。いつか試してみようと思う。

アルファベットの記号について
これについては、記号付きのアルファベットを入力できない環境で検索することを考慮した結果だと思われる。
何故なら、「ảnh」 で検索すると「anh」 はヒットせず、「ảnh」のみがヒットするからである。

記号を指定すると、指定した記号付き文字だけになるが、記号を指定しない場合は全ての記号を含んでヒットする。
記号付き文字を入力できない環境でも検索できるようにした結果、記号無しだけを検索することが出来なくなっているというのが実情であろう。
Googleドキュメントの検索では記号を無視するというチェックがあり、無視しないようにする事も選択できるようになっている。
ブックアプリにはこのような選択肢は無いので、現状のような結果になっている。
シンプルでわかりやすいことを重視するappleは敢えてこうした機能を排除していると推察できるが、ベトナム語の視点で考えると不満がある。

iOSのブックアプリはこの様な状況であるが、この事から他の電子書籍を試してみたくなった。
日本の電子書籍比較を以前一度記事にしているが、その時は本の品揃えや値引き等について比較しており検索機能の比較は行っていなかった。
近いうちに電子書籍アプリの検索機能について検証してみようと思う。


コメント

このブログの人気の投稿

Googleスプレッドシートの正規表現置換で改行文字

Googleスプレッドシートのimportxml関数をhtmlに使う

『ベトナム語』多言語対応学習アプリDropsを一年以上続けてみた