(57)【要約】【課題】任意の単語対の距離が適切となるように全単語を配置することを目的とする。【解決手段】単語と該単語の概念を表すベクトルとの対の集合である概念ベース２２と、意味的に遠いまたは近い単語対の集合である辞書２４を入力とし、変換手段３０が、概念ベース２２中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが辞書２４中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの概念ベース２２中のベクトルとＢの概念ベース２２中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが辞書２４中にない場合、ｄ’とｄとが可能な限り等しくなるように、概念ベース２２中の任意の単語のベクトルを変換し、変換後概念ベース３２を生成する。【選択図】図１
2019087157.tif 000002
【特許請求の範囲】
【請求項１】
単語と該単語の概念を表すベクトルとの対の集合である概念ベースと、
意味的に遠いまたは近い単語対の集合である辞書を入力とし、
前記概念ベース中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが前記辞書中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの前記概念ベース中のベクトルとＢの前記概念ベース中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが前記辞書中にない場合、ｄ’とｄとが可能な限り等しくなるように、前記概念ベース中の任意の単語のベクトルを変換する変換手段を備えることを特徴とする単語ベクトル変換装置。
【請求項２】
単語と該単語の概念を表すベクトルとの対の集合である概念ベースと、
意味的に遠いまたは近い単語対の集合である辞書を入力とし、
変換手段が、前記概念ベース中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが前記辞書中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの前記概念ベース中のベクトルとＢの前記概念ベース中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが前記辞書中にない場合、ｄ’とｄとが可能な限り等しくなるように、前記概念ベース中の任意の単語のベクトルを変換するステップを備えることを特徴とする単語ベクトル変換方法。
【請求項３】
コンピュータを、請求項１に記載の単語ベクトル変換装置の処理部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語と該単語の概念を表すベクトルとの対の集合が与えられたとき、辞書中にある意味的に遠い単語対の各単語のベクトルの距離はこれまでより大きくなり、辞書中にある意味的に近い単語対の各単語のベクトルの距離はこれまでより小さくなり、かつ、辞書中にない単語対の各単語のベクトルの距離は可能な限り変化がないように、単語のベクトルを変換する単語ベクトル変換装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
単語と該単語の概念を表すベクトルとの対の集合である概念ベースとして、非特許文献１や非特許文献２で述べられている手法がある。
【０００３】
これらの手法はいずれもコーパスを入力として単語のベクトルを生成するものであり、意味的に近い単語のベクトルは近くなるような配置となる。生成アルゴリズムは、各単語の概念は、コーパスにおける該単語の周辺単語の出現パターン（周辺分布）によって推定できるという分布仮説をベースにしている。
【０００４】
これらの手法により生成した概念ベースを用いて、テキスト間の類似性を表す距離を算出することができる。任意のテキストに対し、該テキスト中の単語のベクトルを合成する（例えば単語ベクトルの重心をとる）ことにより、該テキストのベクトルを生成する。テキスト間の距離を、対応するテキストベクトル間の距離として算出する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】別所克人, 内山俊郎, 内山匡, 片岡良治, 奥雅博,“単語・意味属性間共起に基づくコーパス概念ベースの生成方式,”情報処理学会論文誌, Vol.49, No.12, pp.3997-4006, Dec. 2008.
【非特許文献２】Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean,“Efficient estimation of word representations in vector space,”ICLR, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記従来手法で生成した概念ベースでは、以下に述べる課題がある。
【０００７】
課題１）
反義語の対（例：良い、悪い）は、各単語の周辺分布が似ているため、各単語のベクトルが近くなるという課題がある。このため、テキストベクトル間の距離関係が不適切なものになる。
【０００８】
例えば単語「良い」に対し、その反義語「悪い」の方が、同義語「宜しい」よりも、ベクトル間の距離が小さくなる。このため、以下のテキストＡに対し、テキストＣの方がテキストＢよりも意味が近いにも関わらず、テキストＢの方がテキストＣよりもベクトル間の距離が小さくなる。
【０００９】
テキストＡ：この考えは良い。
テキストＢ：この考えは悪い。
テキストＣ：この考えは宜しい。
【００１０】
課題２）
単語の対について、一方の単語が他方の単語の上位語でも下位語でも同義語でもなく、共通の上位語があるとき、該対を同位語の対と呼ぶ。単語の対「野球、サッカー」は、一方の単語が他方の単語の上位語でも下位語でも同義語でもなく、共通の上位語「スポーツ」をもつため、同位語の対となる。
【００１１】
同位語の対（例：野球、サッカー）は、各単語の周辺分布が似ているため、各単語のベクトルが近くなるという課題がある。このため、テキストベクトル間の距離関係が不適切なものになる。
【００１２】
例えば単語「野球」に対し、その同位語「サッカー」の方が、下位語「草野球」よりも、ベクトル間の距離が小さくなる。このため、以下のテキストＡに対し、テキストＣの方がテキストＢよりも意味が近いにも関わらず、テキストＢの方がテキストＣよりもベクトル間の距離が小さくなる。
【００１３】
テキストＡ：野球を見る。
テキストＢ：サッカーを見る。
テキストＣ：草野球を見る。
【００１４】
課題３）
同義語の対（例：野球、ベースボール）は、場合によっては、各単語のベクトルが遠くなるという課題がある。このため、テキストベクトル間の距離関係が不適切なものになる。
【００１５】
例えば単語「野球」に対し、その同義語「ベースボール」の方が、下位語「草野球」よりも、ベクトル間の距離が大きくなる。このため、以下のテキストＡに対し、テキストＢの方がテキストＣよりも意味が近いにも関わらず、テキストＣの方がテキストＢよりもベクトル間の距離が小さくなる。
【００１６】
テキストＡ：野球を見る。
テキストＢ：ベースボールを見る。
テキストＣ：草野球を見る。
【００１７】
本発明は、上記課題を解決するためのものであり、一旦生成した概念ベースに対し、各単語のベクトルを変換することにより、単語のベクトルの配置が、単語間の意味的な近さを反映したものとなるようにするものである。具体的には、辞書中にある反義語や同位語といった意味的に遠い単語対の各単語のベクトルの距離はこれまでより大きくなり、辞書中にある同義語といった意味的に近い単語対の各単語のベクトルの距離はこれまでより小さくなるようにする。ただ、それだけを行うと、辞書中にない単語対については、ベクトルの距離が不当に大きくなったり小さくなったりし、配置が適切なものでなくなる。このため、辞書中にある単語対の距離を適切なものにするのと同時に、辞書中にない単語対の距離は可能な限り変化がないように、各単語のベクトルを変換する必要がある。本発明は、任意の単語対の距離が適切となるように全単語を配置することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明に係る単語ベクトル変換装置は、単語と該単語の概念を表すベクトルとの対の集合である概念ベースと、意味的に遠いまたは近い単語対の集合である辞書を入力とし、前記概念ベース中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが前記辞書中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの前記概念ベース中のベクトルとＢの前記概念ベース中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが前記辞書中にない場合、ｄ’とｄとが可能な限り等しくなるように、前記概念ベース中の任意の単語のベクトルを変換する変換手段を備えることを特徴とする。
【００１９】
また、本発明に係る単語ベクトル変換方法は、単語と該単語の概念を表すベクトルとの対の集合である概念ベースと、意味的に遠いまたは近い単語対の集合である辞書を入力とし、変換手段が、前記概念ベース中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが前記辞書中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの前記概念ベース中のベクトルとＢの前記概念ベース中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが前記辞書中にない場合、ｄ’とｄとが可能な限り等しくなるように、前記概念ベース中の任意の単語のベクトルを変換するステップを備えることを特徴とする。
【００２０】
本発明に係るプログラムは、コンピュータを、第１の発明に係る単語ベクトル変換装置の処理部として機能させるためのプログラムである。
【発明の効果】
【００２１】
本発明において、辞書中にある反義語や同位語といった意味的に遠い単語対に対しては、α＞０としてｄに加算するか、α＞１としてｄに乗算することにより、変換後のベクトル間距離ｄ’はｄより大きくなり、辞書中にある同義語といった意味的に近い単語対に対しては、α＜０としてｄに加算するか、α＜１としてｄに乗算することにより、ベクトル間距離ｄ’はｄより小さくなる。辞書中にない単語対に対しては、変換後のベクトル間距離ｄ’はｄとあまり変化がないようになる。このようにして任意の単語対の距離が適切となっている全単語の配置を実現した変換後概念ベースを生成できる。
【００２２】
テキスト間距離算出に、変換後概念ベースを用いることにより、テキストベクトル間の距離関係が適切なものに改善される。
【００２３】
課題１）の例では、単語「良い」に対し、その反義語「悪い」の方が、同義語「宜しい」よりも、ベクトル間の距離が大きくなるため、テキストＡに対し、テキストＣの方がテキストＢよりもベクトル間の距離が小さくなる。
【００２４】
課題２）の例では、単語「野球」に対し、その同位語「サッカー」の方が、下位語「草野球」よりも、ベクトル間の距離が大きくなるため、テキストＡに対し、テキストＣの方がテキストＢよりもベクトル間の距離が小さくなる。
【００２５】
課題３）の例では、単語「野球」に対し、その同義語「ベースボール」の方が、下位語「草野球」よりも、ベクトル間の距離が小さくなるため、テキストＡに対し、テキストＢの方がテキストＣよりもベクトル間の距離が小さくなる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係る単語ベクトル変換装置１００の構成を示すブロック図である。
【図２】概念ベース２２の一例を示す図である。
【図３】辞書２４の反義語に関するレコード群の一例である。
【図４】辞書２４の同位語に関するレコード群の一例である。
【図５】辞書２４の同義語に関するレコード群の一例である。
【図６】本発明の実施の形態に係る単語ベクトル変換装置１００における変換処理ルーチンの一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、図面とともに本発明の実施の形態を説明する。
【００２８】
＜本発明の実施の形態に係る単語ベクトル変換装置の構成＞
【００２９】
図１は、本発明の請求項１の単語ベクトル変換装置の構成例である。
【００３０】
単語ベクトル変換装置１００は、単語と該単語の概念を表すベクトルとの対の集合である概念ベース２２と、意味的に遠いまたは近い単語対の集合である辞書２４を入力とし、概念ベース２２中の任意の単語Ａ、Ｂの対Ｃに対し、Ｃが辞書２４中にある場合、Ａの変換後のベクトルとＢの変換後のベクトルの距離ｄ’と、Ａの概念ベース２２中のベクトルとＢの概念ベース２２中のベクトルの距離ｄに値αを加算ないし乗算した値とが可能な限り等しくなり、かつ、Ｃが辞書２４中にない場合、ｄ’とｄとが可能な限り等しくなるように、概念ベース２２中の任意の単語のベクトルを変換し、変換後概念ベース３２を生成する変換手段３０を備える。
【００３１】
図２は、概念ベース２２の例である。概念ベース２２は、例えば、非特許文献１や非特許文献２の手法によって生成する。
【００３２】
概念ベース２２中の単語に重複するものはない。
【００３３】
各単語のベクトルはｎ次元ベクトルであり、意味的に近い単語のベクトルは、近くに配置されている。
【００３４】
概念ベース２２には名詞、動詞、形容詞等の内容語のみを登録するというようにしてもよい。概念ベース２２において単語を終止形で登録し、概念ベース２２を検索する際は、単語の終止形で検索するというようにしてもよい。
【００３５】
辞書２４の例として、レコード群が反義語、同位語、同義語それぞれに関するレコード群に分けられているように構成することができる。図３は反義語に関するレコード群の例、図４は同位語に関するレコード群の例、図５は同義語に関するレコード群の例である。図３の各レコードは、基点語とその基点語にとっての反義語のリストからなる。基点語とその反義語リスト中の各反義語との対が、反義語の単語対となる。図４、図５についても同様である。反義語レコード群及び同位語レコード群における単語対は、意味的に遠い単語対である。同義語レコード群における単語対は、意味的に近い単語対である。
【００３６】
辞書２４は上記例に限らず、基点語とその基点語にとっての意味的に遠い単語のリストからなるレコードの群と、基点語とその基点語にとっての意味的に近い単語のリストからなるレコードの群から構成されているようにとることもできる。この場合、基点語とその意味的に遠い単語のリスト中の各単語との対が、意味的に遠い単語対となり、基点語とその意味的に近い単語のリスト中の各単語との対が、意味的に近い単語対となる。
【００３７】
辞書２４は通常、辞書２４の同種（意味的に遠い、意味的に近い等）のレコード群において、単語リスト中に単語Ｂがある基点語Ａのレコードがあれば、単語リスト中に単語Ａがある基点語Ｂのレコードがあるような構成である。
【００３８】
変換手段３０の変換処理を、以下のように定式化する。
【００３９】
概念ベース２２中の単語のリストを、
【数１】
2019087157.tif 000003
とする。
【００４０】
Ｗｐの概念ベース２２中のベクトルを
【数２】
2019087157.tif 000004
とし、Ｗｐの変換後概念ベース３２中のベクトルを
【数３】
2019087157.tif 000005
とする。
【００４１】
τｐｑは定数であり、ωｐｑは変数である。
【００４２】
概念ベース２２中の単語対Ｗｉ,Ｗｊに対し、ωｉ,ωｊ間の距離ｄ'｛ｉ,ｊ｝は以下のように表される。
【００４３】
【数４】
2019087157.tif 000006
【００４４】
概念ベース２２中の単語対Ｗｉ,Ｗｊに対し、τｉ,τｊ間の距離ｄ｛ｉ,ｊ｝は以下のようにして算出される。
【００４５】
【数５】
2019087157.tif 000007
【００４６】
距離ｄ｛ｉ,ｊ｝に加算ないし乗算するαは、一般に｛ｉ,ｊ｝に依存し、α｛ｉ,ｊ｝と表す。
【００４７】
変換手段３０では、以下の目的関数Ｆを最小化する（ωｐｑ）を求める。
【００４８】
【数６】
2019087157.tif 000008
【００４９】
ここでＴ｛ｉ,ｊ｝は、以下である。
【００５０】
【数７】
2019087157.tif 000009
【００５１】
α｛ｉ,ｊ｝を距離ｄ｛ｉ,ｊ｝に加算するか乗算するかも、｛ｉ,ｊ｝に依存して定める。
【００５２】
α｛ｉ,ｊ｝は下記のように設定することとする。
【００５３】
α｛ｉ,ｊ｝を距離ｄ｛ｉ,ｊ｝に加算する場合、α｛ｉ,ｊ｝は、単語対Ｗｉ,Ｗｊが辞書２４中の意味的に遠い単語対の場合、α｛ｉ,ｊ｝≧０として定めておき、単語対Ｗｉ,Ｗｊが辞書２４中の意味的に近い単語対の場合、α｛ｉ,ｊ｝≦０として定めておき（但し、ｄ｛ｉ,ｊ｝＋α｛ｉ,ｊ｝≧０となるように定める）、単語対Ｗｉ,Ｗｊが辞書２４中にない場合、α｛ｉ,ｊ｝＝０として定めておく。
【００５４】
α｛ｉ,ｊ｝を距離ｄ｛ｉ,ｊ｝に乗算する場合、α｛ｉ,ｊ｝は、単語対Ｗｉ,Ｗｊが辞書２４中の意味的に遠い単語対の場合、α｛ｉ,ｊ｝≧１として定めておき、単語対Ｗｉ,Ｗｊが辞書２４中の意味的に近い単語対の場合、０≦α｛ｉ,ｊ｝≦１として定めておき、単語対Ｗｉ,Ｗｊが辞書２４中にない場合、α｛ｉ,ｊ｝＝１として定めておく。
【００５５】
単語対Ｗｉ,Ｗｊが辞書２４中の意味的に遠い単語対の場合、α｛ｉ,ｊ｝を｛ｉ,ｊ｝に依存しない定数としてもよいが、ｄ｛ｉ,ｊ｝が大きい程、α｛ｉ,ｊ｝を小さくして、元々の距離が大きい単語対に対しては、変換後の距離が過度に大きくならないようにしてもよい。
【００５６】
単語対Ｗｉ,Ｗｊが辞書２４中の意味的に近い単語対の場合、α｛ｉ,ｊ｝を｛ｉ,ｊ｝に依存しない定数としてもよいが、ｄ｛ｉ,ｊ｝が小さい程、α｛ｉ,ｊ｝を大きくして、元々の距離が小さい単語対に対しては、変換後の距離が過度に小さくならないようにしてもよい。
【００５７】
目的関数Ｆを最小化する（ωｐｑ）を、例えば確率的勾配降下法を用いて求める。（別の最適化手法でもよい。）確率的勾配降下法は以下のアルゴリズムとなる。
【００５８】
【数８】
2019087157.tif 000010
【００５９】
上記アルゴリズムの（ｍ,ｎ）行列（ωｐｑ）の更新部分を、例えばＡｄａｇｒａｄにより以下のようにして行う。
【００６０】
上記アルゴリズム開始前に、行列（ωｐｑ）行列の初期値を例えば、
【数９】
2019087157.tif 000011
として設定する。
【００６１】
（ｍ,ｎ）行列（ｒｐｑ）をとる。上記アルゴリズム開始前に、行列（ｒｐｑ）の初期値を例えば、
【数１０】
2019087157.tif 000012
として設定する。
【００６２】
上記アルゴリズムの（ｍ,ｎ）行列（ωｐｑ）の更新部分において、任意の
【数１１】
2019087157.tif 000013
に対し、以下のように更新する。
【００６３】
【数１２】
2019087157.tif 000014
【００６４】
上記更新を更新（１）と呼ぶことにする。
【００６５】
【数１３】
2019087157.tif 000015
の計算は以下のようにする。
【００６６】
１）ｐ＝ｉかつｄ'｛ｉ,ｊ｝≠０のとき
【数１４】
2019087157.tif 000016
【００６７】
２）ｐ＝ｊかつｄ'｛ｉ,ｊ｝≠０のとき
【数１５】
2019087157.tif 000017
【００６８】
３）１），２）以外のとき
【数１６】
2019087157.tif 000018
【００６９】
＜本発明の実施の形態に係る単語ベクトル変換装置の作用＞
【００７０】
図６は、変換手段３０の変換処理ルーチンの一例を示す図である。以下、図６の各ステップの処理内容を述べる。
【００７１】
Ｓ１）
Ｓ２〜Ｓ６の処理からなるターンを実行するか否かを判断する。
所定の回数を実行済みの場合は、終了と判断して、変換処理ルーチンを終了する。
所定の回数を実行済みでない場合は、実行すると判断してＳ２に進む。
所定の回数を実行済みでない場合でも、現時点の行列（ωｐｑ）と、一つ前のＳ１時点の行列（ωｐｑ）とが同じ（すなわち収束している）場合、終了と判断して、変換処理ルーチンを終了してもよい。
変換処理ルーチンを終了する場合、概念ベース２２中の各単語Ｗｐとその単語ベクトルωｐとの対の集合を、変換後概念ベース３２として出力する。
【００７２】
Ｓ２）
概念ベース２２中の単語のリストを、Ｗ１,Ｗ２,・・・,Ｗｍとする。Ｗ１,Ｗ２,・・・,Ｗｍの中で、Ｓ２で未選定の単語から一つ選定したＷｉを処理対象の単語Ｘとし、Ｓ３に進む。未選定の単語がなければ、本ターンを終了し、Ｓ１に進む。
【００７３】
Ｓ３）
辞書２４中のＷｉが基点語であるレコード中の、対応する単語リストの中で、概念ベース２２中にあり、かつ、Ｓ３で未選定であり、かつ、単語Ｗｉとの（集合としての）対が、本ターンのＳ４、Ｓ６においてこれまで処理をした（集合としての）対でないことを満たす単語から一つ選定したＷｊを処理対象の単語Ｙとし、Ｓ４に進む。そのような単語がなければ、Ｓ５に進む。
【００７４】
Ｓ４）
｛ｉ,ｊ｝（ｊはＳ３で選定したもの）に対し、上記更新（１）を行う。Ｓ３に進む。
【００７５】
Ｓ５）
Ｗ１,Ｗ２,・・・,Ｗｍの中で、Ｗｉでなく、かつ、Ｓ３で選定したいずれのＷｊでもなく、かつ、Ｓ５で未選定であり、かつ、単語Ｗｉとの（集合としての）対が、本ターンのＳ４、Ｓ６においてこれまで処理をした（集合としての）対でないことを満たす単語から一つ選定したＷｊを処理対象の単語Ｚとし、Ｓ６に進む。そのような単語がなければ、Ｓ２に進む。
Ｓ６の計算量を低減するために、Ｗｉを除くＷ１,Ｗ２,・・・,Ｗｍを、Ｗｉとの距離の昇順にソートし、その上位Ｇ個の中から、（場合によってはソートした順序で）、上記条件を満たす単語を選定するというようにしてもよい。あるいは、Ｗｉを除くＷ１,Ｗ２,・・・,Ｗｍの中で、Ｗｉとの距離が、ある閾値以下（あるいは未満）であるものの中から、（場合によっては距離の昇順にソートした順序で）、上記条件を満たす単語を選定するというようにしてもよい。
【００７６】
Ｓ６）
｛ｉ,ｊ｝(ｊはＳ５で選定したもの）に対し、上記更新（１）を行う。Ｓ５に進む。
【００７７】
上記変換処理ルーチンでは、単語対Ｗｉ,Ｗｊの距離ｄ｛ｉ，ｊ｝の計算を、Ｓ４やＳ６の中で行っている（Ｓ５で計算量低減の処理をする場合は、Ｓ５の中で行っている）。上記変換処理ルーチンを行う前に、Ｓ２で選定する各Ｗｉに対し、Ｓ３やＳ５で選定することになるＷｊと距離ｄ｛ｉ，ｊ｝の組のリストをあらかじめ求めておき、変換処理ルーチンでは、そのリストの順序に従ってＳ３やＳ５における選定をし、距離ｄ｛ｉ，ｊ｝の計算はせず、既に求めた距離ｄ｛ｉ，ｊ｝を参照するという構成にしてもよい。
【００７８】
これまで述べた処理をプログラムとして構築し、当該プログラムを通信回線または記録媒体からインストールし、ＣＰＵ等の手段で実施することが可能である。
【００７９】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【産業上の利用可能性】
【００８０】
本発明は、単語と該単語の概念を表すベクトルとの対の集合が与えられたとき、任意の単語対の距離が適切となるように単語のベクトルを変換する単語ベクトル変換技術に適用可能である。
【符号の説明】
【００８１】
２２   概念ベース
２４   辞書
３０   変換手段
３２   変換後概念ベース
１００ 単語ベクトル変換装置
【図１】
2019087157.tif 000019
【図２】
2019087157.tif 000020
【図３】
2019087157.tif 000021
【図４】
2019087157.tif 000022
【図５】
2019087157.tif 000023
【図６】
2019087157.tif 000024