(57)【要約】【課題】同義語判定を高い精度で自動的に行える同義語判定方法を提供する。【解決手段】同義語判定方法は、文書に含まれる単語を単語の意味を表す第１ベクトルに変換するステップと、第１ベクトルに基づき単語間の類似度を求めるステップと、文書に含まれる文を文の意味を表す第２ベクトルに変換するステップと、第２ベクトルに基づき文間の類似度を求めるステップと、文書に含まれる単語をトピックに分類するステップと、単語間の類似度と文間の類似度とトピックの分類結果とに基づき、文書に含まれる単語が同義語か否かを判定するステップとを備える。【選択図】図３
2020154668.tif 000002
【特許請求の範囲】
【請求項１】
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換するステップと、
前記第１ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換するステップと、
前記第２ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備えた、同義語判定方法。
【請求項２】
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第１単語の出現確率と前記第２単語の出現確率とが共に第１閾値以上であるトピックが存在し、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする、請求項１に記載の同義語判定方法。
【請求項３】
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第１単語の出現確率と前記第２単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第３閾値以上、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする、請求項１に記載の同義語判定方法。
【請求項４】
前記文間の類似度を求めるステップは、
第１単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
第２単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記２個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする、請求項１に記載の同義語判定方法。
【請求項５】
前記文間の類似度を求めるステップは、
第１単語を含む文と第２単語を含む文とのすべての組合せについて、前記第１単語を含む文に対応する前記第２ベクトルと前記第２単語を含む文に対応する前記第２ベクトルとのコサイン類似度を求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする、請求項１に記載の同義語判定方法。
【請求項６】
前記単語間の類似度を求めるステップは、第１単語と第２単語との間の類似度として、前記第１単語に対応する前記第１ベクトルと前記第２単語に対応する前記第１ベクトルとのコサイン類似度を求めることを特徴とする、請求項１に記載の同義語判定方法。
【請求項７】
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換するステップと、
前記第１ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換するステップと、
前記第２ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをＣＰＵがメモリを利用して実行させることを特徴とする、同義語判定プログラム。
【請求項８】
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第１単語の出現確率と前記第２単語の出現確率とが共に第１閾値以上であるトピックが存在し、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする、請求項７に記載の同義語判定プログラム。
【請求項９】
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第１単語の出現確率と前記第２単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第３閾値以上、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする、請求項７に記載の同義語判定プログラム。
【請求項１０】
前記文間の類似度を求めるステップは、
第１単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
第２単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記２個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする、請求項７に記載の同義語判定プログラム。
【請求項１１】
前記文間の類似度を求めるステップは、
第１単語を含む文と第２単語を含む文とのすべての組合せについて、前記第１単語を含む文に対応する前記第２ベクトルと前記第２単語を含む文に対応する前記第２ベクトルとのコサイン類似度を求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする、請求項７に記載の同義語判定プログラム。
【請求項１２】
前記単語間の類似度を求めるステップは、第１単語と第２単語との間の類似度として、前記第１単語に対応する前記第１ベクトルと前記第２単語に対応する前記第１ベクトルとのコサイン類似度を求めることを特徴とする、請求項７に記載の同義語判定プログラム。
【請求項１３】
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換する単語／ベクトル変換部と、
前記第１ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換する文／ベクトル変換部と、
前記第２ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備えた、同義語判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書に含まれる単語が同義語か否かを判定する同義語判定方法、同義語判定プログラム、および、同義語判定装置に関する。
【背景技術】
【０００２】
同義語とは、表記や語形が異なるが、ほぼ同じ意味を持つ単語をいう。例えば、「プレゼント」と「ギフト」は同義語である。「病気」と「やまい」と「疾病」も、厳密な意味に多少の違いがあるが、通常は同義語であると言える。以下、使用される言語が英語である場合について考える。なお、以下の説明は言語の種類には依存しない。
【０００３】
図９は、同義語辞書の例を示す図である。図９に示す各行には、複数の単語を含む同義語グループが記載されている。同義語辞書は、例えば、マニュアルや取扱説明書など、各種の文書を作成するときに、単語の表記揺れを防止するために使用される。
【０００４】
従来の同義語辞書の多くは、手作業で作成されている。しかし、同義語辞書を手作業で作成するためには、長い時間と多くの労力が必要とされる。また、複数の作業者が共同で同義語辞書を作成した場合、同義語の判定基準が作業者によって異なるので、同義語辞書の品質にばらつきが発生する。このため、同義語辞書を自動的に作成することが必要とされている。
【０００５】
自然言語処理の分野では、文書に含まれる単語をベクトルに変換するｗｏｒｄ２ｖｅｃという技術が知られている。ｗｏｒｄ２ｖｅｃを行うことにより、文書に含まれる単語は単語の意味を表すｎ次元（ｎは２以上の整数）のベクトルに変換される。図１０は、同義語を含む文の例を示す図である。図１０に示す例では、単語「present 」と単語「gift」は、文内で同じ位置に現れている。このように意味が近い単語は、文内で同じ位置または近い位置に現れるという特徴がある。ｗｏｒｄ２ｖｅｃは、この特徴を用いて単語をベクトルに変換する。
【０００６】
単語Ｗａ、Ｗｂの意味が近いとき、単語Ｗａに対応するベクトルＶａと単語Ｗｂに対応するベクトルＶｂとはｎ次元空間内で近い位置にある。ベクトルＶａ、Ｖｂが近いほど、単語Ｗａ、Ｗｂの意味は近い。そこで、例えば、ベクトルＶａ、Ｖｂのコサイン類似度が閾値以上である場合に、単語Ｗａ、Ｗｂは同義語と判定する方法が考えられる。
【０００７】
ｗｏｒｄ２ｖｅｃについては、非特許文献１および２に記載されている。特許文献１には、ｗｏｒｄ２ｖｅｃを用いて求めた意味類似度と、単語の読みに基づく音類似度とに基づき、同義語のペアを求める同義語ペア獲得装置が記載されている。
【０００８】
自然言語処理の分野では、ｗｏｒｄ２ｖｅｃを文に拡張し、文書に含まれる文をベクトルに変換するｄｏｃ２ｖｅｃという技術、および、文書に含まれる単語をトピック（話題、ジャンル）に分類するLatent Dirichlet Allocation （以下、ＬＤＡという）という技術が知られている。ｄｏｃ２ｖｅｃについては非特許文献３に記載され、ＬＤＡについては非特許文献４に記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１６−２２４４８２号公報
【非特許文献】
【００１０】
【非特許文献１】Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean, "Efficient Estimation of Word Representations in Vector Space", arXiv：1301.3781v3, 2013.
【非特許文献２】Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado,  and Jeffrey Dean, "Distributed Representations of Words and Phrases and their Compositionality", In Advances in Neural Information Processing Systems 26: 27th Annual Conference on Neural Information Processing Systems 2013.
【非特許文献３】Quoc Le, and Tomas Mikolov, "Distributed representations of Sentences and Documents", In International Conference on Machine Learning, Vol. 14, pp. 1188-1196, 2014.
【非特許文献４】David M. Blei, Andrew Y. Ng, and Michael I. Jordan, "Latent Dirichlet Allocation", Journal of Machine Learning Research, Vol. 3, No. Jan, pp. 993-1022, 2003.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したように、ｗｏｒｄ２ｖｅｃを用いることにより、同義語判定を自動的に行うことができる。しかしながら、ｗｏｒｄ２ｖｅｃを用いた同義語判定には、実用的な判定精度を得ることが困難であるという問題がある。図１１は、同義語ではない単語を含む文の例を示す図である。図１１に示す例では、単語「soccer」と単語「chess 」は、文内で同じ位置に現れている。しかし、単語「soccer」と単語「chess 」は同義語ではない。ｗｏｒｄ２ｖｅｃを用いた同義語判定では、文内の位置が同じで、意味が異なる単語を同義語と判定することがある。また、自動的に作成された同義語辞書を手作業で修正する作業に手間が掛かるという問題もある。
【００１２】
それ故に、本発明は、同義語判定を高い精度で自動的に行える同義語判定方法、同義語判定プログラム、および、同義語判定装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換するステップと、
前記第１ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換するステップと、
前記第２ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備える。
【００１４】
本発明の第２の局面は、本発明の第１の局面において、
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第１単語の出現確率と前記第２単語の出現確率とが共に第１閾値以上であるトピックが存在し、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする。
【００１５】
本発明の第３の局面は、本発明の第１の局面において、
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第１単語の出現確率と前記第２単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第３閾値以上、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする。
【００１６】
本発明の第４の局面は、本発明の第１の局面において、
前記文間の類似度を求めるステップは、
第１単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
第２単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記２個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする。
【００１７】
本発明の第５の局面は、本発明の第１の局面において、
前記文間の類似度を求めるステップは、
第１単語を含む文と第２単語を含む文とのすべての組合せについて、前記第１単語を含む文に対応する前記第２ベクトルと前記第２単語を含む文に対応する前記第２ベクトルとのコサイン類似度を求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする。
【００１８】
本発明の第６の局面は、本発明の第１の局面において、
前記単語間の類似度を求めるステップは、第１単語と第２単語との間の類似度として、前記第１単語に対応する前記第１ベクトルと前記第２単語に対応する前記第１ベクトルとのコサイン類似度を求めることを特徴とする。
【００１９】
本発明の第７の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換するステップと、
前記第１ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換するステップと、
前記第２ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをＣＰＵがメモリを利用して実行させることを特徴とする。
【００２０】
本発明の第８の局面は、本発明の第７の局面において、
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第１単語の出現確率と前記第２単語の出現確率とが共に第１閾値以上であるトピックが存在し、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする。
【００２１】
本発明の第９の局面は、本発明の第７の局面において、
前記判定するステップは、
第１単語を含む文と第２単語を含む文との間の類似度と、前記第１単語を含む文と前記第２単語を含む文との間の類似度とに基づき、前記第１単語と前記第２単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第１単語の出現確率と前記第２単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第３閾値以上、かつ、前記第１単語と前記第２単語との間の前記総合類似度が第２閾値以上である場合には前記第１単語と前記第２単語は同義語と判定し、それ以外の場合には前記第１単語と前記第２単語は同義語ではないと判定するステップとを含むことを特徴とする。
【００２２】
本発明の第１０の局面は、本発明の第７の局面において、
前記文間の類似度を求めるステップは、
第１単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
第２単語を含む文に対応する前記第２ベクトルの平均ベクトルを求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記２個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする。
【００２３】
本発明の第１１の局面は、本発明の第７の局面において、
前記文間の類似度を求めるステップは、
第１単語を含む文と第２単語を含む文とのすべての組合せについて、前記第１単語を含む文に対応する前記第２ベクトルと前記第２単語を含む文に対応する前記第２ベクトルとのコサイン類似度を求めるステップと、
前記第１単語を含む文と前記第２単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする。
【００２４】
本発明の第１２の局面は、本発明の第７の局面において、
前記単語間の類似度を求めるステップは、第１単語と第２単語との間の類似度として、前記第１単語に対応する前記第１ベクトルと前記第２単語に対応する前記第１ベクトルとのコサイン類似度を求めることを特徴とする。
【００２５】
本発明の第１３の局面は、同義語判定装置であって、
文書に含まれる単語を前記単語の意味を表す第１ベクトルに変換する単語／ベクトル変換部と、
前記第１ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第２ベクトルに変換する文／ベクトル変換部と、
前記第２ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備える。
【発明の効果】
【００２６】
上記第１、第７、または、第１３の局面によれば、単語間の類似度に加えて、文間の類似度とトピックの分類結果とに基づき同義語判定を行うことにより、高い精度で自動的に同義語判定を行うことができる。
【００２７】
上記第２または第８の局面によれば、２個の単語を含むトピックが存在し、２個の単語について単語間の類似度や文間の類似度が大きい場合に２個の単語を同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【００２８】
上記第３または第９の局面によれば、２個の単語が同じトピックに多く出現し、２個の単語について単語間の類似度や文間の類似度が大きい場合に２個の単語を同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【００２９】
上記第４または第１０の局面によれば、第１単語を含む文に対応する第２ベクトルの平均ベクトルと、第２単語を含む文に対応する第２ベクトルの平均ベクトルとを求め、２個の平均ベクトルのコサイン類似度を求めることにより、２個の文間の類似度として好適な値を求めることができる。
【００３０】
上記第５または第１１の局面によれば、第１単語を含む文と第２単語を含む文とのすべての組合せについて、前者の文に対応する第２ベクトルと後者の文に対応する第２ベクトルとのコサイン類似度を求め、コサイン類似度の平均値を求めることにより、２個の文間の類似度として好適な値を求めることができる。
【００３１】
上記第６または第１２の局面によれば、２個の第１ベクトルのコサイン類似度を求めることにより、２個の単語間の類似度として好適な値を求めることができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係る同義語判定装置の構成を示すブロック図である。
【図２】図１に示す同義語判定装置として動作するコンピュータの構成を示すブロック図である。
【図３】図１に示す同義語判定装置の動作を示すフローチャートである。
【図４】図３に示すステップＳ１６０の詳細を示すフローチャートである。
【図５】図１に示す同義語判定装置によるトピック分類の結果の例を示す図である。
【図６】図３に示すステップＳ１８０の詳細を示すフローチャートである。
【図７】変形例に係る同義語判定装置における文間の類似度を求めるステップの詳細を示すフローチャートである。
【図８】変形例に係る同義語判定装置における判定ステップの詳細を示すフローチャートである。
【図９】同義語辞書の例を示す図である。
【図１０】同義語を含む文の例を示す図である。
【図１１】同義語ではない単語を含む文の例を示す図である。
【発明を実施するための形態】
【００３３】
以下、図面を参照して、本発明の実施形態に係る同義語判定方法、同義語判定プログラム、および、同義語判定装置について説明する。本実施形態に係る同義語判定方法は、コンピュータを用いて実行される。本実施形態に係る同義語判定プログラムは、コンピュータを用いて同義語判定方法を実施するためのプログラムである。本実施形態に係る同義語判定装置は、コンピュータを用いて構成される。同義語判定プログラムを実行するコンピュータは、同義語判定装置として機能する。
【００３４】
図１は、本発明の実施形態に係る同義語判定装置の構成を示すブロック図である。図１に示す同義語判定装置１０は、入力部１１、前処理部１２、単語／ベクトル変換部１３、単語間類似度算出部１４、文／ベクトル変換部１５、文間類似度算出部１６、トピック分類部１７、判定部１８、および、出力部１９を備えている。同義語判定装置１０は、入力された文書５に含まれる単語が同義語か否かを判定し、同義語辞書６を出力する。
【００３５】
同義語判定装置１０の動作の概要は、以下のとおりである。入力部１１には、文書５が入力される。前処理部１２は、入力部１１に入力された文書５に対して前処理を行い、前処理された文書７を出力する。単語／ベクトル変換部１３は、前処理された文書７に含まれる単語を、単語の意味を表すベクトルに変換する。単語間類似度算出部１４は、単語／ベクトル変換部１３で求めたベクトルに基づき、単語間の類似度を求める。文／ベクトル変換部１５は、前処理された文書７に含まれる文を、文の意味を表すベクトルに変換する。文間類似度算出部１６は、文／ベクトル変換部１５で求めたベクトルに基づき、文間の類似度を求める。トピック分類部１７は、前処理された文書７についてトピック分類を行う。判定部１８は、単語間類似度算出部１４で求めた単語間の類似度、文間類似度算出部１６で求めた文間の類似度、および、トピック分類部１７によるトピック分類の結果に基づき、同義語判定を行う。出力部１９は、判定部１８で求めた同義語を含む同義語辞書６を出力する。
【００３６】
図２は、同義語判定装置１０として機能するコンピュータの構成を示すブロック図である。図２に示すコンピュータ２０は、ＣＰＵ２１、メインメモリ２２、記憶部２３、入力部２４、表示部２５、通信部２６、および、記憶媒体読み取り部２７を備えている。メインメモリ２２には、例えば、ＤＲＡＭが使用される。記憶部２３には、例えば、ハードディスクやソリッドステートドライブが使用される。入力部２４には、例えば、キーボード２８やマウス２９が含まれる。表示部２５には、例えば、液晶ディスプレイが使用される。通信部２６は、有線通信または無線通信のインターフェイス回路である。記憶媒体読み取り部２７は、プログラムなどを記憶した記憶媒体３０のインターフェイス回路である。記憶媒体３０には、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリなどの非一過性の記憶媒体が使用される。
【００３７】
コンピュータ２０が同義語判定プログラム３１を実行する場合、記憶部２３は、同義語判定プログラム３１と文書５を記憶する。同義語判定プログラム３１と文書５は、例えば、サーバや他のコンピュータから通信部２６を用いて受信したものでもよく、記憶媒体３０から記憶媒体読み取り部２７を用いて読み出したものでもよい。
【００３８】
同義語判定プログラム３１を実行するときには、同義語判定プログラム３１と文書５はメインメモリ２２に複写転送される。ＣＰＵ２１は、メインメモリ２２を作業用メモリとして利用して、メインメモリ２２に記憶された同義語判定プログラム３１を実行することにより、メインメモリ２２に記憶された文書５を処理する。このときコンピュータ２０は、同義語判定装置１０として機能する。なお、以上に述べたコンピュータ２０の構成は一例に過ぎず、任意のコンピュータを用いて同義語判定装置１０を構成することができる。
【００３９】
図３は、同義語判定装置１０の動作を示すフローチャートである。同義語判定プログラム３１を実行するコンピュータ２０は、同義語判定装置１０として機能する。ステップＳ１３０〜Ｓ１８０を実行するコンピュータ２０は、それぞれ、単語／ベクトル変換部１３、単語間類似度算出部１４、文／ベクトル変換部１５、文間類似度算出部１６、トピック分類部１７、および、判定部１８として機能する。
【００４０】
始めに、同義語判定装置１０には、同義語を求めるための文書５が入力される（ステップＳ１１０）。入力される文書５の種類は任意でよい。次に、同義語判定装置１０は、入力された文書５に対して前処理を行う（ステップＳ１２０）。同義語判定装置１０は、ステップＳ１２０において、文書５に含まれる文を単語に分割する処理や、文書５に含まれるノイズを除去する処理などを行い、前処理された文書７を出力する。
【００４１】
次に、同義語判定装置１０は、ｗｏｒｄ２ｖｅｃを用いて、前処理された文書７に含まれる単語をベクトルに変換する（ステップＳ１３０）。ステップＳ１３０において、前処理された文書７に含まれる単語は、単語の意味を表すｎ次元（ｎは２以上の整数）のベクトルに変換される。次に、同義語判定装置１０は、ステップＳ１３０で求めたベクトル（単語に対応するベクトル）に基づき、単語間の類似度を求める（ステップＳ１４０）。
【００４２】
次に、同義語判定装置１０は、ｄｏｃ２ｖｅｃを用いて、前処理された文書７に含まれる文をベクトルに変換する（ステップＳ１５０）。ｄｏｃ２ｖｅｃは、ｗｏｒｄ２ｖｅｃを文に拡張したものである。ステップＳ１５０において、前処理された文書７に含まれる文は、文の意味を表すｍ次元（ｍは２以上の整数）のベクトルに変換される。次に、同義語判定装置１０は、ステップＳ１５０で求めたベクトル（文に対応するベクトル）に基づき、文間の類似度を求める（ステップＳ１６０）。
【００４３】
次に、同義語判定装置１０は、ＬＤＡ（Latent Dirichlet Allocation ）を用いて、前処理された文書７についてトピック分類を行う（ステップＳ１７０）。次に、同義語判定装置１０は、ステップＳ１４０で求めた単語間の類似度、ステップＳ１６０で求めた文間の類似度、および、ステップＳ１７０で求めたトピック分類の結果に基づき、前処理された文書７に含まれる単語が同義語か否かを判定する（ステップＳ１８０）。
【００４４】
次に、同義語判定装置１０は、ステップＳ１８０において同義語と判定された単語を含む同義語辞書６を出力する（ステップＳ１９０）。ステップＳ１９０で出力された同義語辞書６には、手作業による確認や修正を行うことが好ましい。
【００４５】
以下、ステップＳ１３０〜Ｓ１８０の詳細を説明する。ここでは、前処理された文書７は、単語Ｗａを含むｐ個の文と、単語Ｗｂを含むｑ個の文とを含むものとする。また、ステップＳ１３０において、単語ＷａはベクトルＶａに、単語ＷｂはベクトルＶｂに変換され、ステップＳ１５０において、単語Ｗａを含むｐ個の文はｐ個のベクトルＵａ１、Ｕａ２、…、Ｕａｐに、単語Ｗｂを含むｑ個の文はｑ個のベクトルＵｂ１、Ｕｂ２、…、Ｕｂｑに変換されるものとする。
【００４６】
同義語判定装置１０は、ステップＳ１３０において、前処理された文書７に対してｗｏｒｄ２ｖｅｃを行うことにより、前処理された文書７に含まれる単語をｎ次元のベクトルに変換する。同義語判定装置１０は、ステップＳ１４０において、次式（１）に従い、ステップＳ１３０で求めた単語Ｗａに対応するベクトルＶａと単語Ｗｂに対応するベクトルＶｂとのコサイン類似度を求める。同義語判定装置１０は、求めたコサイン類似度を単語Ｗａと単語Ｗｂの間の類似度ＳＷａｂとする。
【数１】
2020154668.tif 000003
ただし、式（１）において、記号・はベクトルの内積を求める演算を示し、｜Ｖ｜はベクトルＶの長さを示す。ｗｏｒｄ２ｖｅｃは、出力するベクトルを単位ベクトルに変換する機能を有する。この機能を用いた場合、｜Ｖａ｜＝｜Ｖｂ｜＝１が成立するので、式（１）の分母の計算を省略することができる。
【００４７】
同義語判定装置１０は、ステップＳ１５０において、前処理された文書７に対してｄｏｃ２ｖｅｃを行うことにより、前処理された文書７に含まれる文をｍ次元のベクトルに変換する。図４は、ステップＳ１６０の詳細を示すフローチャートである。同義語判定装置１０は、ステップＳ１６０において、前処理された文書７に含まれるすべての単語のペアＷａ、Ｗｂに対して、図４に示す処理を実行する。
【００４８】
図４において、同義語判定装置１０は、次式（２）に従い、単語Ｗａを含むｐ個の文に対応するｐ個のベクトルＵａ１、Ｕａ２、…、Ｕａｐの平均ベクトルＵＭａを求める（ステップＳ１６１）。次に、同義語判定装置１０は、次式（３）に従い、単語Ｗｂを含むｑ個の文に対応するｑ個のベクトルＵｂ１、Ｕｂ２、…、Ｕｂｑの平均ベクトルＵＭｂを求める（ステップＳ１６２）。次に、同義語判定装置１０は、次式（４）に従い、ステップＳ１６１、Ｓ１６２で求めた２個の平均ベクトルＵＭａ、ＵＭｂのコサイン類似度を求める（ステップＳ１６３）。同義語判定装置１０は、求めたコサイン類似度を単語Ｗａを含む文と単語Ｗｂを含む文との間の類似度ＳＳａｂとする。
【数２】
2020154668.tif 000004
【００４９】
なお、同義語判定装置１０は、平均ベクトルＵＭａを求める前に、単語Ｗａを含むｐ個の文に対応するｐ個のベクトルＵａ１、Ｕａ２、…、Ｕａｐの分散を求め、分散の３倍よりも外側にあるベクトルを除外して平均ベクトルＵＭａを求めてもよい。この場合、同義語判定装置１０は、平均ベクトルＵＭｂを求めるときにも同じ処理を行う。
【００５０】
同義語判定装置１０は、ステップＳ１７０において、前処理された文書７に対してＬＤＡを行うことにより、前処理された文書７に含まれる単語をトピックに分類する。図５は、トピック分類の結果の例を示す図である。トピック分類を行うと、図５に示すように、Ｍ個（Ｍは２以上の整数）のトピックのそれぞれについて、トピックに関する単語と単語の出現確率とが得られる。図５に示す例では、１番目のトピックに関する単語は、「piano 」、「violin」、「concert 」などである。各トピックにおいて出現確率が高い単語は、そのトピックをよく表す単語である。図５に示す例では、１番目のトピックは「音楽」であると考えられる。
【００５１】
図５では、ＬＤＡの結果として各トピックについて出現確率が高いＮ個（Ｎは２以上の整数）の単語を求めることとしたが、各トピックに含まれる単語の個数に制限はない。単語の個数を制限しなければ、出現確率が低い単語を含めて、各トピックには文書５に含まれるすべての単語が含まれる。なお、ＬＤＡを実行すると単語をトピックに分類できるが、トピックが具体的に何であるかが分かる訳ではない。
【００５２】
図６は、ステップＳ１８０の詳細を示すフローチャートである。同義語判定装置１０は、ステップＳ１８０において、前処理された文書７に含まれるすべての単語のペアＷａ、Ｗｂに対して、図６に示す処理を実行する。
【００５３】
図６において、同義語判定装置１０は、ステップＳ１７０で求めたトピック分類の結果に、単語Ｗａの出現確率と単語Ｗｂの出現確率とが共に閾値ＴＨ１以上であるトピックが存在するか否かを判断する（ステップＳ１８１）。同義語判定装置１０は、Ｙｅｓの場合はステップＳ１８２へ進み、Ｎｏの場合はステップＳ１８５へ進む。
【００５４】
前者の場合、同義語判定装置１０は、ステップＳ１４０で求めた単語Ｗａと単語Ｗｂの間の類似度ＳＷａｂと、ステップＳ１６０で求めた単語Ｗａを含む文と単語Ｗｂを含む文との間の類似度ＳＳａｂとに基づき、次式（５）に従い、単語Ｗａと単語Ｗｂの間の総合類似度ＳＴａｂを求める（ステップＳ１８２）。
ＳＴａｂ＝（ＳＷａｂ＋ＳＳａｂ）／２  …（５）
【００５５】
次に、同義語判定装置１０は、ステップＳ１８２で求めた単語Ｗａと単語Ｗｂの間の総合類似度ＳＴａｂが閾値ＴＨ２以上か否かを判断する（ステップＳ１８３）。同義語判定装置１０は、Ｙｅｓの場合はステップＳ１８４へ進み、Ｎｏの場合はステップＳ１８５へ進む。
【００５６】
前者の場合、同義語判定装置１０は、単語Ｗａと単語Ｗｂは同義語と判定する（ステップＳ１８４）。ステップＳ１８１またはステップＳ１８３においてＮｏの場合、同義語判定装置１０は、単語Ｗａと単語Ｗｂは同義語ではないと判定する（ステップＳ１８５）。同義語判定装置１０は、ステップＳ１８４またはステップＳ１８５を実行した後、ステップＳ１８０を終了する。
【００５７】
以上に示すように本実施形態に係る同義語判定方法は、文書（前処理された文書７）に含まれる単語を単語の意味を表す第１ベクトルに変換するステップ（Ｓ１３０）と、第１ベクトルに基づき単語間の類似度を求めるステップ（Ｓ１４０）と、文書に含まれる文を文の意味を表す第２ベクトルに変換するステップ（Ｓ１５０）と、第２ベクトルに基づき文間の類似度を求めるステップ（Ｓ１６０）と、文書に含まれる単語をトピックに分類するステップ（Ｓ１７０）と、単語間の類似度と文間の類似度とトピックの分類結果とに基づき、文書に含まれる単語が同義語か否かを判定するステップ（Ｓ１８０）とを備えている。本実施形態に係る同義語判定方法によれば、単語間の類似度に加えて、文間の類似度とトピックの分類結果とに基づき同義語判定を行うことにより、高い精度で自動的に同義語判定を行うことができる。
【００５８】
判定するステップ（Ｓ１８０）は、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＷａｂと、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＳａｂとに基づき、第１単語Ｗａと第２単語Ｗｂとの間の総合類似度ＳＴａｂを求めるステップ（Ｓ１８２）と、トピックの分類結果に第１単語Ｗａの出現確率と第２単語Ｗｂの出現確率とが共に第１閾値ＴＨ１以上であるトピックが存在し、かつ、第１単語Ｗａと第２単語Ｗｂとの間の総合類似度ＳＴａｂが第２閾値ＴＨ２以上である場合には第１単語Ｗａと第２単語Ｗｂは同義語と判定し、それ以外の場合には第１単語Ｗａと第２単語Ｗｂは同義語ではないと判定するステップ（Ｓ１８１、Ｓ１８３〜Ｓ１８５）とを含んでいる。このように２個の単語Ｗａ、Ｗｂを含むトピックが存在し、２個の単語Ｗａ、Ｗｂについて単語間の類似度ＳＷａｂや文間の類似度ＳＳａｂが大きい場合に２個の単語Ｗａ、Ｗｂを同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【００５９】
文間の類似度を求めるステップ（Ｓ１６０）は、第１単語Ｗａを含む文に対応する第２ベクトルの平均ベクトルＵＭａを求めるステップ（Ｓ１６１）と、第２単語Ｗｂを含む文に対応する第２ベクトルの平均ベクトルＵＭｂを求めるステップ（Ｓ１６２）と、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＳａｂとして、２個の平均ベクトルＵＭａ、ＵＭｂのコサイン類似度を求めるステップ（Ｓ１６３）とを含んでいる。これにより、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＳａｂとして好適な値を求めることができる。
【００６０】
単語間の類似度を求めるステップ（Ｓ１４０）は、第１単語Ｗａと第２単語Ｗｂとの間の類似度ＳＷａｂとして、第１単語Ｗａに対応する第１ベクトルＶａと第２単語Ｗｂに対応する第１ベクトルＶｂとのコサイン類似度を求める。これにより、２個の単語Ｗａ、Ｗｂ間の類似度ＳＷａｂとして好適な値を求めることができる。
【００６１】
単語を第１ベクトルに変換するステップ（Ｓ１３０）は、文書に対してｗｏｒｄ２ｖｅｃを行い、文を第２ベクトルに変換するステップ（Ｓ１５０）は、文書に対してｄｏｃ２ｖｅｃを行い、単語をトピックに分類するステップ（Ｓ１７０）は、文書に対してLatent Dirichlet Allocation を行う。したがって、ｗｏｒｄ２ｖｅｃを用いて単語の意味を表す第１ベクトルを求め、ｄｏｃ２ｖｅｃを用いて文の意味を表す第２ベクトルを求め、Latent Dirichlet Allocation を用いてトピック分類を行い、これらの結果に基づき高い精度で自動的に同義語判定を行うことができる。
【００６２】
本実施形態に係る同義語判定プログラム３１および同義語判定装置１０は、上記の同義語判定方法と同様の特徴を有し、上記の同義語判定方法と同様の効果を奏する。また、本実施形態に係る同義語判定方法、同義語判定プログラム３１、および。同義語判定装置１０については、各種の変形例を構成することができる。例えば、ステップＳ１３０の後にステップＳ１４０を行い、ステップＳ１５０の後にステップＳ１６０を行う限り、ステップＳ１３０〜Ｓ１７０を行う順序は任意でよい。
【００６３】
変形例に係る同義語判定装置は、文間の類似度を求めるために、図６に示すステップＳ１６０に代えて、図７に示すステップＳ２６０を行ってもよい。図７において、変形例に係る同義語判定装置は、単語Ｗａを含むｐ個の文に対応するｐ個のベクトルＵａ１、Ｕａ２、…、Ｕａｐと、単語Ｗｂを含むｑ個の文に対応するｑ個のベクトルＵｂ１、Ｕｂ２、…、Ｕｂｑとのすべての組合せについて、コサイン類似度を求める（ステップＳ２６１）。変形例に係る同義語判定装置は、ステップＳ２６１において、ｐ個のベクトルＵａ１、Ｕａ２、…、Ｕａｐの中からベクトルＵａｉ（ｉは１以上ｐ以下の整数）を選択し、ｑ個のベクトルＵｂ１、Ｕｂ２、…、Ｕｂｑの中からベクトルＵｂｊ（ｊは１以上ｑ以下の整数）を選択し、次式（６）に従いコサイン類似度ＳＵｉｊを求める。変形例に係る同義語判定装置は、上記の処理を（ｐ×ｑ）回行うことにより、（ｐ×ｑ）個のコサイン類似度を求める。
【数３】
2020154668.tif 000005
【００６４】
次に、変形例に係る同義語判定装置は、ステップＳ２６１で求めた（ｐ×ｑ）個のコサイン類似度の平均値を求める（ステップＳ２６２）。変形例に係る同義語判定装置は、求めた平均値を単語Ｗａを含む文と単語Ｗｂを含む文との間の類似度とする。
【００６５】
このように変形例に係る同義語判定方法では、文間の類似度を求めるステップ（Ｓ２６０）は、第１単語Ｗａを含む文と第２単語Ｗｂを含む文とのすべての組合せについて、第１単語Ｗａを含む文に対応する第２ベクトルと第２単語Ｗｂを含む文に対応する第２ベクトルとのコサイン類似度を求めるステップ（Ｓ２６１）と、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度として、コサイン類似度の平均値を求めるステップ（Ｓ２６２）とを含んでいる。これにより、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＳａｂとして好適な値を求めることができる。
【００６６】
変形例に係る同義語判定装置は、同義語判定を行うために、図６に示すステップＳ１８０に代えて、図８に示すステップＳ３８０を行ってもよい。図８において、変形例に係る同義語判定装置は、ステップＳ１７０で求めたすべてのトピックについてトピックにおける単語Ｗａの出現確率と単語Ｗｂの出現確率との積を求め、求めた積の和を求める（ステップＳ３８１）。ｋ番目（ｋは１以上Ｍ以下の整数）のトピックにおける単語Ｗａの出現確率をＰｋａ、単語Ｗｂの出現確率をＰｋｂとしたとき、変形例に係る同義語判定装置は、ステップＳ３８１において、次式（７）に従い和ＳＵＭを求める。
【数４】
2020154668.tif 000006
【００６７】
次に、変形例に係る同義語判定装置は、ステップＳ３８１で求めた和ＳＵＭが閾値ＴＨ３以上か否かを判断する（ステップＳ３８２）。同義語判定装置１０は、Ｙｅｓの場合はステップＳ１８４へ進み、Ｎｏの場合はステップＳ１８５へ進む。これ以降の処理は、ステップＳ１８０と同じである。
【００６８】
このように変形例に係る同義語判定方法では、判定するステップ（Ｓ３８０）は、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＷａｂと、第１単語Ｗａを含む文と第２単語Ｗｂを含む文との間の類似度ＳＳａｂとに基づき、第１単語と第２単語との間の総合類似度ＳＴａｂを求めるステップ（Ｓ１８２）と、トピックの分類結果に基づき、すべてのトピックについて第１単語Ｗａの出現確率と第２単語Ｗｂの出現確率との積を求め、積の和ＳＵＭを求めるステップ（Ｓ３８１）と、和ＳＵＭが第３閾値ＴＨ３以上、かつ、第１単語Ｗａと第２単語Ｗｂとの間の総合類似度ＳＴａｂが第２閾値ＴＨ２以上である場合には第１単語Ｗａと第２単語Ｗｂは同義語と判定し、それ以外の場合には第１単語Ｗａと第２単語Ｗｂは同義語ではないと判定するステップ（Ｓ３８２、Ｓ１８３〜Ｓ１８５）とを含んでいる。このように２個の単語Ｗａ、Ｗｂが同じトピックに多く出現し、２個の単語Ｗａ、Ｗｂについて単語間の類似度ＳＷａｂや文間の類似度ＳＳａｂが大きい場合に２個の単語Ｗａ、Ｗｂを同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【符号の説明】
【００６９】
５…文書
６…同義語辞書
７…前処理された文書
１０…同義語判定装置
１１…入力部
１２…前処理部
１３…単語／ベクトル変換部
１４…単語間類似度算出部
１５…文／ベクトル変換部
１６…文間類似度算出部
１７…トピック分類部
１８…判定部
１９…出力部
２０…コンピュータ
２１…ＣＰＵ
２２…メインメモリ
３１…同義語判定プログラム
【図１】
2020154668.tif 000007
【図２】
2020154668.tif 000008
【図３】
2020154668.tif 000009
【図４】
2020154668.tif 000010
【図５】
2020154668.tif 000011
【図６】
2020154668.tif 000012
【図７】
2020154668.tif 000013
【図８】
2020154668.tif 000014
【図９】
2020154668.tif 000015
【図１０】
2020154668.tif 000016
【図１１】
2020154668.tif 000017