(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】同義語判定方法、同義語判定プログラム、および、同義語判定装置
(51)【国際特許分類】
G06F 16/36 20190101AFI20230801BHJP
G06F 16/35 20190101ALI20230801BHJP
G06F 40/247 20200101ALI20230801BHJP
【FI】
G06F16/36
G06F16/35
G06F40/247
(21)【出願番号】P 2019052125
(22)【出願日】2019-03-20
【審査請求日】2021-12-23
(73)【特許権者】
【識別番号】000207551
【氏名又は名称】株式会社SCREENホールディングス
(74)【代理人】
【識別番号】100104695
【氏名又は名称】島田 明宏
(74)【代理人】
【識別番号】100121348
【氏名又は名称】川原 健児
(74)【代理人】
【氏名又は名称】奥田 邦廣
(74)【代理人】
【識別番号】100148459
【氏名又は名称】河本 悟
(72)【発明者】
【氏名】北村 一博
(72)【発明者】
【氏名】粕渕 清孝
(72)【発明者】
【氏名】宮井 清孝
(72)【発明者】
【氏名】吉田 明子
(72)【発明者】
【氏名】寺田 万理
(72)【発明者】
【氏名】梅原 光規
【審査官】原 秀人
(56)【参考文献】
【文献】国際公開第2019/049483(WO,A1)
【文献】特開2010-287020(JP,A)
【文献】特開2017-151838(JP,A)
【文献】楠牟禮 章伍 外,ユーザのメンタルモデルに基づいたWebページデザインのリアルタイム最適化,第9回データ工学と情報マネジメントに関するフォーラム (第15回日本データベース学会年次大会) [online] ,日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2017年07月06日,pp. 1-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
(57)【特許請求の範囲】
【請求項1】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記第1単語と前記第2単語との間の類似度と
、前記第1単語を含む文と前記第2単語を含む文との間の類似度と
、前記トピックの分類結果とに基づき、
前記第1単語と前記第2単語とが同義語か否かを判定するステップとを備えた、同義語判定方法。
【請求項2】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第1単語の出現確率と前記第2単語の出現確率とが共に第1閾値以上であるトピックが存在し、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする
、同義語判定方法。
【請求項3】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第1単語の出現確率と前記第2単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第3閾値以上、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする
、同義語判定方法。
【請求項4】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記文間の類似度を求めるステップは、
第1単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
第2単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記2個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする
、同義語判定方法。
【請求項5】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記文間の類似度を求めるステップは、
第1単語を含む文と第2単語を含む文とのすべての組合せについて、前記第1単語を含む文に対応する前記第2ベクトルと前記第2単語を含む文に対応する前記第2ベクトルとのコサイン類似度を求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする
、同義語判定方法。
【請求項6】
前記単語間の類似度を求めるステップは、
前記第1単語と
前記第2単語との間の類似度として、前記第1単語に対応する前記第1ベクトルと前記第2単語に対応する前記第1ベクトルとのコサイン類似度を求めることを特徴とする、請求項1
から5のいずれか1項に記載の同義語判定方法。
【請求項7】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記第1単語と前記第2単語との間の類似度と
、前記第1単語を含む文と前記第2単語を含む文との間の類似度と
、前記トピックの分類結果とに基づき、
前記第1単語と前記第2単語とが同義語か否かを判定するステップとをCPUがメモリを利用して実行させることを特徴とする、同義語判定プログラム。
【請求項8】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第1単語の出現確率と前記第2単語の出現確率とが共に第1閾値以上であるトピックが存在し、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする
、同義語判定プログラム。
【請求項9】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第1単語の出現確率と前記第2単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第3閾値以上、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする
、同義語判定プログラム。
【請求項10】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記文間の類似度を求めるステップは、
第1単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
第2単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記2個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする
、同義語判定プログラム。
【請求項11】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記文間の類似度を求めるステップは、
第1単語を含む文と第2単語を含む文とのすべての組合せについて、前記第1単語を含む文に対応する前記第2ベクトルと前記第2単語を含む文に対応する前記第2ベクトルとのコサイン類似度を求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする
、同義語判定プログラム。
【請求項12】
前記単語間の類似度を求めるステップは、
前記第1単語と
前記第2単語との間の類似度として、前記第1単語に対応する前記第1ベクトルと前記第2単語に対応する前記第1ベクトルとのコサイン類似度を求めることを特徴とする、請求項7
から11のいずれか1項に記載の同義語判定プログラム。
【請求項13】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記第1単語と前記第2単語との間の類似度と
、前記第1単語を含む文と前記第2単語を含む文との間の類似度と
、前記トピックの分類結果とに基づき、
前記第1単語と前記第2単語とが同義語か否かを判定する判定部とを備えた、同義語判定装置。
【請求項14】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記第2ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備え、
前記判定部は、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求め、
前記トピックの分類結果に前記第1単語の出現確率と前記第2単語の出現確率とが共に第1閾値以上であるトピックが存在し、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定することを特徴とする、同義語判定装置。
【請求項15】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記第2ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備え、
前記判定部は、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求め、
前記トピックの分類結果に基づき、すべてのトピックについて前記第1単語の出現確率と前記第2単語の出現確率との積を求め、前記積の和を求め、
前記和が第3閾値以上、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定することを特徴とする、同義語判定装置。
【請求項16】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記第2ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備え、
前記文間類似度算出部は、
第1単語を含む文に対応する前記第2ベクトルの平均ベクトルと、第2単語を含む文に対応する前記第2ベクトルの平均ベクトルとを求め、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記2個の平均ベクトルのコサイン類似度を求めることを特徴とする、同義語判定装置。
【請求項17】
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記第2ベクトルに基づき文間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定する判定部とを備え、
前記文間類似度算出部は、
第1単語を含む文と第2単語を含む文とのすべての組合せについて、前記第1単語を含む文に対応する前記第2ベクトルと前記第2単語を含む文に対応する前記第2ベクトルとのコサイン類似度を求め、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めることを特徴とする、同義語判定装置。
【請求項18】
前記単語間類似度算出部は、前記第1単語と前記第2単語との間の類似度として、前記第1単語に対応する前記第1ベクトルと前記第2単語に対応する前記第1ベクトルとのコサイン類似度を求めることを特徴とする、請求項13から17のいずれか1項に記載の同義語判定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書に含まれる単語が同義語か否かを判定する同義語判定方法、同義語判定プログラム、および、同義語判定装置に関する。
【背景技術】
【0002】
同義語とは、表記や語形が異なるが、ほぼ同じ意味を持つ単語をいう。例えば、「プレゼント」と「ギフト」は同義語である。「病気」と「やまい」と「疾病」も、厳密な意味に多少の違いがあるが、通常は同義語であると言える。以下、使用される言語が英語である場合について考える。なお、以下の説明は言語の種類には依存しない。
【0003】
図9は、同義語辞書の例を示す図である。
図9に示す各行には、複数の単語を含む同義語グループが記載されている。同義語辞書は、例えば、マニュアルや取扱説明書など、各種の文書を作成するときに、単語の表記揺れを防止するために使用される。
【0004】
従来の同義語辞書の多くは、手作業で作成されている。しかし、同義語辞書を手作業で作成するためには、長い時間と多くの労力が必要とされる。また、複数の作業者が共同で同義語辞書を作成した場合、同義語の判定基準が作業者によって異なるので、同義語辞書の品質にばらつきが発生する。このため、同義語辞書を自動的に作成することが必要とされている。
【0005】
自然言語処理の分野では、文書に含まれる単語をベクトルに変換するword2vecという技術が知られている。word2vecを行うことにより、文書に含まれる単語は単語の意味を表すn次元(nは2以上の整数)のベクトルに変換される。
図10は、同義語を含む文の例を示す図である。
図10に示す例では、単語「present 」と単語「gift」は、文内で同じ位置に現れている。このように意味が近い単語は、文内で同じ位置または近い位置に現れるという特徴がある。word2vecは、この特徴を用いて単語をベクトルに変換する。
【0006】
単語Wa、Wbの意味が近いとき、単語Waに対応するベクトルVaと単語Wbに対応するベクトルVbとはn次元空間内で近い位置にある。ベクトルVa、Vbが近いほど、単語Wa、Wbの意味は近い。そこで、例えば、ベクトルVa、Vbのコサイン類似度が閾値以上である場合に、単語Wa、Wbは同義語と判定する方法が考えられる。
【0007】
word2vecについては、非特許文献1および2に記載されている。特許文献1には、word2vecを用いて求めた意味類似度と、単語の読みに基づく音類似度とに基づき、同義語のペアを求める同義語ペア獲得装置が記載されている。
【0008】
自然言語処理の分野では、word2vecを文に拡張し、文書に含まれる文をベクトルに変換するdoc2vecという技術、および、文書に含まれる単語をトピック(話題、ジャンル)に分類するLatent Dirichlet Allocation (以下、LDAという)という技術が知られている。doc2vecについては非特許文献3に記載され、LDAについては非特許文献4に記載されている。
【先行技術文献】
【特許文献】
【0009】
【非特許文献】
【0010】
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0011】
上述したように、word2vecを用いることにより、同義語判定を自動的に行うことができる。しかしながら、word2vecを用いた同義語判定には、実用的な判定精度を得ることが困難であるという問題がある。
図11は、同義語ではない単語を含む文の例を示す図である。
図11に示す例では、単語「soccer」と単語「chess 」は、文内で同じ位置に現れている。しかし、単語「soccer」と単語「chess 」は同義語ではない。word2vecを用いた同義語判定では、文内の位置が同じで、意味が異なる単語を同義語と判定することがある。また、自動的に作成された同義語辞書を手作業で修正する作業に手間が掛かるという問題もある。
【0012】
それ故に、本発明は、同義語判定を高い精度で自動的に行える同義語判定方法、同義語判定プログラム、および、同義語判定装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の第1の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記第1単語と前記第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度と、前記トピックの分類結果とに基づき、前記第1単語と前記第2単語とが同義語か否かを判定するステップとを備える。
【0014】
本発明の第2の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第1単語の出現確率と前記第2単語の出現確率とが共に第1閾値以上であるトピックが存在し、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする。
【0015】
本発明の第3の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第1単語の出現確率と前記第2単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第3閾値以上、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする。
【0016】
本発明の第4の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記文間の類似度を求めるステップは、
第1単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
第2単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記2個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする。
【0017】
本発明の第5の局面は、同義語判定方法であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとを備え、
前記文間の類似度を求めるステップは、
第1単語を含む文と第2単語を含む文とのすべての組合せについて、前記第1単語を含む文に対応する前記第2ベクトルと前記第2単語を含む文に対応する前記第2ベクトルとのコサイン類似度を求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする。
【0018】
本発明の第6の局面は、本発明の第1から第5の局面のいずれかにおいて、
前記単語間の類似度を求めるステップは、前記第1単語と前記第2単語との間の類似度として、前記第1単語に対応する前記第1ベクトルと前記第2単語に対応する前記第1ベクトルとのコサイン類似度を求めることを特徴とする。
【0019】
本発明の第7の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記第1単語と前記第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度と、前記トピックの分類結果とに基づき、前記第1単語と前記第2単語とが同義語か否かを判定するステップとをCPUがメモリを利用して実行させることを特徴とする。
【0020】
本発明の第8の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に前記第1単語の出現確率と前記第2単語の出現確率とが共に第1閾値以上であるトピックが存在し、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする。
【0021】
本発明の第9の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記判定するステップは、
第1単語と第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度とに基づき、前記第1単語と前記第2単語との間の総合類似度を求めるステップと、
前記トピックの分類結果に基づき、すべてのトピックについて前記第1単語の出現確率と前記第2単語の出現確率との積を求め、前記積の和を求めるステップと、
前記和が第3閾値以上、かつ、前記第1単語と前記第2単語との間の前記総合類似度が第2閾値以上である場合には前記第1単語と前記第2単語は同義語と判定し、それ以外の場合には前記第1単語と前記第2単語は同義語ではないと判定するステップとを含むことを特徴とする。
【0022】
本発明の第10の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記文間の類似度を求めるステップは、
第1単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
第2単語を含む文に対応する前記第2ベクトルの平均ベクトルを求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記2個の平均ベクトルのコサイン類似度を求めるステップとを含むことを特徴とする。
【0023】
本発明の第11の局面は、同義語判定プログラムであって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換するステップと、
前記第1ベクトルに基づき単語間の類似度を求めるステップと、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換するステップと、
前記第2ベクトルに基づき文間の類似度を求めるステップと、
前記文書に含まれる単語をトピックに分類するステップと、
前記単語間の類似度と前記文間の類似度と前記トピックの分類結果とに基づき、前記文書に含まれる単語が同義語か否かを判定するステップとをCPUがメモリを利用して実行させ、
前記文間の類似度を求めるステップは、
第1単語を含む文と第2単語を含む文とのすべての組合せについて、前記第1単語を含む文に対応する前記第2ベクトルと前記第2単語を含む文に対応する前記第2ベクトルとのコサイン類似度を求めるステップと、
前記第1単語を含む文と前記第2単語を含む文との間の類似度として、前記コサイン類似度の平均値を求めるステップとを含むことを特徴とする。
【0024】
本発明の第12の局面は、本発明の第7から第11の局面のいずれかにおいて、
前記単語間の類似度を求めるステップは、前記第1単語と前記第2単語との間の類似度として、前記第1単語に対応する前記第1ベクトルと前記第2単語に対応する前記第1ベクトルとのコサイン類似度を求めることを特徴とする。
【0025】
本発明の第13の局面は、同義語判定装置であって、
文書に含まれる単語を前記単語の意味を表す第1ベクトルに変換する単語/ベクトル変換部と、
前記第1ベクトルに基づき単語間の類似度を求める単語間類似度算出部と、
前記文書に含まれる文を前記文の意味を表す第2ベクトルに変換する文/ベクトル変換部と、
前記文書に含まれる2つの単語につき、前記2つの単語の一方である第1単語を含む文に対応する前記第2ベクトルと前記2つの単語の他方である第2単語を含む文に対応する前記第2ベクトルとに基づき、前記第1単語を含む文と前記第2単語を含む文との間の類似度を求める文間類似度算出部と、
前記文書に含まれる単語をトピックに分類するトピック分類部と、
前記第1単語と前記第2単語との間の類似度と、前記第1単語を含む文と前記第2単語を含む文との間の類似度と、前記トピックの分類結果とに基づき、前記第1単語と前記第2単語とが同義語か否かを判定する判定部とを備える。
【発明の効果】
【0026】
上記第1、第7、または、第13の局面によれば、単語間の類似度に加えて、文間の類似度とトピックの分類結果とに基づき同義語判定を行うことにより、高い精度で自動的に同義語判定を行うことができる。
【0027】
上記第2または第8の局面によれば、2個の単語を含むトピックが存在し、2個の単語について単語間の類似度や文間の類似度が大きい場合に2個の単語を同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【0028】
上記第3または第9の局面によれば、2個の単語が同じトピックに多く出現し、2個の単語について単語間の類似度や文間の類似度が大きい場合に2個の単語を同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【0029】
上記第4または第10の局面によれば、第1単語を含む文に対応する第2ベクトルの平均ベクトルと、第2単語を含む文に対応する第2ベクトルの平均ベクトルとを求め、2個の平均ベクトルのコサイン類似度を求めることにより、2個の文間の類似度として好適な値を求めることができる。
【0030】
上記第5または第11の局面によれば、第1単語を含む文と第2単語を含む文とのすべての組合せについて、前者の文に対応する第2ベクトルと後者の文に対応する第2ベクトルとのコサイン類似度を求め、コサイン類似度の平均値を求めることにより、2個の文間の類似度として好適な値を求めることができる。
【0031】
上記第6または第12の局面によれば、2個の第1ベクトルのコサイン類似度を求めることにより、2個の単語間の類似度として好適な値を求めることができる。
【図面の簡単な説明】
【0032】
【
図1】本発明の実施形態に係る同義語判定装置の構成を示すブロック図である。
【
図2】
図1に示す同義語判定装置として動作するコンピュータの構成を示すブロック図である。
【
図3】
図1に示す同義語判定装置の動作を示すフローチャートである。
【
図4】
図3に示すステップS160の詳細を示すフローチャートである。
【
図5】
図1に示す同義語判定装置によるトピック分類の結果の例を示す図である。
【
図6】
図3に示すステップS180の詳細を示すフローチャートである。
【
図7】変形例に係る同義語判定装置における文間の類似度を求めるステップの詳細を示すフローチャートである。
【
図8】変形例に係る同義語判定装置における判定ステップの詳細を示すフローチャートである。
【
図11】同義語ではない単語を含む文の例を示す図である。
【発明を実施するための形態】
【0033】
以下、図面を参照して、本発明の実施形態に係る同義語判定方法、同義語判定プログラム、および、同義語判定装置について説明する。本実施形態に係る同義語判定方法は、コンピュータを用いて実行される。本実施形態に係る同義語判定プログラムは、コンピュータを用いて同義語判定方法を実施するためのプログラムである。本実施形態に係る同義語判定装置は、コンピュータを用いて構成される。同義語判定プログラムを実行するコンピュータは、同義語判定装置として機能する。
【0034】
図1は、本発明の実施形態に係る同義語判定装置の構成を示すブロック図である。
図1に示す同義語判定装置10は、入力部11、前処理部12、単語/ベクトル変換部13、単語間類似度算出部14、文/ベクトル変換部15、文間類似度算出部16、トピック分類部17、判定部18、および、出力部19を備えている。同義語判定装置10は、入力された文書5に含まれる単語が同義語か否かを判定し、同義語辞書6を出力する。
【0035】
同義語判定装置10の動作の概要は、以下のとおりである。入力部11には、文書5が入力される。前処理部12は、入力部11に入力された文書5に対して前処理を行い、前処理された文書7を出力する。単語/ベクトル変換部13は、前処理された文書7に含まれる単語を、単語の意味を表すベクトルに変換する。単語間類似度算出部14は、単語/ベクトル変換部13で求めたベクトルに基づき、単語間の類似度を求める。文/ベクトル変換部15は、前処理された文書7に含まれる文を、文の意味を表すベクトルに変換する。文間類似度算出部16は、文/ベクトル変換部15で求めたベクトルに基づき、文間の類似度を求める。トピック分類部17は、前処理された文書7についてトピック分類を行う。判定部18は、単語間類似度算出部14で求めた単語間の類似度、文間類似度算出部16で求めた文間の類似度、および、トピック分類部17によるトピック分類の結果に基づき、同義語判定を行う。出力部19は、判定部18で求めた同義語を含む同義語辞書6を出力する。
【0036】
図2は、同義語判定装置10として機能するコンピュータの構成を示すブロック図である。
図2に示すコンピュータ20は、CPU21、メインメモリ22、記憶部23、入力部24、表示部25、通信部26、および、記憶媒体読み取り部27を備えている。メインメモリ22には、例えば、DRAMが使用される。記憶部23には、例えば、ハードディスクやソリッドステートドライブが使用される。入力部24には、例えば、キーボード28やマウス29が含まれる。表示部25には、例えば、液晶ディスプレイが使用される。通信部26は、有線通信または無線通信のインターフェイス回路である。記憶媒体読み取り部27は、プログラムなどを記憶した記憶媒体30のインターフェイス回路である。記憶媒体30には、例えば、CD-ROM、DVD-ROM、USBメモリなどの非一過性の記憶媒体が使用される。
【0037】
コンピュータ20が同義語判定プログラム31を実行する場合、記憶部23は、同義語判定プログラム31と文書5を記憶する。同義語判定プログラム31と文書5は、例えば、サーバや他のコンピュータから通信部26を用いて受信したものでもよく、記憶媒体30から記憶媒体読み取り部27を用いて読み出したものでもよい。
【0038】
同義語判定プログラム31を実行するときには、同義語判定プログラム31と文書5はメインメモリ22に複写転送される。CPU21は、メインメモリ22を作業用メモリとして利用して、メインメモリ22に記憶された同義語判定プログラム31を実行することにより、メインメモリ22に記憶された文書5を処理する。このときコンピュータ20は、同義語判定装置10として機能する。なお、以上に述べたコンピュータ20の構成は一例に過ぎず、任意のコンピュータを用いて同義語判定装置10を構成することができる。
【0039】
図3は、同義語判定装置10の動作を示すフローチャートである。同義語判定プログラム31を実行するコンピュータ20は、同義語判定装置10として機能する。ステップS130~S180を実行するコンピュータ20は、それぞれ、単語/ベクトル変換部13、単語間類似度算出部14、文/ベクトル変換部15、文間類似度算出部16、トピック分類部17、および、判定部18として機能する。
【0040】
始めに、同義語判定装置10には、同義語を求めるための文書5が入力される(ステップS110)。入力される文書5の種類は任意でよい。次に、同義語判定装置10は、入力された文書5に対して前処理を行う(ステップS120)。同義語判定装置10は、ステップS120において、文書5に含まれる文を単語に分割する処理や、文書5に含まれるノイズを除去する処理などを行い、前処理された文書7を出力する。
【0041】
次に、同義語判定装置10は、word2vecを用いて、前処理された文書7に含まれる単語をベクトルに変換する(ステップS130)。ステップS130において、前処理された文書7に含まれる単語は、単語の意味を表すn次元(nは2以上の整数)のベクトルに変換される。次に、同義語判定装置10は、ステップS130で求めたベクトル(単語に対応するベクトル)に基づき、単語間の類似度を求める(ステップS140)。
【0042】
次に、同義語判定装置10は、doc2vecを用いて、前処理された文書7に含まれる文をベクトルに変換する(ステップS150)。doc2vecは、word2vecを文に拡張したものである。ステップS150において、前処理された文書7に含まれる文は、文の意味を表すm次元(mは2以上の整数)のベクトルに変換される。次に、同義語判定装置10は、ステップS150で求めたベクトル(文に対応するベクトル)に基づき、文間の類似度を求める(ステップS160)。
【0043】
次に、同義語判定装置10は、LDA(Latent Dirichlet Allocation )を用いて、前処理された文書7についてトピック分類を行う(ステップS170)。次に、同義語判定装置10は、ステップS140で求めた単語間の類似度、ステップS160で求めた文間の類似度、および、ステップS170で求めたトピック分類の結果に基づき、前処理された文書7に含まれる単語が同義語か否かを判定する(ステップS180)。
【0044】
次に、同義語判定装置10は、ステップS180において同義語と判定された単語を含む同義語辞書6を出力する(ステップS190)。ステップS190で出力された同義語辞書6には、手作業による確認や修正を行うことが好ましい。
【0045】
以下、ステップS130~S180の詳細を説明する。ここでは、前処理された文書7は、単語Waを含むp個の文と、単語Wbを含むq個の文とを含むものとする。また、ステップS130において、単語WaはベクトルVaに、単語WbはベクトルVbに変換され、ステップS150において、単語Waを含むp個の文はp個のベクトルUa1、Ua2、…、Uapに、単語Wbを含むq個の文はq個のベクトルUb1、Ub2、…、Ubqに変換されるものとする。
【0046】
同義語判定装置10は、ステップS130において、前処理された文書7に対してword2vecを行うことにより、前処理された文書7に含まれる単語をn次元のベクトルに変換する。同義語判定装置10は、ステップS140において、次式(1)に従い、ステップS130で求めた単語Waに対応するベクトルVaと単語Wbに対応するベクトルVbとのコサイン類似度を求める。同義語判定装置10は、求めたコサイン類似度を単語Waと単語Wbの間の類似度SWabとする。
【数1】
ただし、式(1)において、記号・はベクトルの内積を求める演算を示し、|V|はベクトルVの長さを示す。word2vecは、出力するベクトルを単位ベクトルに変換する機能を有する。この機能を用いた場合、|Va|=|Vb|=1が成立するので、式(1)の分母の計算を省略することができる。
【0047】
同義語判定装置10は、ステップS150において、前処理された文書7に対してdoc2vecを行うことにより、前処理された文書7に含まれる文をm次元のベクトルに変換する。
図4は、ステップS160の詳細を示すフローチャートである。同義語判定装置10は、ステップS160において、前処理された文書7に含まれるすべての単語のペアWa、Wbに対して、
図4に示す処理を実行する。
【0048】
図4において、同義語判定装置10は、次式(2)に従い、単語Waを含むp個の文に対応するp個のベクトルUa1、Ua2、…、Uapの平均ベクトルUMaを求める(ステップS161)。次に、同義語判定装置10は、次式(3)に従い、単語Wbを含むq個の文に対応するq個のベクトルUb1、Ub2、…、Ubqの平均ベクトルUMbを求める(ステップS162)。次に、同義語判定装置10は、次式(4)に従い、ステップS161、S162で求めた2個の平均ベクトルUMa、UMbのコサイン類似度を求める(ステップS163)。同義語判定装置10は、求めたコサイン類似度を単語Waを含む文と単語Wbを含む文との間の類似度SSabとする。
【数2】
【0049】
なお、同義語判定装置10は、平均ベクトルUMaを求める前に、単語Waを含むp個の文に対応するp個のベクトルUa1、Ua2、…、Uapの分散を求め、分散の3倍よりも外側にあるベクトルを除外して平均ベクトルUMaを求めてもよい。この場合、同義語判定装置10は、平均ベクトルUMbを求めるときにも同じ処理を行う。
【0050】
同義語判定装置10は、ステップS170において、前処理された文書7に対してLDAを行うことにより、前処理された文書7に含まれる単語をトピックに分類する。
図5は、トピック分類の結果の例を示す図である。トピック分類を行うと、
図5に示すように、M個(Mは2以上の整数)のトピックのそれぞれについて、トピックに関する単語と単語の出現確率とが得られる。
図5に示す例では、1番目のトピックに関する単語は、「piano 」、「violin」、「concert 」などである。各トピックにおいて出現確率が高い単語は、そのトピックをよく表す単語である。
図5に示す例では、1番目のトピックは「音楽」であると考えられる。
【0051】
図5では、LDAの結果として各トピックについて出現確率が高いN個(Nは2以上の整数)の単語を求めることとしたが、各トピックに含まれる単語の個数に制限はない。単語の個数を制限しなければ、出現確率が低い単語を含めて、各トピックには文書5に含まれるすべての単語が含まれる。なお、LDAを実行すると単語をトピックに分類できるが、トピックが具体的に何であるかが分かる訳ではない。
【0052】
図6は、ステップS180の詳細を示すフローチャートである。同義語判定装置10は、ステップS180において、前処理された文書7に含まれるすべての単語のペアWa、Wbに対して、
図6に示す処理を実行する。
【0053】
図6において、同義語判定装置10は、ステップS170で求めたトピック分類の結果に、単語Waの出現確率と単語Wbの出現確率とが共に閾値TH1以上であるトピックが存在するか否かを判断する(ステップS181)。同義語判定装置10は、Yesの場合はステップS182へ進み、Noの場合はステップS185へ進む。
【0054】
前者の場合、同義語判定装置10は、ステップS140で求めた単語Waと単語Wbの間の類似度SWabと、ステップS160で求めた単語Waを含む文と単語Wbを含む文との間の類似度SSabとに基づき、次式(5)に従い、単語Waと単語Wbの間の総合類似度STabを求める(ステップS182)。
STab=(SWab+SSab)/2 …(5)
【0055】
次に、同義語判定装置10は、ステップS182で求めた単語Waと単語Wbの間の総合類似度STabが閾値TH2以上か否かを判断する(ステップS183)。同義語判定装置10は、Yesの場合はステップS184へ進み、Noの場合はステップS185へ進む。
【0056】
前者の場合、同義語判定装置10は、単語Waと単語Wbは同義語と判定する(ステップS184)。ステップS181またはステップS183においてNoの場合、同義語判定装置10は、単語Waと単語Wbは同義語ではないと判定する(ステップS185)。同義語判定装置10は、ステップS184またはステップS185を実行した後、ステップS180を終了する。
【0057】
以上に示すように本実施形態に係る同義語判定方法は、文書(前処理された文書7)に含まれる単語を単語の意味を表す第1ベクトルに変換するステップ(S130)と、第1ベクトルに基づき単語間の類似度を求めるステップ(S140)と、文書に含まれる文を文の意味を表す第2ベクトルに変換するステップ(S150)と、第2ベクトルに基づき文間の類似度を求めるステップ(S160)と、文書に含まれる単語をトピックに分類するステップ(S170)と、単語間の類似度と文間の類似度とトピックの分類結果とに基づき、文書に含まれる単語が同義語か否かを判定するステップ(S180)とを備えている。本実施形態に係る同義語判定方法によれば、単語間の類似度に加えて、文間の類似度とトピックの分類結果とに基づき同義語判定を行うことにより、高い精度で自動的に同義語判定を行うことができる。
【0058】
判定するステップ(S180)は、第1単語Waと第2単語Wbとの間の類似度SWabと、第1単語Waを含む文と第2単語Wbを含む文との間の類似度SSabとに基づき、第1単語Waと第2単語Wbとの間の総合類似度STabを求めるステップ(S182)と、トピックの分類結果に第1単語Waの出現確率と第2単語Wbの出現確率とが共に第1閾値TH1以上であるトピックが存在し、かつ、第1単語Waと第2単語Wbとの間の総合類似度STabが第2閾値TH2以上である場合には第1単語Waと第2単語Wbは同義語と判定し、それ以外の場合には第1単語Waと第2単語Wbは同義語ではないと判定するステップ(S181、S183~S185)とを含んでいる。このように2個の単語Wa、Wbを含むトピックが存在し、2個の単語Wa、Wbについて単語間の類似度SWabや文間の類似度SSabが大きい場合に2個の単語Wa、Wbを同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【0059】
文間の類似度を求めるステップ(S160)は、第1単語Waを含む文に対応する第2ベクトルの平均ベクトルUMaを求めるステップ(S161)と、第2単語Wbを含む文に対応する第2ベクトルの平均ベクトルUMbを求めるステップ(S162)と、第1単語Waを含む文と第2単語Wbを含む文との間の類似度SSabとして、2個の平均ベクトルUMa、UMbのコサイン類似度を求めるステップ(S163)とを含んでいる。これにより、第1単語Waを含む文と第2単語Wbを含む文との間の類似度SSabとして好適な値を求めることができる。
【0060】
単語間の類似度を求めるステップ(S140)は、第1単語Waと第2単語Wbとの間の類似度SWabとして、第1単語Waに対応する第1ベクトルVaと第2単語Wbに対応する第1ベクトルVbとのコサイン類似度を求める。これにより、2個の単語Wa、Wb間の類似度SWabとして好適な値を求めることができる。
【0061】
単語を第1ベクトルに変換するステップ(S130)は、文書に対してword2vecを行い、文を第2ベクトルに変換するステップ(S150)は、文書に対してdoc2vecを行い、単語をトピックに分類するステップ(S170)は、文書に対してLatent Dirichlet Allocation を行う。したがって、word2vecを用いて単語の意味を表す第1ベクトルを求め、doc2vecを用いて文の意味を表す第2ベクトルを求め、Latent Dirichlet Allocation を用いてトピック分類を行い、これらの結果に基づき高い精度で自動的に同義語判定を行うことができる。
【0062】
本実施形態に係る同義語判定プログラム31および同義語判定装置10は、上記の同義語判定方法と同様の特徴を有し、上記の同義語判定方法と同様の効果を奏する。また、本実施形態に係る同義語判定方法、同義語判定プログラム31、および。同義語判定装置10については、各種の変形例を構成することができる。例えば、ステップS130の後にステップS140を行い、ステップS150の後にステップS160を行う限り、ステップS130~S170を行う順序は任意でよい。
【0063】
変形例に係る同義語判定装置は、文間の類似度を求めるために、
図4に示すステップS160に代えて、
図7に示すステップS260を行ってもよい。
図7において、変形例に係る同義語判定装置は、単語Waを含むp個の文に対応するp個のベクトルUa1、Ua2、…、Uapと、単語Wbを含むq個の文に対応するq個のベクトルUb1、Ub2、…、Ubqとのすべての組合せについて、コサイン類似度を求める(ステップS261)。変形例に係る同義語判定装置は、ステップS261において、p個のベクトルUa1、Ua2、…、Uapの中からベクトルUai(iは1以上p以下の整数)を選択し、q個のベクトルUb1、Ub2、…、Ubqの中からベクトルUbj(jは1以上q以下の整数)を選択し、次式(6)に従いコサイン類似度SUijを求める。変形例に係る同義語判定装置は、上記の処理を(p×q)回行うことにより、(p×q)個のコサイン類似度を求める。
【数3】
【0064】
次に、変形例に係る同義語判定装置は、ステップS261で求めた(p×q)個のコサイン類似度の平均値を求める(ステップS262)。変形例に係る同義語判定装置は、求めた平均値を単語Waを含む文と単語Wbを含む文との間の類似度とする。
【0065】
このように変形例に係る同義語判定方法では、文間の類似度を求めるステップ(S260)は、第1単語Waを含む文と第2単語Wbを含む文とのすべての組合せについて、第1単語Waを含む文に対応する第2ベクトルと第2単語Wbを含む文に対応する第2ベクトルとのコサイン類似度を求めるステップ(S261)と、第1単語Waを含む文と第2単語Wbを含む文との間の類似度として、コサイン類似度の平均値を求めるステップ(S262)とを含んでいる。これにより、第1単語Waを含む文と第2単語Wbを含む文との間の類似度SSabとして好適な値を求めることができる。
【0066】
変形例に係る同義語判定装置は、同義語判定を行うために、
図6に示すステップS180に代えて、
図8に示すステップS380を行ってもよい。
図8において、変形例に係る同義語判定装置は、ステップS170で求めたすべてのトピックについてトピックにおける単語Waの出現確率と単語Wbの出現確率との積を求め、求めた積の和を求める(ステップS381)。k番目(kは1以上M以下の整数)のトピックにおける単語Waの出現確率をPka、単語Wbの出現確率をPkbとしたとき、変形例に係る同義語判定装置は、ステップS381において、次式(7)に従い和SUMを求める。
【数4】
【0067】
次に、変形例に係る同義語判定装置は、ステップS381で求めた和SUMが閾値TH3以上か否かを判断する(ステップS382)。同義語判定装置10は、Yesの場合はステップS182へ進み、Noの場合はステップS185へ進む。これ以降の処理は、ステップS180と同じである。
【0068】
このように変形例に係る同義語判定方法では、判定するステップ(S380)は、第1単語Waと第2単語Wbとの間の類似度SWabと、第1単語Waを含む文と第2単語Wbを含む文との間の類似度SSabとに基づき、第1単語と第2単語との間の総合類似度STabを求めるステップ(S182)と、トピックの分類結果に基づき、すべてのトピックについて第1単語Waの出現確率と第2単語Wbの出現確率との積を求め、積の和SUMを求めるステップ(S381)と、和SUMが第3閾値TH3以上、かつ、第1単語Waと第2単語Wbとの間の総合類似度STabが第2閾値TH2以上である場合には第1単語Waと第2単語Wbは同義語と判定し、それ以外の場合には第1単語Waと第2単語Wbは同義語ではないと判定するステップ(S382、S183~S185)とを含んでいる。このように2個の単語Wa、Wbが同じトピックに多く出現し、2個の単語Wa、Wbについて単語間の類似度SWabや文間の類似度SSabが大きい場合に2個の単語Wa、Wbを同義語と判定することにより、単語間の類似度と文間の類似度とトピックの分類結果とに基づき同義語判定を高い精度で行うことができる。
【符号の説明】
【0069】
5…文書
6…同義語辞書
7…前処理された文書
10…同義語判定装置
11…入力部
12…前処理部
13…単語/ベクトル変換部
14…単語間類似度算出部
15…文/ベクトル変換部
16…文間類似度算出部
17…トピック分類部
18…判定部
19…出力部
20…コンピュータ
21…CPU
22…メインメモリ
31…同義語判定プログラム