(57)【特許請求の範囲】
【請求項１】
アルファベット表記の文字列と該アルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成する第１生成手段と、
前記学習文字列集合を用いて、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成する第２生成手段と、
アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分とカタカナ表記の文字が連続する部分とを抽出する抽出手段と、
前記アルファベット表記の文字が連続する部分に含まれるＮ−グラムに対応する前記アルファベット−カタカナ基底ベクトルと、前記カタカナ表記の文字が連続する部分に含まれるＭ−グラムに対応する前記カタカナ−カタカナ基底ベクトルとに基づいて、前記対象文字列集合に含まれる文字列の特徴ベクトルを計算する特徴ベクトル計算手段と、
前記特徴ベクトル計算手段により計算された前記対象文字列集合に含まれる二つの文字列の各々の特徴ベクトルに基づいて、前記二つの文字列間の類似度を計算する類似度計算手段と、
を含む文字列類似度計算装置。
【請求項２】
第１生成手段と、第２生成手段と、抽出手段と、特徴ベクトル計算手段と、類似度計算手段とを含む文字列類似度計算装置における文字列類似度計算方法であって、
前記第１生成手段が、アルファベット表記の文字列と該アルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成し、
前記第２生成手段が、前記学習文字列集合を用いて、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成し、
前記抽出手段が、アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分とカタカナ表記の文字が連続する部分とを抽出し、
前記特徴ベクトル計算手段が、前記アルファベット表記の文字が連続する部分に含まれるＮ−グラムに対応する前記アルファベット−カタカナ基底ベクトルと、前記カタカナ表記の文字が連続する部分に含まれるＭ−グラムに対応する前記カタカナ−カタカナ基底ベクトルとに基づいて、前記対象文字列集合に含まれる文字列の特徴ベクトルを計算し、
前記類似度計算手段が、前記特徴ベクトル計算手段により計算された前記対象文字列集合に含まれる二つの文字列の各々の特徴ベクトルに基づいて、前記二つの文字列間の類似度を計算する
文字列類似度計算方法。
【請求項３】
コンピュータを、請求項１記載の文字列類似度計算装置を構成する各手段として機能させるための文字列類似度計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列類似度計算装置、方法、及びプログラムに係り、特に、アルファベット表記とカタカナ表記が混在する文字列集合において、この文字列集合に含まれる二つの文字列の読みの類似度を計算する文字列類似度計算装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
アルファベット表記のみ、もしくはカタカナ表記のみからなる文字列集合については、各文字列におけるＮ−グラムの出現頻度に基づいて類似度を定めることができる。
【０００３】
例として、アルファベット表記のみからなる次の文字列集合Aについて、各文字列における２−グラムの出現頻度に基づく類似度判定を説明する。
【０００４】
A = {"adam", "add", "admin", "dam", "damon"}
【０００５】
文字列sに含まれる２−グラムの集合をB(s)とすると、文字列集合Aの要素である各文字列についてのB(s)は、以下のとおりとなる。
【０００６】
B("adam") = {".a", "ad", "da", "am", "m."}
B("add") = {".a", "ad", "dd", "d."}
B("admin") = {".a", "ad", "dm", "mi", "in", "n."}
B("dam") = {".d", "da", "am", "m."}
B("damon") = {".d", "da", "am", "mo", "on", "n."}
【０００７】
ここで、"."は、文字列の先頭または末尾に対応させるダミー文字である。文字列各sと文字列tとの類似度S(s,t)は、Jaccard係数を用いて、
S(s, t) = |B(s) ∩ B(t)| / |B(s) ∪ B(t)|
として定めることができる。
【０００８】
例として、"adam"と"add"との類似度について考える。B("adam")とB("add")とに共通する２−グラムは、
B("adam") ∩ B("add") = {".a", "ad"}
の２個あるから、
|B("adam") ∩ B("add")| = 2
【０００９】
また、B("adam")とB("add")とに一つでも含まれる２−グラムは、
B("adam") ∪ B("add") = {".a", "ad", "am", "da", "dd", "d.", "m."}
の７個あるから、
|B("adam") ∪ B("add")| = 7
従って、"adam"と"add"との類似度は、
S("adam", "add") = 2/7
である。
【００１０】
アルファベット表記とカタカナ表記が混在する文字列集合における文字列間の類似度は、アルファベット表記をカタカナ表記へ変換してカタカナ表記同士で比較する、もしくはカタカナ表記をアルファベット表記へ変換してアルファベット表記同士で比較する方法がある。
【００１１】
前者については、アルファベット表記をカタカナ表記へ変換する技術が適用できる（例えば、非特許文献１参照）。非特許文献１の方法は、人名辞書におけるアルファベット表記の部分文字列とカタカナ表記の部分文字列との組の出現頻度の変化から、アルファベット表記とカタカナ表記との対応規則を自動的に得る方法である。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】増田恵子、梅村恭司、「人名辞書から名前読み付与規則を抽出するアルゴリズム」、情報処理学会論文誌、V0l.40 No.7 pp.2927-2936、１９９９年
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来の方法は、表記の類似度に基づくものであり、特にアルファベット表記とカタカナ表記とが混在する場合は、かならずしも読みの類似度を反映した評価にはならない。
【００１４】
アルファベット表記とカタカナ表記とが混在する場合は、どちらか一方の表記に揃えて比較することが可能であるが、アルファベット表記をカタカナ表記へ変換する非特許文献１の方法では、一つの対応規則の正解率が８０％程度であり、一つのアルファベット表記が複数の対応規則を含む場合の正解率はさらに低下する。従って、カタカナに変換された表記には相当数の表記ゆれやノイズが含まれるものと考えられるため、カタカナ変換した後の表記に基づくＮ−グラムの出現頻度の精度は低下し、適切に文字列間の類似度を計算することができない、という問題がある。
【００１５】
本発明は上記事情に鑑みて成されたものであり、アルファベット表記−カタカナ表記間の対応関係が複数存在する場合でも、表記ゆれやノイズによる影響を抑制し、適切に文字列間の類似度を計算することができる文字列類似度計算装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明の文字列類似度計算装置は、アルファベット表記の文字列と該アルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成する第１生成手段と、前記学習文字列集合を用いて、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成する第２生成手段と、アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分とカタカナ表記の文字が連続する部分とを抽出する抽出手段と、前記アルファベット表記の文字が連続する部分に含まれるＮ−グラムに対応する前記アルファベット−カタカナ基底ベクトルと、前記カタカナ表記の文字が連続する部分に含まれるＭ−グラムに対応する前記カタカナ−カタカナ基底ベクトルとに基づいて、前記対象文字列集合に含まれる文字列の特徴ベクトルを計算する特徴ベクトル計算手段と、前記特徴ベクトル計算手段により計算された前記対象文字列集合に含まれる二つの文字列の各々の特徴ベクトルに基づいて、前記二つの文字列間の類似度を計算する類似度計算手段と、を含んで構成されている。
【００１７】
本発明の文字列類似度計算装置によれば、アルファベット表記の文字列とアルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合が入力されると、第１生成手段が、学習用文字列集合を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成し、第２生成手段が、学習文字列集合を用いて、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成する。そして、アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合が入力されると、抽出手段が、対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分とカタカナ表記の文字が連続する部分とを抽出し、特徴ベクトル計算部が、アルファベット表記の文字が連続する部分に含まれるＮ−グラムに対応するアルファベット−カタカナ基底ベクトルと、カタカナ表記の文字が連続する部分に含まれるＭ−グラムに対応するカタカナ−カタカナ基底ベクトルとに基づいて、対象文字列集合に含まれる文字列の特徴ベクトルを計算し、類似度計算手段が、特徴ベクトル計算手段により計算された対象文字列集合に含まれる二つの文字列の各々の特徴ベクトルに基づいて、二つの文字列間の類似度を計算する。
【００１８】
このように、予め与えられたアルファベット表記とカタカナ表記との正しい対応関係を用いて生成されたアルファベット−カタカナ基底ベクトル及びカタカナ−カタカナ基底ベクトルに基づいて、文字列間の類似度を計算するため、アルファベット表記−カタカナ表記間の対応関係が複数存在する場合でも、表記ゆれやノイズによる影響を抑制し、適切に文字列間の類似度を計算することができる。
【００１９】
また、本発明の文字列類似度計算方法は、第１生成手段と、第２生成手段と、抽出手段と、特徴ベクトル計算手段と、類似度計算手段とを含む文字列類似度計算装置における文字列類似度計算方法であって、前記第１生成手段が、アルファベット表記の文字列と該アルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成し、前記第２生成手段が、前記学習文字列集合を用いて、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成し、前記抽出手段が、アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分とカタカナ表記の文字が連続する部分とを抽出し、前記特徴ベクトル計算手段が、前記アルファベット表記の文字が連続する部分に含まれるＮ−グラムに対応する前記アルファベット−カタカナ基底ベクトルと、前記カタカナ表記の文字が連続する部分に含まれるＭ−グラムに対応する前記カタカナ−カタカナ基底ベクトルとに基づいて、前記対象文字列集合に含まれる文字列の特徴ベクトルを計算し、前記類似度計算手段が、前記特徴ベクトル計算手段により計算された前記対象文字列集合に含まれる二つの文字列の各々の特徴ベクトルに基づいて、前記二つの文字列間の類似度を計算する方法である。
【００２０】
また、本発明の文字列類似度計算プログラムは、コンピュータを、上記の文字列類似度計算装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００２１】
以上説明したように、本発明の文字列類似度計算装置、方法、及びプログラムによれば、予め与えられたアルファベット表記とカタカナ表記との正しい対応関係を用いて、アルファベット表記の各文字列に含まれるＮ−グラムに対するカタカナ表記の各文字列に含まれるＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルと、カタカナ表記の各文字列に含まれる二つのＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルとを生成し、これに基づいて文字列間の類似度を計算するため、アルファベット表記−カタカナ表記間の対応関係が複数存在する場合でも、表記ゆれやノイズによる影響を抑制し、適切に文字列間の類似度を計算することができる、という効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態の文字列類似度計算装置の機能的構成を示すブロック図である。
【図２】本実施の形態における基底ベクトル生成処理ルーチンの内容を示すフローチャートである。
【図３】本実施の形態における類似度計算処理ルーチンの内容を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２４】
＜装置構成＞
【００２５】
本発明の実施の形態に係る文字列類似度計算装置１０は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、後述する基底ベクトル生成処理及び類似度計算処理を含む文字列類似度計算処理ルーチンを実行するためのプログラムを記憶したＲＯＭ（Read Only Memory）とを備えたコンピュータで構成されている。このコンピュータは、機能的には、図１に示すように、学習用Ｎ−グラム抽出部１１と、学習用Ｍ−グラム抽出部１２と、アルファベット−カタカナ基底ベクトル生成部１３と、カタカナ−カタカナ基底ベクトル生成部１４と、連続部分抽出部１５と、特徴ベクトル計算部１６と、類似度計算部２２とを含んだ構成で表すことができる。なお、アルファベット−カタカナ基底ベクトル生成部１３は本発明の第１生成手段の一例であり、カタカナ−カタカナ基底ベクトル生成部１４は本発明の第２生成手段の一例であり、連続部分抽出部１５は本発明の抽出手段の一例である。
【００２６】
学習用Ｎ−グラム抽出部１１は、アルファベット表記の文字列と、そのアルファベット表記に対応するカタカナ表記の文字列との組からなる学習文字列集合に含まれるアルファベット表記の文字列の各々から、Ｎ−グラムを抽出する。
【００２７】
学習用Ｍ−グラム抽出部１２は、上記の学習文字列集合に含まれるカタカナ表記の文字列の各々から、Ｍ−グラムを抽出する。
【００２８】
アルファベット−カタカナ基底ベクトル生成部１３は、学習用Ｎ−グラム抽出部１１で抽出されたアルファベット表記のＮ−グラムに対する、学習用Ｍ−グラム抽出部１２で抽出されたカタカナ表記のＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトルを生成する。具体的には、アルファベット表記のＮ−グラムの各々に対するカタカナ表記のＭ−グラムの各々の共起頻度を求め、各Ｎ−グラムについての共起頻度の総和が１となるよう正規化した条件付き共起確率を得、この条件付き共起確率を要素とするベクトルをアルファベット−カタカナ基底ベクトルとする。生成したアルファベット−カタカナ基底ベクトルは、アルファベット−カタカナ基底ベクトル記憶部３０に記憶する。
【００２９】
カタカナ−カタカナ基底ベクトル生成部１４は、学習用Ｍ−グラム抽出部１２で抽出された二つのカタカナ表記のＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成する。具体的には、カタカナ表記のＭ−グラム間の共起頻度を求め、各Ｍ−グラムについての共起頻度の総和が１となるよう正規化した条件付き共起確率を得、この条件付き共起確率を要素とするベクトルをカタカナ−カタカナ基底ベクトルとする。生成したカタカナ−カタカナ基底ベクトルは、カタカナ−カタカナ基底ベクトル記憶部３１に記憶する。
【００３０】
連続部分抽出部１５は、アルファベット表記とカタカナ表記とが混在する類似度計算対象の対象文字列集合に含まれる文字列から、アルファベット表記の文字が連続する部分（以下、「アルファベット連続部分」という）と、カタカナ表記の文字が連続する部分（以下、「カタカナ連続部分」という）とを抽出する。
【００３１】
特徴ベクトル計算部１６は、さらに、計算対象Ｎ−グラム抽出部１７と、計算対象Ｍ−グラム抽出部１８と、Ｎ−グラム基底ベクトル加算部１９と、Ｍ−グラム基底ベクトル加算部２０と、加算正規化部２１とを含んだ構成で表すことができる。
【００３２】
計算対象Ｎ−グラム抽出部１７は、連続部分抽出部１５で抽出されたアルファベット連続部分から、Ｎ−グラムを抽出する。
【００３３】
計算対象Ｍ−グラム抽出部１８は、連続部分抽出部１５で抽出されたカタカナ連続部分から、Ｍ−グラムを抽出する。
【００３４】
Ｎ−グラム基底ベクトル加算部１９は、計算対象Ｎ−グラム抽出部１７で抽出されたＮ−グラムの各々について、アルファベット−カタカナ基底ベクトル記憶部３０から、対応するアルファベット−カタカナ基底ベクトルを抽出して加算する。
【００３５】
Ｍ−グラム基底ベクトル加算部２０は、計算対象Ｍ−グラム抽出部１８で抽出されたＭ−グラムの各々について、カタカナ−カタカナ基底ベクトル記憶部３１から、対応するカタカナ−カタカナ基底ベクトルを抽出して加算する。
【００３６】
加算正規化部２１は、Ｎ−グラム基底ベクトル加算部１９で加算された基底ベクトルと、Ｍ−グラム基底ベクトル加算部２０で加算された基底ベクトルとを加算し、各要素を各要素の総和で除すことにより、各要素の総和が１となるように正規化したものを、対象文字列集合に含まれる文字列の特徴ベクトルとする。
【００３７】
類似度計算部２２は、特徴ベクトル計算部１６により計算された二つの文字列の各々の特徴ベクトルに基づいて、二つの文字列間の類似度を計算する。
【００３８】
＜文字列類似度計算装置の作用＞
【００３９】
次に、本実施の形態に係る文字列類似度計算装置１０の作用について説明する。文字列類似度計算装置１０に学習文字列集合が入力されると、文字列類似度計算装置１０において、図２に示す基底ベクトル生成処理が実行されて、アルファベット−カタカナ基底ベクトル及びカタカナ−カタカナ基底ベクトルが生成されて、記憶される。アルファベット−カタカナ基底ベクトル及びカタカナ−カタカナ基底ベクトルが記憶された状態で、文字列類似度計算装置１０に対象文字列集合が入力されると、文字列類似度計算装置１０において、図３に示す類似度計算処理が実行される。以下、各処理について詳述する。
【００４０】
まず、基底ベクトル計算処理（図２）について説明する。ここでは、Ｎ＝４、Ｍ＝２として、アルファベット表記の４−グラム、カタカナ表記の２−グラムを用いる場合を例に説明する。
【００４１】
ステップ１００で、入力された学習文字列集合を受け付ける。ここでは、以下に示す２つの文字列のアルファベット表記とカタカナ表記との組からなる学習文字列集合Aを受け付けるものとする。
【００４２】
A = {{"adam", "アダム"}, {"dam", "ダム"}}
【００４３】
次に、ステップ１０２で、学習用Ｎ−グラム抽出部１１が、アルファベット表記の文字列に含まれる４−グラムaを抽出する。ここでは、"adam"から{"...a", "..ad",".ada", "adam", "dam.", "am..", "m..."}が抽出され、また、"dam"から{"...d", "..da",".dam", "dam.", "am..", "m..."}が抽出される。なお、"."は文字列の先頭または末尾に対応させるダミー文字である。
【００４４】
次に、ステップ１０４で、学習用Ｍ−グラム抽出部１２が、カタカナ表記に含まれる２−グラムkを抽出する。ここでは、"アダム"から{".ア", "アダ", "ダム", "ム."}が抽出され、また、"ダム"から{".ダ", "ダム", "ム．"}が抽出される。
【００４５】
次に、ステップ１０６で、アルファベット−カタカナ基底ベクトル生成部１３が、アルファベット表記の４−グラムaについて共起するカタカナ表記の２−グラムkの条件付き共起確率を計算する。具体的には、まず、アルファベット表記の４−グラムaに対するカタカナ表記の２−グラムkの共起頻度C(a, k)を求める。４−グラム"...a"に対する２−グラム".ア"の共起頻度は、アルファベット表記の文字列"adam"及び"dam"の各々のうち、"...a"が抽出されたアルファベット表記の文字列に対応するカタカナ表記の文字列から抽出された２−グラムkに".ア"が出現する頻度である。求めた共起頻度C(a, k)を下記表１に示す。
【００４６】
【表１】
0005676517.tif 000002
【００４７】
そして、各アルファベット表記の４−グラムaについて（表１の各行について）の共起頻度の総和が１となるよう正規化して、下記表２に示す条件付き共起確率C*(a, k)を得る。
【００４８】
【表２】
0005676517.tif 000003
【００４９】
次に、ステップ１０８で、アルファベット−カタカナ基底ベクトル生成部１３が、以下に示すように、表２の各行を切り出して、各アルファベット表記の４−グラムaに対するアルファベット−カタカナ基底ベクトルu(a)として、アルファベット−カタカナ基底ベクトル記憶部３０に記憶する。
【００５０】
u("...a") = (1/4, 0, 1/4, 1/4, 1/4)
u("...d") = (0, 1/3, 0, 1/3, 1/3)
u("..ad") = (1/4, 0, 1/4, 1/4, 1/4)
u("..da") = (0, 1/3, 0, 1/3, 1/3)
u(".ada") = (1/4, 0, 1/4, 1/4, 1/4)
u(".dam") = (0, 1/3, 0, 1/3, 1/3)
u("adam") = (1/4, 0, 1/4, 1/4, 1/4)
u("dam.") = (1/7, 1/7, 1/7, 2/7, 2/7)
u("am..") = (1/7, 1/7, 1/7, 2/7, 2/7)
u("m...") = (1/7, 1/7, 1/7, 2/7, 2/7)
【００５１】
次に、ステップ１１０で、カタカナ−カタカナ基底ベクトル生成部１４が、二つのカタカナ表記のＭ−グラム間の条件付き共起確率を計算する。具体的には、上記ステップ１０６と同様に、まず、カタカナ表記の２−グラムk及びk'の共起頻度D(k, k')を求める。求めた共起頻度D(k, k')を下記表３に示す。
【００５２】
【表３】
0005676517.tif 000004
【００５３】
そして、各カタカナ表記の２−グラムkについて（表３の各行について）の共起頻度の総和が１となるよう正規化して、下記表４に示す条件付き共起確率D*(k, k')を得る。
【００５４】
【表４】
0005676517.tif 000005
【００５５】
次に、ステップ１１２で、カタカナ−カタカナ基底ベクトル生成部１４が、以下に示すように、表４の各行を切り出して、各カタカナ表記の２−グラムkに対するカタカナ−カタカナ基底ベクトルv(k)として、カタカナ−カタカナ基底ベクトル記憶部３１に記憶し、基底ベクトル生成処理を終了する。
【００５６】
v(".ア") = (1/4, 0, 1/4, 1/4, 1/4)
v(".ダ") = (0, 1/3, 0, 1/3, 1/3)
v("アダ") = (1/4, 0, 1/4, 1/4, 1/4)
v("ダム") = (1/7, 1/7, 1/7, 2/7, 2/7)
v("ム.") = (1/7, 1/7, 1/7, 2/7, 2/7)
【００５７】
次に、類似度計算処理（図３）について説明する。
【００５８】
ステップ１２０で、入力された対象文字列集合を受け付ける。次に、ステップ１２２で、受け付けた対象文字列集合から１つの文字列を選択する。ここでは、例えば"WINTERクリアランスSale"が選択されたものとする。
【００５９】
次に、ステップ１２４で、連続部分抽出部１５が、選択された文字列からアルファベット連続部分を抽出し、全て小文字に変換する。ここでは、"winter"及び"sale"が抽出される。
【００６０】
次に、ステップ１２６で、連続部分抽出部１５が、選択された文字列からカタカナ連続部分を抽出する。ここでは、"クリアランス"が抽出される。
【００６１】
次に、ステップ１２８で、計算対象Ｎ−グラム抽出部１７が、上記ステップ１２４で抽出されたアルファベット連続部分に含まれる４−グラムを抽出する。ここでは、アルファベット連続部分"winter"及び"sale"から、４−グラムとして{"...w", "..wi", ".win", "wint", "inte", "nter", "ter.", "er..", "r...", "...s", "..sa", ".sal", "sale", "ale.", "le..", "e..."}が抽出される。
【００６２】
次に、ステップ１３０で、計算対象Ｍ−グラム抽出部１８が、上記ステップ１２６で抽出されたカタカナ連続部分に含まれる２−グラムを抽出する。ここでは、カタカナ連続部分"クリアランス"から、２−グラムとして{".ク", "クリ", "リア", "アラ", "ラン", "ンス", "ス."}が抽出される。
【００６３】
次に、ステップ１３２で、Ｎ−グラム基底ベクトル加算部１９が、上記ステップ１２８で抽出した各４−グラムに対応するアルファベット−カタカナ基底ベクトルを、アルファベット−カタカナ基底ベクトル記憶部３０から取得し、取得した全てのアルファベット−カタカナ基底ベクトルを加算したベクトルを計算する。
【００６４】
次に、ステップ１３４で、Ｍ−グラム基底ベクトル加算部２０が、上記ステップ１３０で抽出した各２−グラムに対応するカタカナ−カタカナ基底ベクトルを、カタカナ−カタカナ基底ベクトル記憶部３１から取得し、取得した全てのカタカナ−カタカナ基底ベクトルを加算したベクトルを計算する。
【００６５】
次に、ステップ１３６で、加算正規化部２１が、上記ステップ１３２及び１３４で計算されたベクトルの両者を加算し、さらに各要素を各要素の総和で除すことにより、各要素の総和が１となるように正規化したものを、上記ステップ１２２で選択した文字列の特徴ベクトルとする。
【００６６】
次に、ステップ１３８で類似度を計算する２つの文字列について特徴ベクトルを計算したか否かを判定し、否定判定された場合は、ステップ１２２に戻り、２つ目の文字列を選択して、ステップ１２４〜１３６の処理を繰り返して、特徴ベクトルを計算する。肯定判定された場合は、ステップ１４０へ移行する。
【００６７】
ステップ１４０では、計算された２つの特徴ベクトルに基づいて、２つの文字列の類似度を計算する。各特徴ベクトルを(a1,a2,…,aI)及び(b1,b2,…,bI)とすると、類似度は、例えば下記（１）式により計算することができる。
【００６８】
【数１】
0005676517.tif 000006
【００６９】
以上説明したように、本実施の形態に係る文字列類似度計算装置によれば、予め与えられたアルファベット表記とカタカナ表記との正しい対応関係を用いて、アルファベット表記のＮ−グラムに対するカタカナ表記のＭ−グラムの条件付き共起確率を要素とするアルファベット−カタカナ基底ベクトル、及びカタカナ表記のＭ−グラム間の条件付き共起確率を要素とするカタカナ−カタカナ基底ベクトルを生成し、これに基づいて文字列間の類似度を計算するため、アルファベット表記−カタカナ表記間の対応関係が複数存在する場合でも、表記ゆれやノイズによる影響を抑制し、適切に文字列間の類似度を計算することができる。
【００７０】
本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７１】
例えば、上述の文字列類似度計算装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００７２】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００７３】
１０   文字列類似度計算装置
１１   学習用Ｎ−グラム抽出部
１２   学習用Ｍ−グラム抽出部
１３   アルファベット−カタカナ基底ベクトル生成部
１４   カタカナ−カタカナ基底ベクトル生成部
１５   連続部分抽出部
１６   特徴ベクトル計算部
１６   類似度計算部
１７   計算対象Ｎ−グラム抽出部
１８   計算対象Ｍ−グラム抽出部
１９   Ｎ−グラム基底ベクトル加算部
２０   Ｍ−グラム基底ベクトル加算部
２１   加算正規化部
２２   類似度計算部
３０   アルファベット−カタカナ基底ベクトル記憶部
３１   カタカナ−カタカナ基底ベクトル記憶部
【図１】
0005676517.tif 000007
【図２】
0005676517.tif 000008
【図３】
0005676517.tif 000009