この方法では文の類似性は図2に示すように、以下の2つの情報を 基準に評価される。
文の類似性をそれらの文を構成する形態素の文字列パターンの照合によって 判定する。各形態素の照合の結果、二つの文が共通の単語を多く持つほど、 それらの文は類似性が高いと考える。例えば、二つの文「彼は歩いて行く」と 「彼は学校に行った」という文を形態素ごとに分割してそれぞれ比較すると、 三つの要素「彼、は、行く」が一致する。これらをつないだ文「彼は行く」 は二つの文の意味の共通する部分と言ってよい。従って、この二つの文は 意味的に類似していると言うことができる。全ての文においてこれがいえる わけではないが、多くの類似した文においてこのような一致は類似性を 表す重要な要素である。
より構造的に類似した文を判定するために、照合で適合した形態素の配置の 順序関係を考慮する。例えば、「彼、は、行く」の三つが適合しても、 「彼は学校に行った」に適合するのと、 「私は彼の所へ行く」に適合するのとでは、 意味的な類似性に差がある。その差は、適合した要素の構造的な違いから 生じるものであり、文の類似性を判定する場合、構造の類似性の評価が 重要であると考えられる。そこで、ここでは構造の類似性を形態素の 順序関係によって判定することとする。適合した単語中の2単語の全ての 組み合わせにおいて、それらの単語の入力文における順序と同じ組の 数がわかれば、全組み合わせ数との割合から語順一致率として計算する ことができる。
以上の類似性判定法をふまえて、日本語コーパスから、複数の単語が適合する 文を高速に検索するアルゴリズムを提案する。具体的には文を構成する 各形態素ごとを先頭とした数文字を抽出したもの(インデックス)を文字コード 順に並べ直したインデックスソートファイルを使用して検索を行う。これに、 入力文の各形態素を文字コード順に照合することによって複数単語の高速な 検索を実現する。インデックスソートファイル内では、ある単語に適合する インデックスはある場所からある場所までまとまって存在する。従って、 一つのインデックスに対して検索単語全てを照合する必要はなく、検索 単語どうしに重複がなければ、ひとつのインデックスに 一回の照合で済む。
入力文と原文の類似度は、入力文における一致率(再現率)、原文における 一致率(適合率)、語順一致率の三つの積から評価する。これらの各値は 0から1の値で表されるので類似度も同様に0から1の値をとることになる。 ただし、原文に対して入力文は短い文であることが多いので、適合率は 平方根として重みを緩和し、類似度Simを次のように計算する。
rf:再現率 pf:適合率 o: 語順一致率
再現率と適合率、語順一致率は以下のように定義する。
組の数 / 適合単語2単語の組み合わせ総数
この手法を、文字から文節を照合単位とした場合に拡張し、利用する。 これにより、入力文と同一の文節を含み、かつその出現順序が 保たれている文の一致文節が抽出される。一致文節数により順位付けされた 複数候補が選び出されるので、これらの候補の上位から順に#2と#3を適用して いく。
ユーザがキーとなる文を入力すると、前述の方法によって、形態素解析、 単語抽出、ソートなどの処理が施され、あらかじめ作成しておいた インデックスソートファイルとその照合を行う。検索の結果、各単語ごとに インデックスの情報が蓄積され、後にそれを適合文ごとの情報に整理して 適合文マトリックスとし、その情報をもとに各適合文に対して再現率、 適合率、語順一致率、類似度が算出される。最後に適合文の中から 類似度順に上位一定数の文を抽出して表示する。このシステムを用いて、 検索対象に夏目漱石の「こころ」3000文を用意し検索実験を行った。 検索結果の出力例を次ページに示す。
入力文:私はその真似ができる |
[私][は][その]言葉のために、帰ってから安心して寝ること[が][出来]た。 |
再現率[0.8000]:適合率[0.2500]:語順一致率[0.9500]:類似度[0.4000] |
[私]も[その][真似]をした。 |
再現率[0.5000]:適合率[0.5000]:語順一致率[0.9500]:類似度[0.3536] |
[私][は]其所まで読んで、始めてこの長いもの[が]何のために書かれたのか、 [その]理由を |
を明らかに知る事[が][出来]た。 |
再現率[0.8000]:適合率[0.1633]:語順一致率[0.8574]:類似度[0.3232] |
「それでも[その]人の御蔭で地位[が][出来れ]ばまあ結構だ。 |
再現率[0.6000]:適合率[0.2400]:語順一致率[0.9500]:類似度[0.2939] |
[私]の眼[は]長い間、軍服を着た乃木大将と、それから官女みたような服装を した[その] |
夫人の姿を忘れる事[が][出来]なかった。 |
再現率[0.8000]:適合率[0.1296]:語順一致率[0.8574]:類似度[0.2880] |
入力文:私の頭に何かが浮いてきたのだ |
[私][の][頭][に]は再び先生[の]顔[が][浮い][て][出][た]。 |
再現率[0.6111]:適合率[0.6111]:語順一致率[0.9025]:類似度[0.4777] |
[私][の]尻を卸し[た]所は少し小高い丘[の]上で、そのすぐ傍[が]ホテル[の] 裏口[に]なっ |
[てい][た][ので]、[私][の]凝としている間[に]、大分多く[の] 男[が]塩を浴び[に][出][て]来 |
[た][が]、[いずれ]も胴と腕と股は出し[てい]なっか[た]。 |
再現率[0.5000]:適合率[0.3182]:語順一致率[0.4633]:類似度[0.2626] |
[私][は]今前後[の]行き掛りを忘れ[てしまった][た][から]、先生[が][何] [の]為にこんな自白 |
を[私][に]為[て]聞かせ[た][の][か]、判然云う事[が]出来ない。 |
再現率[0.4444]:適合率[0.3393]:語順一致率[0.6983]:類似度[0.2500] |
かつて遊興[の][ため][に]往来をし[た]覚[の]ない先生は、歓楽[の]交際 [から][出る]親しみ |
以上[に]、何時か[私][の][頭][に]影響を与え[てい][た]。 |
再現率[0.5000]:適合率[0.3519]:語順一致率[0.6983]:類似度[0.2455] |
[私]は父[の]上[に]最後[の]瞬間[が]来[た][のだ]と覚悟し[た]。 |
再現率[0.3889]:適合率[0.3913]:語順一致率[0.7351]:類似度[0.2433] |