next up previous contents
次へ: 文節の削除(#2) 上へ: アルゴリズムの概略 戻る: アルゴリズムの概略   目次

一致文節の抽出(#1)

アルゴリズムの中に組み込んだ、#1の 日本語類似文検索アルゴリズムの研究[3]の説明を行う。 手法[3]では、形態素の表層的な文字列情報(図2)のみで 高速に類似文を検索する方法が提案されている。 この方法は比較すべき文間の形態素と出現順序を考慮しながら 照合することによって類似性を判定するもので、インデックスソートファイル を利用するため検索速度が速い。
  1. 文の表層的類似性

    この方法では文の類似性は図2に示すように、以下の2つの情報を 基準に評価される。

    1. 形態素の照合

      文の類似性をそれらの文を構成する形態素の文字列パターンの照合によって 判定する。各形態素の照合の結果、二つの文が共通の単語を多く持つほど、 それらの文は類似性が高いと考える。例えば、二つの文「彼は歩いて行く」と 「彼は学校に行った」という文を形態素ごとに分割してそれぞれ比較すると、 三つの要素「彼、は、行く」が一致する。これらをつないだ文「彼は行く」 は二つの文の意味の共通する部分と言ってよい。従って、この二つの文は 意味的に類似していると言うことができる。全ての文においてこれがいえる わけではないが、多くの類似した文においてこのような一致は類似性を 表す重要な要素である。

    2. 形態素の順序関係

      より構造的に類似した文を判定するために、照合で適合した形態素の配置の 順序関係を考慮する。例えば、「彼、は、行く」の三つが適合しても、 「彼は学校に行った」に適合するのと、 「私は彼の所へ行く」に適合するのとでは、 意味的な類似性に差がある。その差は、適合した要素の構造的な違いから 生じるものであり、文の類似性を判定する場合、構造の類似性の評価が 重要であると考えられる。そこで、ここでは構造の類似性を形態素の 順序関係によって判定することとする。適合した単語中の2単語の全ての 組み合わせにおいて、それらの単語の入力文における順序と同じ組の 数がわかれば、全組み合わせ数との割合から語順一致率として計算する ことができる。

  2. インデックスソートファイルを利用した単語検索

    以上の類似性判定法をふまえて、日本語コーパスから、複数の単語が適合する 文を高速に検索するアルゴリズムを提案する。具体的には文を構成する 各形態素ごとを先頭とした数文字を抽出したもの(インデックス)を文字コード 順に並べ直したインデックスソートファイルを使用して検索を行う。これに、 入力文の各形態素を文字コード順に照合することによって複数単語の高速な 検索を実現する。インデックスソートファイル内では、ある単語に適合する インデックスはある場所からある場所までまとまって存在する。従って、 一つのインデックスに対して検索単語全てを照合する必要はなく、検索 単語どうしに重複がなければ、ひとつのインデックスに 一回の照合で済む。

  3. 類似度の評価基準

    入力文と原文の類似度は、入力文における一致率(再現率)、原文における 一致率(適合率)、語順一致率の三つの積から評価する。これらの各値は 0から1の値で表されるので類似度も同様に0から1の値をとることになる。 ただし、原文に対して入力文は短い文であることが多いので、適合率は 平方根として重みを緩和し、類似度Simを次のように計算する。

    $Sim = rf \times \sqrt{pf} \times o$

    rf:再現率 pf:適合率 o: 語順一致率

    再現率と適合率、語順一致率は以下のように定義する。

    このように、再現率、適合率は文字数の割合で計算する。従って、 文字数の多い単語の適合ほど類似度への影響が高くなる。 類似度算出の例を図3に示す。

ここで述べた、文の表層的類似性、インデックスソートファイルを使用した 単語検索、類似度の評価基準の3点をふまえて、全体の流れを述べる。 まず、あらかじめ検索対象となるコーパスを文字コード順に ソートし、ソートファイルを作成しておく。次に入力文が与えられると、 それを形態素ごとに分割した上で、インデックスソートファイルと照合し、 その再現率と適合率、語順によって類似性を判定する。 これによって、多少の文要素の違いや欠落のある文でも、類似性の高い文と して判定でき、構造の類似した文を抽出できる。 特に用例翻訳においては、構造的に類似した文の検索は翻訳テンプレート の作成などに有用である。また検索の際、インデックスソートファイルに対し 文字コード順に照合することで、検索にかかる時間を短縮する ことができる。図4にこの手法に従って作成された類似文検索システム の実行イメージを示す。

この手法を、文字から文節を照合単位とした場合に拡張し、利用する。 これにより、入力文と同一の文節を含み、かつその出現順序が 保たれている文の一致文節が抽出される。一致文節数により順位付けされた 複数候補が選び出されるので、これらの候補の上位から順に#2と#3を適用して いく。

図 2: 文の表層的な類似性
\includegraphics[scale=1.5,keepaspectratio]{hyoso.eps}

図 3: 類似度算出の例
\includegraphics[scale=1.28,keepaspectratio]{keisan.eps}

図 4: 類似文検索システムの実行イメージ
\includegraphics[scale=1.35,keepaspectratio]{img.eps}


【解説】

ユーザがキーとなる文を入力すると、前述の方法によって、形態素解析、 単語抽出、ソートなどの処理が施され、あらかじめ作成しておいた インデックスソートファイルとその照合を行う。検索の結果、各単語ごとに インデックスの情報が蓄積され、後にそれを適合文ごとの情報に整理して 適合文マトリックスとし、その情報をもとに各適合文に対して再現率、 適合率、語順一致率、類似度が算出される。最後に適合文の中から 類似度順に上位一定数の文を抽出して表示する。このシステムを用いて、 検索対象に夏目漱石の「こころ」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]


next up previous contents
次へ: 文節の削除(#2) 上へ: アルゴリズムの概略 戻る: アルゴリズムの概略   目次
平成14年5月1日