(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
2つの文を比較する際、特許文献1に記載されたように文の特徴ベクトルどうしの類似度を計算すると、2つの文に共通して互いに類似する語が出現する場合に、類似度が高くなる。しかしながら、互いに類似する語が、2つの文において必ずしも同じ役割を担っているとは限らない。例えば、第1の文“A boy has a small dictionary”と、第2の文“A small boy has a dictionary”とでは、第1の文では語“small”が“dictionary”を修飾しているのに対し、第2の文では語“small”が“boy”を修飾している。一方で、2つの文に出現する語は一致しているので、文の特徴ベクトルの類似度は高く評価されてしまう。
本発明の目的は、2つの文に出現する語の役割を加味して類似度を算出する検索装置、類似度算出方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0005】
本発明の第1の態様によれば、類似度特定装置(100)は、第1の文および第2の文を構成する語別に特徴量を特定する特徴量特定部(105)と、前記第1の文および前記第2の文を構成する前記語毎の文法的な役割を特定する役割特定部(106)と、前記第1の文を構成する語の特徴量と、前記第2の文を構成する語のうち前記第1の文を構成する前記語と共通する役割の語に係る特徴量との類似度である語間類似度を特定する語間類似度特定部(108)と、前記語別の前記語間類似度に基づいて前記第1の文と前記第2の文との類似度である文間類似度を特定する文間類似度特定部(109)とを備える。これにより、類似度特定装置は、2つの文に出現する語の役割を加味して類似度を特定することができる。
【0006】
本発明の第2の態様によれば、第1の態様に係る類似度特定装置における前記文間類似度特定部は、前記語の役割に応じた重み係数を用いた前記語間類似度の荷重和を計算することで、文間類似度を特定するものであってよい。これにより、類似度特定装置は、文を構成する語ごとの文における重要性を加味して2つの文の間の類似度を特定することができる。
【0007】
本発明の第3の態様によれば、第1または第2の態様に係る類似度特定装置における前記語間類似度特定部は、前記第1の文を構成する前記語と同じ役割の語が前記第2の文にない場合に、語間類似度を所定のペナルティ値に特定するものであってよい。これにより、類似度特定装置は、構造が異なる文どうしの比較において文間類似度を低く算出することができる。
【0008】
本発明の第4の態様によれば、第1から第3の何れかの態様に係る類似度特定装置における前記特徴量は、前記語数より少ない次元数のベクトルであるものであってよい。これにより類似度特定装置は、表記の異なる語どうしの類似度を算出することができる。
【0009】
本発明の第5の態様によれば、第1から第4の何れかの態様に係る類似度特定装置における前記役割特定部は、句構造解析処理により、前記語別に役割を特定するものであってよい。
【0010】
本発明の第6の態様によれば、類似度特定方法は、
コンピュータが、第1の文および第2の文を構成する語別に特徴量を特定するステップと、
前記コンピュータが、前記第1の文および前記第2の文を構成する前記語毎の文法的な役割を特定するステップと、
前記コンピュータが、前記第1の文を構成する語の特徴量と、前記第2の文を構成する語のうち前記第1の文を構成する前記語と同じ役割の語に係る特徴量との類似度である語間類似度を特定するステップと、
前記コンピュータが、前記語別の前記語間類似度に基づいて前記第1の文と前記第2の文との類似度である文間類似度を特定するステップとを含む。
【0011】
本発明の第7の態様によれば、プログラムは、コンピュータに、第1の文および第2の文を構成する語別に特徴量を特定するステップと、前記第1の文および前記第2の文を構成する前記語別に前記語毎の文法的な役割を特定するステップと、前記第1の文を構成する語の特徴量と、前記第2の文を構成する語のうち前記第1の文を構成する前記語と同じ役割の語に係る特徴量との類似度である語間類似度を特定するステップと、前記語別の前記語間類似度に基づいて前記第1の文と前記第2の文との類似度である文間類似度を特定するステップとを実行させる。
【発明の効果】
【0012】
上記態様のうち少なくとも1つの態様によれば、類似度特定装置は、2つの文に出現する語の役割を加味して類似度を算出することができる。
【発明を実施するための形態】
【0014】
〈第1の実施形態〉
《検索装置の構成》
図1は、第1の実施形態に係る検索装置の構成を示す概略ブロック図である。
第1の実施形態に係る検索装置100は、文の入力を受け付け、複数の文の中から入力された文と類似するものを検索する。検索装置100は、2つの文の類似度を特定する類似度特定装置の一例である。
検索装置100は、変換モデル生成部101、変換モデル記憶部102、文記憶部103、文取得部104、特徴量特定部105、文法機能特定部106、対応箇所特定部107、語間類似度特定部108、文間類似度特定部109、検索結果出力部110を備える。
【0015】
変換モデル生成部101は、複数の学習用文それぞれから、語彙数の次元数を有する文ベクトルを生成し、当該文ベクトルに基づいて、語の特徴を表す特徴ベクトルを生成するための変換モデルを生成する。語は、単語に限られず複合語や句を含むものであってもよい。学習用文は、文記憶部103が記憶する検索対象文であってもよいし、他の文であってもよい。なお、学習用文に検索対象文を用いる場合、変換モデル生成部101は、検索対象文で用いられる表現に特化した変換モデルを作成することができる。また学習用文に検索対象文以外の文を含める場合、変換モデル生成部101は、検索対象文で用いられない表現にも対応した変換モデルを作成することができる。
【0016】
例えば、変換モデル生成部101は、オートエンコーダを用いて変換モデルを生成することができる。オートエンコーダは、入力層と出力層のノード数が等しく、中間層のノード数が入力層および出力層より少ないニューラルネットワークである。変換モデル生成部101は、各文ベクトルをオートエンコーダに入力し、入力と出力とが等しくなるようにオートエンコーダを学習させる。そして、変換モデル生成部101は、オートエンコーダの入力層と中間層を取り出すことで、中間層の出力を特徴ベクトルとする変換モデルを生成する。オートエンコーダを用いた変換モデルの作成には、例えばWord2Vec(https://code.google.com/archive/p/word2vec/)を用いることができる。
また、変換モデル生成部101は、tf(Term Frequency)−idf(Inverse Document Frequency)、潜在的意味解析、主成分分析に基づいて変換モデルを作成してもよい。
【0017】
変換モデル記憶部102は、変換モデル生成部101が生成した変換モデルを記憶する。
【0018】
文記憶部103は、複数の検索対象文を記憶する。
文取得部104は、利用者によって入力されたクエリ文、および文記憶部103が記憶する検索対象文を取得する。
【0019】
特徴量特定部105は、文取得部104が取得した文を構成する複数の語それぞれについて、変換モデル記憶部102が記憶する変換モデルを用いて特徴ベクトルを生成する。例えば、特徴量特定部105は、以下の処理により特徴ベクトルを生成することができる。特徴量特定部105は、文取得部104が取得した文を複数の語に分割する。文の分割には形態素解析を用いることができる。特徴量特定部105は、分割した語それぞれから、語彙数に等しい次元数を有する語ベクトルを生成する。特徴量特定部105は、語ベクトルを変換モデルに入力することで、特徴ベクトルを得る。
【0020】
文法機能特定部106は、文取得部104が取得した文を構文解析し、文を構成する複数の語それぞれの役割である文法機能を特定する。文法機能とは、文を構成する要素(例えば、語、句、節)が他の要素に対して持つ関係による分類をいう。文法機能の例としては、名詞句(NP:noun phrase)、動詞句(VP:verb phrase)および形容詞句の区分(句構造)、主語、述語、目的語、補語および修飾語の区分(係り受け関係)、品詞の区分などが挙げられる。構文解析の例としては、句構造解析および係り受け解析が挙げられる。なお、文法機能特定部106は、役割特定部の一例である。なお、他の実施形態においては、文を構成する語毎の文法的な役割は、文法機能以外の情報であってもよい。
【0021】
図2は、句構造解析による文法機能の特定方法の例を示す図である。
例えば、文法機能特定部106は、文取得部104が取得した文を句構造解析し、文を構成する複数の語を要素とする句構造木を生成する。句構造木は、文を根ノードとし、節または句を内部ノードとし、複数の語それぞれを葉ノードとする木構造データである。句構造解析により、各ノードには当該ノードの句構造に係る文法機能を示すタグが付される。文法機能特定部106は、句構造木の各葉ノードについて、当該葉ノードと根ノードとを結ぶ経路に付されたすべてのタグの順列を、当該葉ノードに係る語の文法機能として特定する。
【0022】
図3は、係り受け解析による文法機能の特定方法の例を示す図である。
また例えば、文法機能特定部106は、文取得部104が取得した文を係り受け解析し、文を構成する複数の語を要素とする依存構造木を生成する。依存構造木は、各語をノードとし、係り元の語(depender)のノードを係り先の語(dependee)のノードの子ノードとする木構造データである。依存構造木は、ノード間を結ぶ枝に係り受け関係を示すタグが付されていてもよい。文法機能特定部106は、依存構造木に基づいて各語の係り先(例えば、句構造解析によって特定された係り先の文法機能)、または係り受け関係を文法機能として特定する。係り受け関係の例としては、決定詞の付与を示すdet、述語に係る主語を示すnsubj、述語に係る目的語を示すdobj、名詞を修飾する修飾語を示すamodなどが挙げられる。
【0023】
図4は、2つの文の対応箇所の特定方法の例を示す図である。
対応箇所特定部107は、クエリ文の語と検索対象文の語のペアであって、文法機能が共通するペアを特定する。すなわち、対応箇所特定部107は、クエリ文の各語について、当該語と文法機能が共通する語を、検索対象文から特定することで、語のペアを特定する。例えば、
図4に示すように、クエリ文が“A boy has a small dictionary”であり、検索対象文が“A small boy has a dictionary”である場合、対応箇所特定部107は、以下のように語のペアを特定する。クエリ文の語である“A”は、句構造が「S(sentence)−NP−DT(determiner:決定詞)」であり、係り受け関係が「det」の語であるという文法機能を有する。対応箇所特定部107は、検索対象文から、句構造が「S−NP−DT」であり、係り受け関係が「det」の語であるという文法機能を有する語を特定する。
図4に示すように、クエリ文の“A”は検索対象文の“A”と共通する文法機能を有する。対応箇所特定部107は、これを各語について実行し、
図4に示すように、クエリ文の“A”と検索対象文の“A”のペア、クエリ文の“boy”と検索対象文の“boy”のペア、クエリ文の“has”と検索対象文の“has”のペア、クエリ文の“a”と検索対象文の“a”のペア、クエリ文の“dictionary”と検索対象文の“dictionary”のペア、をそれぞれ語のペアとして抽出する。また、対応箇所特定部107は、
図4に示すように、クエリ文の“small”と文法機能が共通する語が検索対象文に存在せず、検索対象文の“small”と文法機能が共通する語がクエリ文に存在しないことを特定する。
【0024】
語間類似度特定部108は、対応箇所特定部107が特定したペア別に、特徴ベクトルどうしの類似度である語間類似度を特定する。語間類似度の例としては、特徴ベクトルのコサイン類似度、ユークリッド距離、レーベンシュタイン距離などが挙げられる。語間類似度特定部108は、対応箇所特定部107がペアを特定しなかった語について、所定のペナルティ値を語間類似度とする。ペナルティ値は、例えば0以下の値に設定される。
【0025】
文間類似度特定部109は、各語のペアの語間類似度に基づいて、クエリ文と検索対象文との類似度である文間類似度を特定する。例えば文間類似度特定部109は、語間類似度の平均値または総和を文間類似度とする。
【0026】
検索結果出力部110は、クエリ文との文間類似度が高い検索対象文を、検索結果として出力する。例えば、検索結果出力部110は、クエリ文との文間類似度が最も高い検索対象文を、検索結果として出力する。なお、他の実施形態においては、検索結果出力部110は、例えば文間類似度が所定の閾値以上の複数の検索対象文を出力してもよいし、文間類似度の降順に並べた複数の検索対象文を出力してもよい。検索結果の出力は、例えばディスプレイへの表示、記憶媒体への記録、外部装置への送信などによってなされる。
【0027】
《検索装置の動作》
検索装置100の変換モデル生成部101は、文の検索処理を実行する前に、予め複数の学習用文から変換モデルを生成し、変換モデル記憶部102に記録しておく。
【0028】
図5は、第1の実施形態に係る検索装置の動作を示すフローチャートである。
検索装置100は、利用者からクエリ文の入力を受け付ける。文取得部104は、入力されたクエリ文を取得する(ステップS1)。次に、特徴量特定部105は、クエリ文を構成する複数の語それぞれについて、変換モデル記憶部102が記憶する変換モデルを用いて特徴ベクトルを生成する(ステップS2)。次に、文法機能特定部106は、クエリ文を構文解析し、クエリ文を構成する複数の語それぞれの文法機能を特定する(ステップS3)。
【0029】
次に、検索装置100は、文記憶部103が記憶する検索対象文を1つずつ選択し、以下に示すステップS5からステップS11の処理を実行する(ステップS4)。
文取得部104は、文記憶部103から選択された検索対象文を取得する(ステップS5)。次に、特徴量特定部105は、検索対象文を構成する複数の語それぞれについて、変換モデル記憶部102が記憶する変換モデルを用いて特徴ベクトルを生成する(ステップS6)。次に、文法機能特定部106は、検索対象文を構文解析し、検索対象文を構成する複数の語それぞれの文法機能を特定する(ステップS7)。
【0030】
次に、対応箇所特定部107は、ステップS3で特定したクエリ文の語の文法機能と、ステップS7で特定した検索対象文の語の文法機能とに基づいて、文法機能が共通する語のペアを特定する(ステップS8)。語間類似度特定部108は、対応箇所特定部107が特定したペア別に語間類似度を特定する(ステップS9)。また語間類似度特定部108は、対応箇所特定部107がペアを特定しなかった語について、所定のペナルティ値を語間類似度とする(ステップS10)。文間類似度特定部109は、ステップS9およびステップS10で特定した語間類似度の平均値を計算することで、クエリ文と検索対象文との文間類似度を特定する(ステップS11)。
【0031】
文記憶部103が記憶するすべての検索対象文について文間類似度が算出されると、検索結果出力部110は、クエリ文との文間類似度が最も高い検索対象文を、検索結果として出力する(ステップS12)。
【0032】
《作用・効果》
このように、第1の実施形態に係る検索装置100は、クエリ文を構成する語の特徴ベクトルと、検索対象文を構成する語のうちクエリ文を構成する語と共通する文法機能の語に係る特徴ベクトルとを比較することで語間類似度を特定し、各語間類似度から文間類似度を特定する。これにより、検索装置100は、2つの文に出現する語の役割を加味して類似する文を検索することができる。
【0033】
ここで、クエリ文“A boy has a small dictionary”と、検索対象文“A small boy has a dictionary”との比較を例に説明する。単純なベクトル空間モデルに係る比較では、クエリ文の語“small”と検索対象文の語“small”とが区別されずに類似度が算出されるため、類似度が高く評価される。これに対し、第1の実施形態に係る検索装置100は、
図4に示すように、クエリ文の語“small”と検索対象文の語“small”とが文法機能が異なるために区別して評価される。これにより、第1の実施形態に係る検索装置100は、文間類似度を単純なベクトル空間モデルの例と比較して低く評価することができる。このように、第1の実施形態に係る検索装置100は、同じ表記の語であってもその文における役割が異なる場合に、これを区別して類似度を算出することができる。
【0034】
また、第1の実施形態に係る検索装置100は、一方の文を構成する語と文法機能が共通する語が他方の文にない場合に、所定のペナルティ値を語間類似度に設定する。これにより、検索装置100は、構造が異なる文どうしの比較において文間類似度を低く算出することができる。
【0035】
また、第1の実施形態に係る特徴ベクトルは、語彙数より少ない次元数のベクトルである。つまり、特徴ベクトルは、語彙数と等しい次元数のベクトルである語ベクトルの次元を削減したベクトルである。これにより検索装置100は、表記の異なる語どうしの類似度を算出することができる。
【0036】
〈第2の実施形態〉
第1の実施形態に係る検索装置100の文間類似度特定部109は、各語のペアの語間類似度の平均値または総和に基づいて文間類似度を算出する。
一方で、文を構成する語ごとに、文の意味に対する重要性が異なる。例えば、語が単数形であるか複数形であるかによって冠詞“a”の有無が変わることがあるが、文において当該冠詞の有無は多くの場合重要な意味を持たない。他方、副詞“not”の有無は文において重要な意味を持つことが多い。そこで、第2の実施形態に係る検索装置100は、語間類似度の加重平均または荷重和に基づいて文間類似度を算出する。なお、加重平均は、荷重和を要素数で除算したものであるため、語間類似度の荷重和の計算によって文間類似度を特定することは、検索装置100が語間類似度の加重平均を文間類似度とすることを含む。
【0037】
《検索装置の構成》
図6は、第2の実施形態に係る検索装置の構成を示す概略ブロック図である。
第2の実施形態に係る検索装置100は、第1の実施形態の構成に加え、さらに係数特定部111を備える。
係数特定部111は、対応箇所特定部107が特定した語のペア別に、当該語の文法機能に応じた重み係数を特定する。重み係数は、例えば語の品詞別に決定されてもよいし、名詞句および動詞句の区分別に決定されてもよいし、係り先の語の品詞別に決定されてもよい。
【0038】
文間類似度特定部109は、語間類似度特定部108が特定した各語のペアの語間類似度のそれぞれに、係数特定部111が特定した当該語のペアに係る重み係数を乗算し、平均値を求めることで、文間類似度を算出する。
【0039】
このように、第2の実施形態によれば、検索装置100は、文を構成する語ごとの文における重要性を加味して2つの文の間の類似度を特定することができる。
【0040】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
例えば、上述した実施形態に係る検索装置100は、文法機能が一致する語のペアを特定するが、これに限られない。例えば、他の実施形態に係る検索装置100は、語の品詞や活用形の相違を無視してもよいし、文法機能が一定の割合で部分一致する語のペアを特定してもよいし、文法機能の類似度が所定の閾値以上のペアを特定してもよい。なお、文法機能が一致する語のペア、文法機能が部分一致する語のペア、および文法機能の類似度が所定の閾値以上の語のペアは、いずれも文法機能が共通する語のペアの一例である。
【0041】
また、上述した実施形態に係る検索装置100は、各検索対象文について特徴ベクトルの生成および構文解析を行うが、これに限られない。例えば、他の実施形態に係る検索装置100は、予め文記憶部103において検索対象文に関連付けて、当該文に含まれる各語の特徴ベクトルと文法機能とが記憶されていてもよい。すなわち、他の実施形態においては、クエリ文について特徴ベクトルの生成および構文解析を行い、検索対象文の特徴ベクトルおよび文法機能は、検索時に文記憶部103から読み出されるものであってよい。
【0042】
また、上述した実施形態に係る検索装置100は、句構造解析結果および係り受け解析結果の両方を用いて語の文法機能を特定するが、これに限られない。例えば、他の実施形態に係る検索装置100は、句構造解析結果のみを用いて文法機能を特定してもよいし、係り受け解析結果のみを用いて文法機能を特定してもよい。
【0043】
また、上述した実施形態に係る検索装置100は、文を構成する単語別に語間類似度を算出するが、他の実施形態においてはこれに限られない。例えば、他の実施形態に係る検索装置100は、文を構成する句別に語間類似度を算出してもよい。
【0044】
また、上述した実施形態においては、類似度特定装置が複数の文の中からクエリ文に類似する文を検索する検索装置100に適用されるが、他の実施形態においてはこれに限られない。例えば、他の実施形態に係る類似度特定装置は、入力された2つの文どうしの類似度を算出するものであってもよい。
【0045】
〈コンピュータ構成〉
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ90は、CPU91、主記憶装置92、補助記憶装置93、インタフェース94を備える。
上述の検索装置100は、コンピュータ90に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置93に記憶されている。CPU91は、プログラムを補助記憶装置93から読み出して主記憶装置92に展開し、当該プログラムに従って上記処理を実行する。
【0046】
補助記憶装置93の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。補助記憶装置93は、コンピュータ90のバスに直接接続された内部メディアであってもよいし、インタフェース94または通信回線を介してコンピュータ90に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ90に配信される場合、配信を受けたコンピュータ90が当該プログラムを主記憶装置92に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、補助記憶装置93は、一時的でない有形の記憶媒体である。
【0047】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能を補助記憶装置93に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。