(57)【要約】【課題】テキストコーパスからの学習により、ある単語、およびその単語と意味を区別すべき他の単語を区別可能な意味情報の割り当てを実現すること。【解決手段】第一単語を含む自然言語の第一テキストデータと、前記第一単語と意味を区別すべき第二単語を含み、前記第二単語についての第二単語分布が、前記第一単語について第一単語分布と類似する第二テキストデータとを含む第一テキストコーパスを取得し、前記第一単語および前記第二単語の一方と同じ単語である第三単語を含み、前記第三単語についての第三単語分布が前記第一単語分布と類似しない第三テキストデータを含む第二テキストコーパスを取得し、前記第一テキストコーパスおよび前記第二テキストコーパスにおける単語列の配列に基づいて、前記第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記第二単語の意味を表す第二ベクトルを前記第二単語に割り当てる。【選択図】図１
2019212321.tif 000002
【特許請求の範囲】
【請求項１】
意味情報生成装置が行う意味情報生成方法であって、
テキストデータを取得し、
単語と、所定次元のベクトル空間において前記単語の意味を表すベクトル情報とを対応付けた意味情報テーブルに基づき、前記テキストデータの意味を解析し、 
前記解析された意味を示す情報を出力し、 
前記意味情報テーブルは、
第一テキストコーパスおよび第二テキストコーパスにおける単語列の配列に基づいて、前記ベクトル空間において第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記ベクトル空間において第二単語の意味を表す第二ベクトルを前記第二単語に割り当てる学習により生成されたものであり、
前記第一テキストコーパスは、前記第一単語を含み、自然言語で記述された第一文章の第一テキストデータと、前記第一単語と意味を区別すべき前記第二単語を含み、前記第二単語の前および後の所定範囲に出現する単語の種類および出現個数を示す第二単語分布が、前記第一文章における前記第一単語の前および後の前記所定範囲の第一単語分布と類似する第二文章の第二テキストデータとを含み、
前記第二テキストコーパスは、前記第一単語および前記第二単語の少なくとも一方と同じ単語である第三単語を含み、前記第三単語の前および後の前記所定範囲の第三単語分布が前記第一単語分布と類似しない第三文章の第三テキストデータを含む、
意味情報生成方法。
【請求項２】
前記第二テキストコーパスは、前記第三単語、および自然言語のテキストデータに出現しない人工的に作成された第四単語を含み、
前記第三テキストデータにおいて、前記第三単語の前および後の前記所定範囲に含まれる単語は、前記第四単語である、
請求項１記載の意味情報生成方法。
【請求項３】
前記第一テキストデータおよび前記第二テキストデータは、第一言語の単語で構成されており、
前記第三テキストデータにおいて、前記第三単語は前記第一言語の単語であり、前記第三単語の前および後の前記所定範囲に含まれる単語は、前記第一言語とは異なる第二言語の単語である
請求項１記載の意味情報生成方法。
【請求項４】
前記第二単語は、前記第一単語に対する反意語である
請求項１記載の意味情報生成方法。
【請求項５】
前記第二単語は、前記第一単語と同じ意味を有し、当該第一単語と程度の異なる単語である、
請求項１記載の意味情報生成方法。
【請求項６】
前記第二単語は、前記第一単語と同じ概念に属し、当該第一単語と属性の異なる単語である、
請求項１記載の意味情報生成方法。
【請求項７】
前記学習は、ニューラルネットワークを用いて行われる、
請求項１記載の意味情報生成方法。
【請求項８】
前記学習は、潜在的意味インデキシングを用いて行われる、
請求項１記載の意味情報生成方法。
【請求項９】
前記学習は、確率的意味インデキシングを用いて行われる、
請求項１記載の意味情報生成方法。
【請求項１０】
前記ベクトル空間は、前記第一テキストコーパスおよび前記第二テキストコーパスに出現する異なり語数を次元数とする、
請求項１記載の意味情報生成方法。
【請求項１１】
前記第一テキストコーパスは、機器を操作する指示に用いられる自然言語のテキストデータを含み、
前記第三単語は、前記機器の操作内容に関する単語である、
請求項１記載の意味情報生成方法。
【請求項１２】
前記第一テキストコーパスは、医療診断において患者による症状の説明に用いられる自然言語のテキストデータを含み、
前記第三単語は、身体の状態に関する単語である、
請求項１記載の意味情報生成方法。
【請求項１３】
前記第一テキストコーパスは、医療診断において症状の説明または当該症状に対する処置に用いられる自然言語のテキストデータを含み、
前記第三単語は、身体の部位に関する単語である、
請求項１記載の意味情報生成方法。
【請求項１４】
前記第一テキストコーパスは、医療診断において症状に対する処置の説明に用いられる自然言語のテキストデータを含み、
前記第三単語は、処置内容に関する単語である、
請求項１記載の意味情報生成方法。
【請求項１５】
テキストデータを取得する手段と、
単語と、所定次元のベクトル空間において前記単語の意味を表すベクトル情報とを対応付けた意味情報テーブルに基づき、前記テキストデータの意味を解析する手段と、 
前記解析された意味を示す情報を出力する手段とを備え、 
前記意味情報テーブルは、
第一テキストコーパスおよび第二テキストコーパスにおける単語列の配列に基づいて、前記ベクトル空間において第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記ベクトル空間において第二単語の意味を表す第二ベクトルを前記第二単語に割り当てる学習により生成されたものであり、
前記第一テキストコーパスは、前記第一単語を含み、自然言語で記述された第一文章の第一テキストデータと、前記第一単語と意味を区別すべき前記第二単語を含み、前記第二単語の前および後の所定範囲に出現する単語の種類および出現個数を示す第二単語分布が、前記第一文章における前記第一単語の前および後の前記所定範囲の第一単語分布と類似する第二文章の第二テキストデータとを含み、
前記第二テキストコーパスは、前記第一単語および前記第二単語の少なくとも一方と同じ単語である第三単語を含み、前記第三単語の前および後の前記所定範囲の第三単語分布が前記第一単語分布と類似しない第三文章の第三テキストデータを含む、
意味情報生成装置。
【請求項１６】
コンピュータに
テキストデータを取得し、
単語と、所定次元のベクトル空間において前記単語の意味を表すベクトル情報とを対応付けた意味情報テーブルに基づき、前記テキストデータの意味を解析し、 
前記解析された意味を示す情報を出力することを実行させるプログラムであって、 
前記意味情報テーブルは、
第一テキストコーパスおよび第二テキストコーパスにおける単語列の配列に基づいて、前記ベクトル空間において第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記ベクトル空間において第二単語の意味を表す第二ベクトルを前記第二単語に割り当てる学習により生成されたものであり、
前記第一テキストコーパスは、前記第一単語を含み、自然言語で記述された第一文章の第一テキストデータと、前記第一単語と意味を区別すべき前記第二単語を含み、前記第二単語の前および後の所定範囲に出現する単語の種類および出現個数を示す第二単語分布が、前記第一文章における前記第一単語の前および後の前記所定範囲の第一単語分布と類似する第二文章の第二テキストデータとを含み、
前記第二テキストコーパスは、前記第一単語および前記第二単語の少なくとも一方と同じ単語である第三単語を含み、前記第三単語の前および後の前記所定範囲の第三単語分布が前記第一単語分布と類似しない第三文章の第三テキストデータを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は自然言語のテキスト情報の意味を取り扱うために単語に対する意味情報を生成するための装置、および、その方法に関するものである。
【背景技術】
【０００２】
自然言語のテキスト情報の意味を取り扱うためにテキストを構成する単語に対して意味情報を生成する従来技術が存在する（非特許文献２）、（非特許文献３）。前記従来技術は大量のテキストデータセット（以降、テキストコーパスと記述）から、テキストコーパスに含まれる各単語に割り当てるべき多次元のベクトルを学習し、単語とその単語に対応する多次元のベクトル（意味情報）の対応関係を結果として出力する。
【０００３】
このような従来技術により生成された意味情報は、単語の意味が類似しているか否かの判定に用いることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３３４０７７号公報
【非特許文献】
【０００５】
【非特許文献１】柴田、黒橋「文脈に依存した述語の同義関係獲得」情報処理学会研究報告、Ｖｏｌ．２０１０−ＮＬ−１９９  Ｎｏ．１３
【非特許文献２】Ｔｏｍａｓ  Ｍｉｋｏｌｏｖ，  Ｋａｉ  Ｃｈｅｎ，  Ｇｒｅｇ  Ｃｏｒｒａｄｏ，  ａｎｄ  Ｊｅｆｆｒｅｙ  Ｄｅａｎ．  ”Ｅｆｆｉｃｅｎｔ  Ｅｓｔｉｍａｔｉｏｎ  ｏｆ  Ｗｏｒｄ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｉｎ  Ｖｅｃｔｏｒ  Ｓｐａｃｅ．”  ＩＣＬＲ  ２０１３．
【非特許文献３】Ｔｏｍａｓ  Ｍｉｋｏｌｏｖ，  Ｉｌｙａ  Ｓｕｔｓｋｅｖｅｒ，  Ｋａｉ  Ｃｈｅｎ，  Ｇｒｅｇ  Ｃｏｒｒａｄｏ，  Ｊｅｆｆｒｅｙ  Ｄｅａｎ，  “Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｏｆ  Ｗｏｒｄｓ  ａｎｄ  Ｐｈｒａｓｅｓ  ａｎｄ  ｔｈｅｉｒ  Ｃｏｍｐｏｓｉｔｉｏｎａｌｉｔｙ．”  ＮＩＰＳ  ２０１３．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術によると、ある単語に割り当てられる意味情報と、その単語に対して意味を区別すべき他の単語に割り当てられる意味情報とが近接したものとなるため、単語の意味が類似しているかどうかの判定に用いるためには、さらなる改善が必要であった。
【課題を解決するための手段】
【０００７】
本開示の一態様による方法は、意味情報生成装置が行う意味情報生成方法であって、テキストデータを取得し、単語と、所定次元のベクトル空間において前記単語の意味を表すベクトル情報とを対応付けた意味情報テーブルに基づき、前記テキストデータの意味を解析し、前記解析された意味を示す情報を出力し、前記意味情報テーブルは、第一テキストコーパスおよび第二テキストコーパスにおける単語列の配列に基づいて、前記ベクトル空間において第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記ベクトル空間において第二単語の意味を表す第二ベクトルを前記第二単語に割り当てる学習により生成されたものであり、前記第一テキストコーパスは、前記第一単語を含み、自然言語で記述された第一文章の第一テキストデータと、前記第一単語と意味を区別すべき前記第二単語を含み、前記第二単語の前および後の所定範囲に出現する単語の種類および出現個数を示す第二単語分布が、前記第一文章における前記第一単語の前および後の前記所定範囲の第一単語分布と類似する第二文章の第二テキストデータとを含み、前記第二テキストコーパスは、前記第一単語および前記第二単語の少なくとも一方と同じ単語である第三単語を含み、前記第三単語の前および後の前記所定範囲の第三単語分布が前記第一単語分布と類似しない第三文章の第三テキストデータを含む。
【０００８】
なお、これらの包括的又は具体的な態様は、システム、装置、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【０００９】
本開示によれば、ある単語に割り当てられるベクトルと、その単語と意味を区別すべき他の単語に割り当てられるベクトルとが近接したものとなることを抑制することができるため、単語の意味が類似しているかどうかの判定に用いることが可能となる。
【００１０】
なお、本開示の更なる効果及び利点は、本明細書及び図面の開示内容から明らかとなるであろう。上記更なる効果及び利点は、本明細書及び図面に開示されている様々な実施の形態及び特徴によって個別に提供されてもよく、必ずしもすべての効果及び利点が提供される必要はない。
【図面の簡単な説明】
【００１１】
【図１】本開示の一実施の形態における単語意味情報生成装置の構成の一例を表すブロック図である。
【図２】第二テキストコーパスに含まれる単語が、第一テキストコーパスに含まれる単語の反意語である場合の単語意味情報生成装置の構成の一例を表すブロック図である。
【図３】一般テキストコーパスとして採用されるテキストコーパスの一例を示す図である。
【図４】一般テキストコーパスとして採用されるテキストコーパスであって、反意語関係にある単語を含むテキストコーパスの一例を示す図である。
【図５】反意語テキストコーパスに格納されるテキストデータの一例を示す図である。
【図６】出現確率の計算に用いられるニューラルネットワークの構成の一例を示す図である。
【図７】学習に用いられるテキストデータの一例を示す図である。
【図８】１−ｏｆ−Ｋ形式のベクトルで表された単語の一例を示す図である。
【図９】ベクトルＸ、Ｈ、Ｙ（−２），Ｙ（−１），Ｙ（＋１），Ｙ（＋２）を用いて図６のニューラルネットワークを表現した場合の図である。
【図１０】本開示の実施の形態における単語意味情報生成装置の学習処理を示すフローチャートである。
【図１１】本実施の形態の比較例の意味ベクトルテーブルにおいて、単語「アップ」と単語「ダウン」とに割り当てられた意味ベクトルを主成分分析法で２次元に縮退させたグラフである。
【図１２】本実施の形態における意味ベクトルテーブにおいて、単語「アップ」と単語「ダウン」とに割り当てられた意味ベクトルを主成分分析法で２次元に縮退させたグラフである。
【図１３】意味情報テーブルの利用形態の第一例を構成する家電機器３００のブロック図の一例である。
【図１４】意味情報テーブルの利用形態の第二例を構成する家電システムのブロック図の一例である。
【発明を実施するための形態】
【００１２】
（本開示の基礎となった知見）
前述した従来技術に係る単語に対して多次元のベクトルを割り当てる方式は、自然言語処理技術分野において分布仮説と呼ばれる原理に基づくものである。分布仮説とは、似た意味をもつ単語は同じ文脈で使われるという原理である。言い換えると、似た意味をもつ単語の前後には同じような単語が出現するという原理である。例えば、非特許文献１には、一般的に反意語の関係を持つ単語同士は、文脈が類似する、すなわち、前後の単語列が一致、あるいは、類似することが多いことが指摘されている。
【００１３】
例えば、「上がる」という単語と「アップする」という単語とは、それぞれ「ボーナス／が／上がる／と／うれしい」、「ボーナス／が／アップする／と／うれしい」のような文を構成する際に使われ、「ボーナス／が」、「と／うれしい」という前後の単語列が共通である。分布仮説に基づく従来技術では、単語に多次元のベクトルを割り当てる際に、テキストコーパスにおいて前後の文脈が類似している単語同士は、値が近いベクトルが割り当てられる。その結果、分布仮説に基づく従来技術は、単語を多次元のベクトルに変換し、得られた多次元のベクトルが類似しているかどうかで、単語の意味が類似しているかどうかを判定することができる。
【００１４】
しかしながら、分布仮説に基づく従来技術には、互いに反対の意味をもつ反意語に対しても値が近いベクトルが割り当てられてしまうという課題が存在する。例えば、「上昇する」、「下落する」という単語は、「株価／は／上昇する／だろう」、「株価／は／下落する／だろう」という文に現れるので、「株価／が」「だろう」というように前後の文脈が共通となる。したがって、分布仮説の「似た意味をもつ単語は同じ文脈で使われる」という原理に従うと、「上昇する」「下落する」という反意語も似た意味をもつ単語と判断されてしまう。
【００１５】
一方で、反意語の意味を区別するための手法を開示する従来技術（特許文献１）が存在する。この従来技術では、あらかじめ単語の意味を複数の属性値の組み合わせで表現する概念ベースを構成することが前提となっている。その概念ベースの中で反意語関係にある単語において、ある属性値では値が異なるように属性値を設定しておくことで、反意語関係にある単語同士が区別される。例えば、「上流」「下流」という反意語に対して、“高度”という属性値を持たせて、「上流」に対しては“高度”の属性値に正の数値、「下流」に対しては“高度”の属性値に負の数値を割り当てることで、「上流」と「下流」とが反意語関係であることが表現される。
【００１６】
しかし、特許文献１では、反意語同士で値が異なるように属性値を設定するには、人手による作業により属性値を記述する、あるいは、しかるべき学習方式によってテキストコーパスなどの言語資源データから学習するとの記載に留まっている。したがって、特許文献１では、反意語に対して値が異なるように属性値を設定させることについての具体的な学習方式の開示はない。
【００１７】
また、非特許文献１では、反意語が表れる文脈は類似しているとの指摘に留まり、分布仮説に基づく従来技術の上述の課題を解決するための具体的な手段が何ら明示されていない。
【００１８】
このように、従来技術によれば、テキストコーパスからの学習により、反意語に対して適切に意味を区別可能な意味情報を割り当てることができないという課題が存在する。
【００１９】
このような課題を解決するために、本開示に係る方法は、第一単語を含み、自然言語で記述された第一文章の第一テキストデータと、前記第一単語と意味を区別すべき第二単語を含み、前記第二単語の前および後の所定範囲に出現する単語の種類および出現個数を示す第二単語分布が、前記第一文章における前記第一単語の前および後の前記所定範囲の第一単語分布と類似する第二文章の第二テキストデータとを含む第一テキストコーパスを取得し、前記第一単語および前記第二単語の少なくとも一方と同じ単語である第三単語を含み、前記第三単語の前および後の前記所定範囲の第三単語分布が前記第一単語分布と類似しない第三文章の第三テキストデータを含む第二テキストコーパスを取得し、前記第一テキストコーパスおよび前記第二テキストコーパスにおける単語列の配列に基づいて、所定次元のベクトル空間において前記第一単語の意味を表す第一ベクトルを前記第一単語に割り当て、前記ベクトル空間において前記第二単語の意味を表す第二ベクトルを前記第二単語に割り当てることで学習を行い、前記第一ベクトルを前記第一単語と対応付けて格納し、前記ベクトル空間において前記第一ベクトルとの距離が所定以上離れた前記第二ベクトルを前記第二単語と対応付けて格納する。
【００２０】
これにより、テキストコーパスからの学習により、ある単語、およびその単語と意味を区別すべき他の単語を区別可能な意味情報の割り当てを実現することが可能となる。
【００２１】
より具体的には、実際の単語の使われ方が反映された第一テキストコーパスと、意味を区別すべき単語の周辺の単語列が類似しないように作成された第二テキストコーパスとが取得される。そして、両テキストコーパスから、単語の意味情報であるベクトルが生成されるので、意味を区別すべき単語が異なる文脈で使われるという情報が単語の意味情報の学習に反映される。その結果、意味を区別すべき単語の意味が類似してしまうという従来技術の課題を解決することができる。
【００２２】
また、第一単語には所定の次元数のベクトルで表現された意味情報が割り当てられるので、例えば、ベクトル間の距離を用いて第一単語同士の類似度を適切に判断できる。
【００２３】
また、前記第二テキストコーパスは、第三単語、および自然言語のテキストデータに出現しない人工的に作成された第四単語を含み、前記第三テキストデータにおいて、前記第三単語の前および後の前記所定範囲に含まれる単語は、前記第四単語であるとしてもよい。
【００２４】
これにより、第二テキストコーパスには人工的な単語が含まれることになり、テキストコーパス中の自然言語の単語に対して意味情報を割り当てる際の悪影響を排除することが可能となる。第三単語の周辺の単語を自然言語のある一の単語で置き換えると、その一の単語に対する意味情報が、第二テキストコーパスでの文脈の影響を受けて、本来割り当てられるべき意味情報とは異なる意味情報が割り当てられる可能性がある。そこで、本態様では、第三単語の周辺の単語を第四単語に置き換えることで、上記の問題を解決できる。
【００２５】
前記第一テキストデータおよび前記第二テキストデータは、第一言語の単語で構成されており、前記第三テキストデータにおいて、前記第三単語は前記第一言語の単語であり、前記第三単語の前および後の前記所定範囲に含まれる単語は、前記第一言語とは異なる第二言語の単語であるとしてもよい。
【００２６】
また、前記第二単語は、前記第一単語に対する反意語であることとしてもよい。
【００２７】
これにより、例えば「上げる」、「下げる」といった反意語を適切に区別することが可能となる。
【００２８】
また、前記第二単語は、前記第一単語と同じ意味を有し、当該第一単語と程度の異なる単語であることとしてもよい。
【００２９】
これにより、例えば「ｇｏｏｄ」、「ｂｅｔｔｅｒ」、「ｂｅｓｔ」といった、同じ意味で程度の異なる単語を適切に区別することが可能となる。
【００３０】
また、前記第二単語は、前記第一単語と同じ概念に属し、当該第一単語と属性の異なる単語であることとしてもよい。
【００３１】
これにより、例えば「色」という同一の概念に属する「赤」、「青」、「緑」といった属性の異なる単語を適切に区別することが可能となる。
【００３２】
また、前記学習は、ニューラルネットワークを用いて行うこととしてもよい。
【００３３】
これにより、第一および第二テキストコーパスをニューラルネットワークを用いて学習させることで、第一および第二単語が適切に区別されるように意味情報の割り当てが可能となる。
【００３４】
また、前記学習は、潜在的意味インデキシングを用いて行うこととしてもよい。
【００３５】
これにより、第一および第二テキストコーパスを潜在的意味インデキシングを用いて学習させることで、第一および第二単語が適切に区別されるように意味情報の割り当てが可能となる。
【００３６】
また、前記学習は、確率的意味インデキシングを用いて行うこととしてもよい。
【００３７】
これにより、第一および第二テキストコーパスを確率的意味インデキシングを用いて学習させることで、第一および第二単語が適切に区別されるように意味情報の割り当てが可能となる。
【００３８】
また、前記所定次元のベクトルは、前記第一テキストコーパスおよび前記第二テキストコーパスに出現する異なり語数を次元数とすることとしてもよい。
【００３９】
この構成によれば、意味情報は、第一および第二テキストコーパスに出現する異なり語数の次元を持つベクトルで表されるので、種類の異なる各単語は、例えば、１−ｏｆ−Ｋ形式のベクトルで表現可能となり、学習に適した記号列で表わされる。
【００４０】
また、前記第一テキストコーパスは、機器を操作する指示に用いられる自然言語のテキストデータを含み、前記第一単語および前記第二単語は、前記機器の操作内容に関する単語であることとしてもよい。
【００４１】
これにより、例えば、「温度を上げてください」と「温度を下げてください」、「寝室のエアコンをつけてください」と「リビングのエアコンをつけてください」といった、単語列は類似するが意味が異なる機器への指示を適切に区別し、機器の誤操作を防止することが可能となる。
【００４２】
また、前記第一テキストコーパスは、医療診断において患者による症状の説明に用いられる自然言語のテキストデータを含み、前記第一単語は、身体の状態に関する単語であることとしてもよい。
【００４３】
これにより、例えば、「三日前から頭が痛い」、「三日前から頭がふらふらする」といった、単語列は類似するが意味が全く異なる症状の説明を適切に区別し、誤った診断を行うことを防止することが可能となる。
【００４４】
また、前記第一テキストコーパスは、医療診断において症状の説明または当該症状に対する処置に用いられる自然言語のテキストデータを含み、前記第一単語は、身体の部位に関する単語であることとしてもよい。
【００４５】
これにより、例えば、「三日前から右手が痛い」および「三日前から腹部が痛い」、あるいは「頭を冷やしてください」および「左足を冷やしてください」といった、単語列は類似するが意味が全く異なる症状の説明または処置の説明を適切に区別し、誤った診断あるいは誤った処置の提示を防止することが可能となる。
【００４６】
また、前記第一テキストコーパスは、医療診断において症状に対する処置の説明に用いられる自然言語のテキストデータを含み、前記第一単語は、処置内容に関する単語であることとしてもよい。
【００４７】
これにより、例えば、「患部を温めてください」および「患部を冷やしてください」といった、単語列は類似するが意味が全く異なる処置の説明を適切に区別し、誤った処置の提示を防止することが可能となる。
【００４８】
また、本開示は、以上のような特徴的な処理を実行する単語意味情報生成方法として実現することができるだけでなく、単語意味情報生成方法に含まれる特徴的なステップを実行するための処理部を備える単語意味情報生成装置などとして実現することもできる。また、このような単語意味情報生成方法に含まれる特徴的な各ステップをコンピュータに実行させるコンピュータプログラムとして実現することもできる。そして、そのようなコンピュータプログラムを、ＣＤ−ＲＯＭ等のコンピュータ読取可能な非一時的な記録媒体あるいはインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
【００４９】
以下、本開示の実施の形態について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、全ての実施の形態において、各々の内容を組み合わせることもできる。
【００５０】
（実施の形態）
図１は、本開示の一実施の形態における単語意味情報生成装置の構成の一例を表すブロック図である。単語意味情報生成装置は、例えば、コンピュータで構成され、記憶部１１０、処理部１２０、記憶部１３０、及び操作部１０８を備える。記憶部１１０、１３０は、例えば、ハードディスクドライブやソリッドステートドライブ等の書き換え可能な不揮発性のメモリーで構成される。記憶部１１０は、第一テキストコーパス１０１及び第二テキストコーパス１０２を備える。記憶部１３０は、意味情報テーブル１０７を備える。
【００５１】
処理部１２０は、例えば、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡ等のプロセッサで構成され、取得部１０３、意味情報学習部１０４、意味情報管理部１０５、およびコーパス生成部１０６を備える。操作部１０８は、例えば、キーボード、およびマウス等の入力装置ならびに情報を表示する表示装置で構成される。
【００５２】
なお、記憶部１１０、処理部１２０、及び記憶部１３０が備える各ブロックは、ＣＰＵがコンピュータを単語意味情報生成装置として機能させるプログラムを実行することで実現される。
【００５３】
第一テキストコーパス１０１は、意味情報の生成対象とする単語を含む所定の単位のテキストデータ（例えば、１文を一単位とするテキストデータ）を複数集積したものである。各テキストデータは、単語単位に分割された状態で第一テキストコーパス１０１に記録される。ここで、１文とは、例えば、句点（例えば、英語であれば、「ピリオド」、日本語であれば「○」）で区画された単語列が該当する。
【００５４】
第一テキストコーパス１０１は、所定の意味を持つ単語（以下、「第一単語」と記述する）が出現する一以上のテキストデータと、第一単語に対して意味を区別すべき単語（以下、「第二単語」と記述する）が出現する一以上のテキストデータとを複数集積したものである。
【００５５】
第二テキストコーパス１０２は、第一単語および第二単語の少なくとも一方と同じ単語（以下、「第三単語」と記述する」）が出現する一以上のテキストデータとを複数集積したものである。
【００５６】
第二テキストコーパス１０２において、第三単語が出現するテキストデータは、自然言語のテキストデータであってもよいし、自然言語に出現しない人工的に作成された単語（以下、「第四単語」と記述する。）を含むテキストデータであってもよい。第四単語が用いられる場合、第三単語を含むテキストデータは、第三単語の周辺の単語列の分布が、第一テキストコーパス１０１に含まれるテキストデータに出現する第一単語または第二単語の周辺の単語列の分布と異なるように構成されればよい。ここで、「単語の周辺の単語列の分布」とは、対象単語の前後の所定範囲に出現する単語の種類および出現個数を意味する。例えば、「音量を上げて下さい」という文章において、対象単語「上げ」の前後２語分の単語列の分布は、「音量」が１個、「を」が１個、「て」が１個、「下さい」が１個となる。なお、対象単語の前後の所定範囲は、１つの文章すべてを含むような数に設定されてもよく、文章の一部を包含する所定の数（例えば３語）に設定されてもよい。また、「単語列の分布」として、出現する単語の種類および出現個数に加え、単語の出現順序をも考慮してもよい。このように第四単語をテキストデータに含めることにより、テキストコーパス中の自然言語の単語に対して意味情報を割り当てる際の悪影響を排除することが可能となる。
【００５７】
例えば、第三単語の周辺の単語を自然言語のある一の単語で置き換えたとすると、その一の単語に対する意味情報が、第二テキストコーパス１０２での文脈の影響を受けて、その一の単語に対して、本来割り当てられるべき意味情報とは異なる意味情報が割り当てられる可能性がある。そこで、本開示では、第三単語の周辺の単語を第四単語に置き換えている。
【００５８】
ここで、第四単語としては、例えば、「＃」、「！」、「”」、「＄」、「＆」というよう自然言語には登場しない記号や、それらを組み合わせた記号列が採用できる。第四単語として一律に同じ記号列を採用すると、第三単語同士に類似する意味情報が割り当てられる可能性がある。そこで、第四単語としては、例えば、第二テキストコーパス１０２を構成する一つのテキストデータ毎に異なる記号或いは記号列が採用されてもよいし、置き換え対象となる単語毎に異なる記号或いは記号列が採用されてもよいし、対象単語が類似する単語同士においては同じ記号或いは記号列が採用されてもよい。
【００５９】
また、第二テキストコーパス１０２において、第二テキストコーパス１０２に含まれるテキストデータは、第三単語の周辺の単語列は第一単語の周辺の単語列と異なる自然言語のテキストデータで構成されてもよい。例えば、「エアコンを入れると涼しい」というテキストデータが第一テキストコーパス１０１に含まれているとする。この場合、「入れる」の反意語である「切る」に対しては「エアコンを切ると暑い」というように、「切る」の周辺に「涼しい」の反意語である「暑い」の文脈を持つテキストデータで第二テキストコーパス１０２は構成されればよい。
【００６０】
また、例えば、第一、第二テキストコーパス１０１、１０２が所定の第一言語（例えば、日本語）で構成される場合、第三単語の周辺の単語列は、第一言語とは異なる第二言語（例えば、英語）で構成されてもよい。例えば、「エアコンを入れると涼しい」というテキストコーパスが第一テキストコーパス１０１に含まれていたとすると、「エアコン／を」が「ＡＰＰＬＥ／ＡＰＰＬＥ」で置き換えられ、「と／涼しい」が「ＡＰＰＬＥ／ＡＰＰＬＥ」で置き換えられたテキストデータ「ＡＰＰＬＥ／ＡＰＰＬＥ／入れる／ＡＰＰＬＥ／ＡＰＰＬＥ」で第二テキストコーパス１０２は構成されてもよい。
【００６１】
また、第一テキストコーパス１０１に含まれる第二単語および第二テキストコーパス１０２に含まれる第三単語の例として、（１）第一テキストコーパス１０１に含まれる第一単語の反意語、（２）第一テキストコーパス１０１に含まれる第一単語と同じ意味を有し、程度の異なる単語、（３）第一テキストコーパス１０１に含まれる第一単語と同じ概念に属し、属性の異なる単語、などが挙げられる。
【００６２】
反意語の場合、例えば「上げる」、「下げる」といった反意語を区別することが可能となる。また、同じ意味を有し、程度の異なる単語の場合、例えば「ｇｏｏｄ」、「ｂｅｔｔｅｒ」、「ｂｅｓｔ」といった、同じ意味で程度の異なる単語を区別することが可能となる。また、同じ概念に属し、属性の異なる単語の場合、例えば、「色」という同一の概念に属する「赤」、「青」、「緑」といった属性の異なる単語を区別することが可能となる。
【００６３】
取得部１０３は、第一テキストコーパス１０１と第二テキストコーパス１０２とを取得する。ここで、記憶部１１０がローカルの記憶装置で構成されているのであれば、取得部１０３は、記憶部１１０から第一、第二テキストコーパス１０１、１０２を読み出せばよい。また、記憶部１１０が通信ネットワークを介して接続された外部の記憶装置で構成されているのであれば、取得部１０３は、通信ネットワークを介して記憶部１１０にアクセスし、第一、第二テキストコーパス１０１、１０２を取得すればよい。
【００６４】
意味情報学習部１０４は、第一テキストコーパス１０１および第二テキストコーパス１０２に含まれるテキストデータにおいて出現する単語を対象単語として、当該対象単語の前後の所定範囲に出現する単語列の分布が類似する単語に対して意味が近くなるように意味情報を割り当てる学習を行う。
【００６５】
ここで、対象単語に割り当てられる意味情報は、所定の次元数の意味ベクトルにより区別可能に表現されればよい。これにより、例えば、意味ベクトル間の距離を用いて単語同士の類似度を適切に判断できる。
【００６６】
この意味ベクトルは、例えば、第一、第二テキストコーパス１０１、１０２に出現する異なり語数が次元数とされればよい。これにより、種類の異なる各単語は、例えば、１−ｏｆ−Ｋの形式のベクトルで表現可能となり、学習に適した記号列で表される。
【００６７】
なお、意味情報は、所定次元のベクトル空間におけるベクトルではなく、ベクトルの終点に相当する点の座標情報として表現してもよい。
【００６８】
また、意味情報は、単語同士の意味がどの程度類似しているかを示す類似度が計算可能な所定の形式で表現されてもよい。類似度が計算可能な所定の形式としては、例えば、上述の意味ベクトルが採用されてもよいし、ベクトル空間内のある基準点（例えば原点）からの各意味ベクトルの先端までの距離が採用されてもよい。この距離を採用する場合、基準点から同一距離にある単語同士は区別できないが、基準点からの距離が異なる単語同士は区別可能となる。また、この場合、類似度がスカラーで表されるので、単語同士の類似度を算出する際の処理負担が軽減される。
【００６９】
また、意味情報学習部１０４は、学習として、ニューラルネットワーク、潜在的意味インデキシング、或いは確率的意味インデキシング等を採用すればよい。
【００７０】
意味情報管理部１０５は、意味情報学習部１０４による学習の結果である、対象単語に対する意味情報の割り当て状態を示す意味情報テーブル１０７を管理する。なお、「対象単語」は意味情報の割り当て対象となる単語を指し、第一単語及び第三単語が含まれる。また、第四単語は対象単語とされても良いし、されなくてもよい。
【００７１】
意味情報テーブル１０７は、各単語と、各単語に割り当てられた意味情報との対応関係をテーブル形式で格納するデータである。
【００７２】
コーパス生成部１０６は、第一テキストコーパス１０１を用いて第二テキストコーパス１０２を生成する。ここで、第二テキストコーパス１０２は、人為的に生成されてもよいし、自動的に生成されてもよい。人為的に生成する場合、コーパス生成部１０６は、操作部１０８が受け付けるオペレータの操作に基づいて第二テキストコーパス１０２を生成すればよい。この場合、オペレータは、例えば、第一テキストコーパスを１文ずつ編集する操作を入力することで、コーパス生成部１０６に第二テキストコーパス１０２を生成させればよい。
【００７３】
また、自動的に生成する場合、コーパス生成部１０６は、第一テキストコーパス１０１を構成するテキストデータにおいて、意味が所定の関係にある単語のペアを第一、第三単語として抽出する。そして、コーパス生成部１０６は、抽出した第一単語の前後の所定範囲に出現する単語列を所定の単語で置き換えると共に、第三単語の前後の所定範囲に出現する単語列を所定の単語で置き換え、第二テキストコーパス１０２に格納する。ここで、所定の単語としては、上述の第四単語或いは第二言語の単語が採用できる。このとき、コーパス生成部１０６は、第一単語を含むテキストデータと、その第一単語とペアとなる第三単語を含むテキストデータとに対しては、異なる所定の単語を用いて前記置き換えを行えばよい。また、意味が所定の関係を持つ第一、第三単語を抽出する際、コーパス生成部１０６は、単語同士の対応関係が事前に登録された対応テーブルを用いればよい。この対応テーブルは、例えば、第三単語として反意語が採用されるのであれば、「暑い」−「涼しい」というような反意語の対応関係を事前に登録していればよい。また、コーパス生成部１０６は、第一単語を含むテキストデータについては単語の置き換えを行わなくてもよい。
【００７４】
以下、第二テキストコーパス１０２に含まれる単語が、第一テキストコーパス１０１に含まれる単語の反意語である場合を例として説明する。
【００７５】
図２は、第二テキストコーパス１０２に含まれる単語が、第一テキストコーパス１０１に含まれる単語の反意語である場合の単語意味情報生成装置の構成の一例を表すブロック図である。なお、図２において、図１と同一の構成については同一の符号が付され、説明が省略される。
【００７６】
図２において、一般テキストコーパス２０１は、意味情報の生成対象とする単語を含む所定の単位のテキストデータ（例えば、１文を一単位とするテキストデータ）を複数集積したものである。各テキストデータは、単語単位に分割された状態で記録される。
【００７７】
図３は、一般テキストコーパス２０１として採用されるテキストコーパス２０１Ａ、２０１Ｂの例を示す図である。図３において、テキストコーパス２０１Ａは、日本語の一般テキストコーパス２０１の例である。日本語は、単語の区切りがない文字列で記述される場合がほとんどであるが、形態素解析ソフトウェア（例えば、ＭｅＣａｂ）によって、単語の区切りがない文字列データから、単語単位に分割された単語列データが得られる。図３の例では、テキストコーパス２０１Ａに含まれるテキストデータの単位が１文単位とされている。テキストコーパス２０１Ａ中の複数のテキストデータは、それぞれ、識別番号（図３のＩＤ）によって識別される。また、テキストコーパス２０１Ａは、各テキストデータを構成する単語を、出現順序に格納する。テキストデータ中の各単語は、インデックス情報（図３のＷ１〜Ｗ６・・・）によって識別される。
【００７８】
図３において、テキストコーパス２０１Ｂは、英語の一般テキストコーパス２０１の例である。英語は、空白文字によって単語の区切りが明示された文字列で記述される場合がほとんどであるので、空白文字を境に文字列を分割して、単語列データが得られる。テキストコーパス２０１Ａと同様、テキストコーパス２０１Ｂは、テキストデータの単位が１文単位とされ、識別情報（図３のＩＤ）でテキストデータが識別される。また、テキストコーパス２０１Ｂは、テキストコーパス２０１Ａと同様、テキストデータ中の各単語がインデックス情報（図３のＷ１〜Ｗ５・・・）によって識別される。
【００７９】
図４は、一般テキストコーパス２０１として採用されるテキストコーパス２０１Ｃ、２０１Ｄであって、反意語関係にある単語を含むテキストコーパス２０１Ｃ、２０１Ｄの例を示す図である。テキストコーパス２０１Ｃは、日本語のテキストコーパスの例であり、「上げ」が出現するテキストデータと、「上げ」の反意語である「下げ」が出現するテキストデータとが含まれている。また、テキストコーパス２０１Ｃには、「アップ」が出現するテキストデータと、「アップ」の反意語である「ダウン」が出現するテキストデータとが含まれている。
【００８０】
この例では、「上げ」「下げ」という単語の前後に出現する単語列が、「音量／を」「て／下さい」で共通し、「アップ」「ダウン」という単語の前後に出現する単語列が、「温度／を」「し／て／欲しい」で共通している。非特許文献１で指摘されているように、一般的に反意語に関しては、反意語が現れる文脈が類似する、すなわち、前後の単語列が一致、あるいは、類似することが多い。
【００８１】
テキストコーパス２０１Ｄは、英語のテキストコーパスの例であり、”ｉｎｃｒｅａｓｅ”が出現するテキストデータと、”ｉｎｃｒｅａｓｅ”の反意語である”ｄｅｃｒｅａｓｅ”が出現するテキストデータとが含まれている。また、テキストコーパス２０１Ｄは、”ｒａｉｓｅ”が出現するテキストデータと、”ｒａｉｓｅ”の反意語である”ｌｏｗｅｒ”が出現するテキストデータとが含まれている。この例では、”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”という単語の前後に出現する単語列が”Ｐｌｅａｓｅ””ｔｈｅ／ｖｏｌｕｍｅ”で共通し、”ｒａｉｓｅ””ｌｏｗｅｒ”という単語の前後に出現する単語列が”Ｐｌｅａｓｅ””ｔｈｅ／ｔｅｍｐｅｒａｔｕｒｅ”で共通している。
【００８２】
このように、反意語の現れる文脈が類似するという現象は、日本語以外の英語や他の言語においても共通に見られる現象である。
【００８３】
図２において、反意語テキストコーパス２０２は、一般テキストコーパス２０１に含まれる反意語関係にある単語の少なくとも一方を含む所定の単位のテキストデータ（例えば、１文を一単位とするテキストデータ）を集積したものである。反意語テキストコーパス２０２は、一般テキストコーパス２０１と同じく、各テキストデータは単語単位に分割されて記録される。
【００８４】
図５は、反意語テキストコーパス２０２に格納されるテキストデータの例を示す図である。図５において、テキストコーパス２０２Ａは、日本語の反意語テキストコーパス２０２の例である。テキストコーパス２０２Ａには、「上げ」が出現するテキストデータと、「上げ」の反意語である「下げ」が出現するテキストデータとが含まれている。「上げ」が出現するテキストデータにおいて、「上げ」の前後に現れる単語列は、「＃Ｕ１＃／＃Ｕ１＃」「＃Ｕ１＃／＃Ｕ１＃」である。すなわち、図４では、「音量／を／上げ／て／下さい」と記述されたテキストデータが「＃Ｕ１＃／＃Ｕ１＃／上げ／＃Ｕ１＃／＃Ｕ１＃」と置き換えられている。
【００８５】
一方、「下げ」の前後に現れる単語列は、「＃Ｄ１＃／＃Ｄ１＃」「＃Ｄ１＃／＃Ｄ１＃」である。すなわち、図４では、「音量／を／下げ／て／下さい」と記述されたテキストデータが、「＃Ｄ１＃／＃Ｄ１＃／下げ／＃Ｄ１＃／＃Ｄ１＃」と置き換えられている。
【００８６】
ここで、「＃Ｕ１＃」「＃Ｄ１＃」という単語（記号）は、上記の第四単語の一例であり、通常の自然言語のテキストには出現しない人工的に作成された単語である。すなわち、「＃Ｕ１＃」「＃Ｄ１＃」という単語（記号）は、一般テキストコーパス２０１のテキストデータには出現しない単語である。
【００８７】
このような第四単語「＃Ｕ１＃」「＃Ｄ１＃」を用いて、反意語関係にある「上げ」と「下げ」の前後の単語列が異なるようにテキストコーパス２０２Ａは作成されている。反意語関係にある「アップ」「ダウン」についても同様で第四単語「＃Ｕ２＃」「＃Ｄ２＃」を用いて、「アップ」と「ダウン」との前後に出現する単語列が異なるようにテキストコーパス２０２Ａは作成されている。したがって、テキストコーパス２０１Ａ、２０２Ａを用いて学習を行うと、反意語が明確に区別されるように意味情報を割り当てることができる。
【００８８】
図５において、テキストコーパス２０２Ｂは、英語の場合の反意語テキストコーパス２０２の例である。テキストコーパス２０２Ｂには、”ｉｎｃｒｅａｓｅ”が出現するテキストデータと、”ｉｎｃｒｅａｓｅ”の反意語である”ｄｅｃｒｅａｓｅ”が出現するテキストデータとが含まれている。両テキストデータにおいて、”ｉｎｃｒｅａｓｅ”の前後に現れる単語列は”＃ＩＮＣ＃””＃ＩＮＣ＃／＃ＩＮＣ＃”である。すなわち、図４では、”Ｐｌｅａｓｅ／ｉｎｃｒｅａｓｅ／ｔｈｅ／ｖｏｌｕｍｅ”と記述されたテキストデータが”＃ＩＮＣ＃／ｉｎｃｒｅａｓｅ／＃ＩＮＣ＃／＃ＩＮＣ＃”と置き換えられている。
【００８９】
一方、”ｄｅｃｒｅａｓｅ”の前後に現れる単語列は”＃ＤＥＣ＃””＃ＤＥＣ＃／＃ＤＥＣ＃”である。すなわち、図４では、”Ｐｌｅａｓｅ／ｄｅｃｒｅａｓｅ／ｔｈｅ／ｖｏｌｕｍｅ”と記述されたテキストデータが”＃ＤＥＣ＃／ｄｅｃｒｅａｓｅ／＃ＤＥＣ＃／＃ＤＥＣ＃”と置き換えられている。
【００９０】
ここで、テキストコーパス２０２Ａと同様に、”＃ＩＮＣ＃””＃ＤＥＣ＃”という単語（記号）は、上記の第四単語の一例であり、通常の自然言語のテキストには出現しない人工的に作成された単語である。
【００９１】
このような第四単語”＃ＩＮＣ＃””＃ＤＥＣ＃”を用いて、反意語関係にある”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”の前後の単語列が異なるようにテキストコーパス２０２Ｂは作成されている。反意語関係にある”ｒａｉｓｅ””ｌｏｗｅｒ”に関しても同様に、第四単語”＃ＵＰ＃””＃ＤＷ＃”を用いて、”ｒａｉｓｅ””ｌｏｗｅｒ”の前後に出現する単語が異なるようにテキストコーパス２０２Ｂは作成されている。したがって、テキストコーパス２０１Ｂ、２０２Ｂを用いて学習を行うと、反意語が明確に区別されるように意味情報を割り当てることができる。
【００９２】
なお、図５においては、対象単語に対して直前及び直後に出現する１又は２つの単語が第四単語で置き換えられているが、本開示はこれに限定されず、対象単語の直前及び直後に出現する３つ以上の単語が第四単語で置き換えられてもよい。また、第四単語で置き換えられる直前直後の単語数が一般テキストコーパス２０１における対象単語の直前直後の単語数と一致していなくてもよい。例えば、テキストコーパス２０２Ｂにおいて、”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”の直前の単語が一つのみ置き換えられている例を記載しているが、２つ以上、あるいは、１つ以下の第四単語で置き換えるとしてもよい。
【００９３】
また、テキストコーパス２０２Ｂにおいて、”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”の直前の単語が一つしか置き換えられていないのは、元のテキストデータにおいて”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”の直前に一つの単語しかないからである。”ｉｎｃｒｅａｓｅ””ｄｅｃｒｅａｓｅ”の直前に２つ以上の単語があれば、直前の２つの単語が第四単語で置き換えられる。
【００９４】
また、図５の例では、１つのテキストデータにおいては、同じ第四単語が用いられているが、これは一例であり、置き換え対象となる単語毎に異なる第四単語が用いられてもよい。
【００９５】
図２において、取得部２０３は、一般テキストコーパス２０１と反意語テキストコーパス２０２とを取得する。
【００９６】
図２において、意味ベクトル学習部２０４（意味情報学習部の一例）は、一般テキストコーパス２０１に含まれるテキストデータ、および、反意語テキストコーパス２０２に含まれるテキストデータを用いて、テキストコーパス中に出現する単語を対象単語として、対象単語の前後の所定範囲に出現する単語列の分布が類似する単語に対して意味が近くなるように意味ベクトル（意味情報の一例）を割り当てる学習を行う。意味ベクトルは、単語の意味を１次元以上の数値情報で表現したものである。
【００９７】
意味ベクトル管理部２０５（意味情報管理部の一例）は、意味ベクトル学習部２０４による学習の結果である、対象単語に対する意味情報の割り当て状態を示す意味ベクトルテーブル２０７（意味情報の一例）を管理する。
【００９８】
コーパス生成部２０６は、コーパス生成部１０６と同様、一般テキストコーパス２０１から反意語テキストコーパス２０２を生成する。
【００９９】
意味ベクトルテーブル２０７は、各単語と、各単語に対する意味ベクトルとの対応関係をテーブル形式で格納するデータである。
【０１００】
単語に対する意味ベクトルの割り当ては、類似した文脈をもつ単語、すなわち前後に類似した単語列が出現する単語に対して値が類似した意味ベクトルを割り当てるという原理が採用される。このような原理に基づいて意味ベクトルの学習を行う方式は、非特許文献２、３で開示されている方式で実現できる。
【０１０１】
本実施の形態においては、非特許文献３の方式で、単語に意味ベクトルを割り当てるものとする。ここでは、非特許文献３の方式について概略を説明する。まず、意味ベクトル学習部２０４は、式（１）に示すように、学習データとなる各テキストデータを単語数Ｔ（Ｔは１以上の整数）からなる単語列Ｗと定式化する。具体的には、意味ベクトル学習部２０４は、一般テキストコーパス２０１を構成する全てのテキストデータ及び反意語テキストコーパス２０２に含まれる全てのテキストデータに出現する全ての単語を抽出し、各単語を後述する１−ｏｆ―Ｋ形式のベクトル表現に置き換えた上で、各テキストデータを１−ｏｆ−Ｋの列である単語列Ｗとして定式化する。
【０１０２】
【数１】
2019212321.tif 000003
【０１０３】
学習の目的は式（２）で定義された値を最大化することである。
【０１０４】
式（２）は、単語列Ｗのｔ番目に位置する単語ｗｔの前後に出現するｃ（ｃは１以上の整数）個の単語ｗｔ＋ｊの条件付き出現確率の対数和を、単語列Ｗのすべての単語について平均することを意味する。ｊは単語ｗｔの前後に出現するｃ個の単語を特定するためのインデックスであり、−ｃ以上、ｃ以下、且つ、０以外の整数で表される。式（２）を最大化するということは、単語ｗｔを入力したときに出力される単語ｗｔ＋ｊが、学習データにおいて、単語ｗｔに対して前後に出現する単語になっている確率が高いことを意味する。
【０１０５】
非特許文献３では、式（２）の条件付き出現確率の計算が３層のニューラルネットワークでモデル化されている。図６は、出現確率の計算に用いられるニューラルネットワークの構成の一例を示す図である。
【０１０６】
図６に示すニューラルネットワークは、式（２）において、ｃ＝２とした場合の例が示されている。つまり、このニューラルネットワークは、単語ｗｔの前後に２個ずつ出現する４個の単語ｗｔ−２、ｗｔ−１、ｗｔ＋１、ｗｔ＋２に関する条件付き出現確率が最大化されるようにニューラルネットワークを構成する各層同士の結合状態が学習される。
【０１０７】
図６において、入力層６０１は、単語ｗｔを入力する層である。例えば、図７に示すテキストデータ「今日／の／天気／は／良く／なる／予報／が／出て／いる」中の単語「良く」が単語ｗｔであるとすると、「良く」に対応するベクトルが入力層６０１に入力される。
【０１０８】
ここで、単語ｗｔに対応するベクトルは、１−ｏｆ−Ｋ形式と呼ばれる表現形式が採用される。１−ｏｆ−Ｋ形式とは、学習データのテキストコーパスに出現する異なり語数をＫ個とすると、Ｋ個の単語を並べた時にｔ（ｔはＫ以下の整数）番目の単語に対して、Ｋ次元ベクトルのｔ番目の次元のみ「１」、他の次元は「０」を割り当てる表現形式である。
【０１０９】
通常、大規模なサイズのテキストコーパスが学習データとされるので、異なり語数は数万〜数十万となり、単語ｗｔは数万〜数十万次元のベクトルで表される。例えば、日本語の新聞記事の場合、異なり語数は約２０万語足らずであるので、新聞記事が学習データとされた場合、単語ｗｔは約２０万次元のベクトルで表される。なお、単語ｗｔがＫ次元のベクトルで表されるとすると、入力層６０１は、Ｋ個のノードで構成される。
【０１１０】
図８は、１−ｏｆ−Ｋ形式のベクトルで表された単語ｗｔの一例を示す図である。図８の例では、単語「天気」「は」「良く」「なる」「予報」が１−ｏｆ−Ｋ形式のベクトルで表されている。例えば、単語「天気」は学習データとなるＫ個の単語のうちｔ番目に並べられた単語とすると、ｔ番目の次元のみ「１」、他の次元には「０」が割り当てられる。また、単語「は」は単語「天気」の次に並べられているので、ｔ＋１番目の次元のみ「１」、他の次元には「０」が割り当てられる。他の単語も同様にして、１−ｏｆ−Ｋ形式のベクトルで表されている。このように、各単語は「１」の出現位置が異なるようにベクトルが割り当てられるので、意味ベクトル学習部２０４は、「１」が出現する位置から単語を区別できる。なお、Ｋ個の単語の並べ方は、特に限定はなく、テキストコーパスでの単語の出現順であってもよいし、ランダム順であってもよい。
【０１１１】
図６において、隠れ層６０２は、入力層６０１に入力されたベクトルの各要素を重み付き線形結合し、得られたスカラー値を活性化関数で変換して得られるベクトルの層である。
【０１１２】
隠れ層６０２のベクトルの次元数は、任意の次元数が設定できるが、通常、入力層６０１のベクトルの次元数（Ｋ次元）に比べて小さい次元数が設定される。非特許文献３では、隠れ層６０２のベクトルの次元数として、２００次元がデフォルトの次元数として設定されている。
【０１１３】
図６において、出力層６０３Ａ、６０３Ｂ、６０３Ｃ、６０３Ｄは、それぞれ、隠れ層６０２のベクトルの各要素を重み付き線形結合し、得られたスカラー値をＳｏｆｔｍａｘ関数で変換して得られるベクトルの層である。ここでは、出力層６０３Ａ、６０３Ｂ、６０３Ｃ、６０３Ｄは、それぞれ、単語ｗｔ−２、ｗｔ−１、ｗｔ＋１、ｗｔ＋２の出現確率分布を表す。テキストコーパスに含まれる異なり語数がＫ個の場合、出力層６０３Ａ、６０３Ｂ、６０３Ｃ、６０３Ｄのベクトルは、それぞれ、Ｋ次元であり、ｋ番目の次元の値が、ｋ番目の単語ｗｋの出現確率を表す。
【０１１４】
入力層６０１のベクトルをＸ、隠れ層６０２のベクトルをＨ、出力層６０３Ａ、６０３Ｂ、６０３Ｃ，６０３ＤのベクトルをＹ（−２），Ｙ（−１），Ｙ（＋１），Ｙ（＋２）とする。ベクトルＸからベクトルＨを得る式は式（３）、ベクトルＨからベクトルＹ（−２），Ｙ（−１），Ｙ（＋１），Ｙ（＋２）のｉ番目の要素を得る式は式（４）で表される。
【０１１５】
【数２】
2019212321.tif 000004
【０１１６】
式（３）のＷＸＨはベクトルＸの各要素を重み付き線形結合する際の重みを表す行列である。式（４）のベクトルＩｉ，Ｉｋは、それぞれ、ｉ番目、ｋ番目の次元のみ「１」、他の次元には「０」が割り当てられたＫ次元のベクトルである。
【０１１７】
式（４）の重み行列Ｗ（ｊ）ＨＹはベクトルＨを重み付き線形結合する際の重みを表す行列である。式（４）の分子は、ベクトルＨを、重み行列Ｗ（ｊ）ＨＹのｉ行目のベクトルで線形結合した値を引数とした指数関数値を示す。式（４）の分母は、ベクトルＨを、重み行列Ｗ（ｊ）ＨＹの１行目からＫ行目の各ベクトルで、それぞれ線形結合した値を引数とした指数関数値の和である。
【０１１８】
図９は、ベクトルＸ、Ｈ、Ｙ（−２），Ｙ（−１），Ｙ（＋１），Ｙ（＋２）を用いて図６のニューラルネットワークを表現した場合の図である。このように定式化されたニューラルネットワークを用いて、意味ベクトル学習部２０４は、テキストコーパスに含まれるテキストデータに出現する単語ｗｔを入力教師信号、単語ｗｔ＋ｊ（−ｃ≦ｊ≦ｃ，ｊ≠０）を出力教師信号として誤差逆伝搬学習によって重みを表す行列の値を決定する。
【０１１９】
非特許文献３の方法で意味ベクトル学習部２０４を構成した場合、重み行列ＷＸＨが意味ベクトルテーブル２０７として採用される。各単語を１−ｏｆ−Ｋ形式のベクトルで表すと、式（３）で示される重み行列ＷＸＨは、Ｓ行×Ｋ列の行列で表される。なお、Ｓは隠れ層６０２のベクトルの次元数である。
【０１２０】
重み行列ＷＸＨのｊ番目の列は、１−ｏｆ−Ｋ形式で表現されたベクトルであり、ｊ次元目が１となっている単語の意味ベクトルを表す。したがって、意味ベクトルテーブル２０７は、重み行列ＷＸＨに加えて、重み行列ＷＸＨの各列に割り当てられた単語の対応関係を示すテーブルが含まれてもよい。
【０１２１】
なお、重み行列Ｗ（−２）ＨＹ，Ｗ（−１）ＨＹ，Ｗ（＋１）ＨＹ，Ｗ（＋１）ＨＹは、誤差逆伝搬学習を用いた学習フェーズにおいては必要となるが、学習フェーズが終了すれば不要となる。そのため、意味ベクトルテーブル２０７が利用される利用フェーズにおいては、重み行列ＷＸＨのみが用いられる。
【０１２２】
図１０は、本開示の実施の形態における単語意味情報生成装置の学習処理を示すフローチャートである。
【０１２３】
まず、意味ベクトル学習部２０４は、ニューラルネットワークの重み行列ＷＸＨ、ＷＨＹをランダム値で初期化する（ステップＳ１０１）。次に、意味ベクトル学習部２０４は誤差逆伝搬学習による重み行列ＷＸＨ、ＷＨＹの値の変化が所定の閾値を下回り、学習が収束したか否かを判定する（ステップＳ１０２）。学習が収束したと判定した場合（Ｓ１０２でＹＥＳ）、意味ベクトル学習部２０４は、学習処理を終了する。重み行列ＷＸＨ、ＷＨＹが所定の閾値を下回らなければ、意味ベクトル学習部２０４は、学習は収束していないと判定し（ステップＳ１０２でＮＯ）、処理をステップＳ１０３に進める。
【０１２４】
次に、取得部２０３は、学習対象のテキストコーパスからテキストデータを１つ取り出す（ステップＳ１０３）。ここで、学習対象のテキストコーパスは、一般テキストコーパス２０１および反意語テキストコーパス２０２である。したがって、取得部２０３は、両テキストコーパスの中からいずれか１つのテキストデータを取り出せばよい。
【０１２５】
次に、意味ベクトル学習部２０４は、取り出された１つのテキストデータに含まれるある一つの単語ｗｔを入力教師信号、単語ｗｔの前後のｊ個の単語ｗｔ＋ｊ（−ｃ≦ｊ≦ｃ，ｊ≠０）を出力教師信号とし、誤差逆伝搬学習で重み行列ＷＸＨ、ＷＨＹの値を変化させ（ステップＳ１０４）、処理をステップＳ１０２に戻す。
【０１２６】
つまり、意味ベクトル学習部２０４は、重み行列ＷＸＨ、ＷＨＹの値の変化が閾値を下回るまで、学習対象のテキストコーパスから１つずつテキストデータを取り出すのである。なお、学習対象のテキストコーパスに含まれるテキストデータを全て取り出しても学習が収束しなければ、取得部２０３は、再度、１番目のテキストデータから順次にテキストデータを取り出していけばよい。つまり、学習処理では、学習対象のテキストコーパスの中から、テキストデータがサイクリックに取り出され、重み行列ＷＸＨ、ＷＨＹの値を収束させるのである。
【０１２７】
以上の説明の通り、意味ベクトル学習部２０４は、テキストコーパス中のテキストデータを教師信号として、ある単語を入力として、その単語の前後の単語の出現確率が高くなるように、ニューラルネットワークの重み行列を修正し、単語に割り当てる意味ベクトルを学習する。このことから、必然的に、テキストコーパスに含まれる複数の単語において、前後の単語列が類似している単語同士は、学習される意味ベクトルも類似する。これは、同じ意味をもつ単語は似た文脈で出現するという分布仮説に基づいた学習が行われるからである。
【０１２８】
しかし、現実の自然言語のテキストでは、反意語も似たような文脈を伴って出現することが多い。図４に示したテキストコーパス２０１Ｃ、２０１Ｄの例に見られるように、反意語の関係にある単語同士の文脈は、前後の単語列が一致する、あるいは、類似することが多い。そのため、普通に収集したテキストコーパスを学習データとして分布仮説に基づいた学習を行うと、反意語の関係にある単語同士に割り当てられる意味ベクトルが類似し、両者を明確に区別することが困難になる。
【０１２９】
図１１は、本実施の形態の比較例の意味ベクトルテーブルにおいて、単語「アップ」と単語「ダウン」とに割り当てられた意味ベクトルを主成分分析法で２次元に縮退させたグラフである。この比較例の意味ベクトルテーブルは、日本語版のＷｉｋｉｐｅｄｉａを形態素解析して作成されたテキストコーパスに対して、分布仮説に基づく学習を実施することで得られたものである。図１１に示されるように、単語「アップ」と単語「ダウン」とは、近接した位置に配置されており、非常に近い意味ベクトルが割り当てられていることが分かる。
【０１３０】
図１２は、本実施の形態における意味ベクトルテーブル２０７において、単語「アップ」と単語「ダウン」とに割り当てられた意味ベクトルを主成分分析法で２次元に縮退させたグラフである。図１２では、日本語版のＷｉｋｉｐｅｄｉａから作成されたテキストコーパスが一般テキストコーパス２０１として用いられている。また、単語「アップ」と単語「ダウン」とを含む反意語に対して、図５の２０２Ａに示されるような反意語の文脈が異なるように作成されたテキストコーパスが反意語テキストコーパス２０２として用いられている。そして、両テキストコーパスに対して分布仮説に基づく学習が実施され、意味ベクトルテーブル２０７が作成されている。
【０１３１】
つまり、意味ベクトルテーブル２０７においては、第一単語の意味を表す第一ベクトルと第一単語とが対応付けられて格納されるとともに、ベクトル空間において第一ベクトルとの距離が所定以上離れた第二ベクトルと第二単語とが対応付けられて格納される。
【０１３２】
図１２に示されるように、単語「アップ」と単語「ダウン」とは、図１１に比べて大幅に離れて配置されており、顕著に相違する意味ベクトルが割り当てられていることがわかる。
【０１３３】
このように、本実施の形態の単語意味情報生成装置では、通常の一般テキストコーパス２０１に加え、反意語の関係を持つ単語同士の文脈が異なるように作成された反意語テキストコーパス２０２が用いられている。そして、両テキストコーパスに対して分布仮説に基づく学習が実施されているので、反意語の関係を持つ単語同士が適切に区別されるように各単語に意味ベクトルを割り当てることが可能となる。
【０１３４】
以上、ある単語とその反意語とを区別する例を用いて本開示は説明された。本開示は、この他に、以下のような具体的な事例に応用することが可能である。
【０１３５】
（１）例えば、第一テキストコーパス１０１は、機器を操作する指示に用いられる自然言語のテキストデータを含み、第二テキストコーパス１０２は、機器の操作内容に関する単語を第三単語として含むように構成することができる。このようにすることで、例えば、「温度を上げてください」と「温度を下げてください」、「寝室のエアコンをつけてください」と「リビングのエアコンをつけてください」といった、単語列は類似するが意味が異なる指示を適切に区別し、機器の誤操作を防止することが可能となる。
【０１３６】
（２）また、第一テキストコーパス１０１は医療診断において患者による症状の説明に用いられる自然言語のテキストデータを含み、第二テキストコーパス１０２は身体の状態に関する単語を第三単語として含むように構成することができる。このようにすることで、例えば、例えば、「三日前から頭が痛い」、「三日前から頭がふらふらする」といった、単語列は類似するが意味が全く異なる症状の説明を適切に区別し、誤った診断を行うことを防止することが可能となる。
【０１３７】
（３）また、第一テキストコーパス１０１は医療診断において症状の説明または当該症状に対する処置に用いられる自然言語のテキストデータを含み、第二テキストコーパス１０２は身体の部位に関する単語を第三単語として含むように構成することができる。このようにすることで、例えば、「三日前から右手が痛い」および「三日前から腹部が痛い」、あるいは「頭を冷やしてください」および「左足を冷やしてください」といった、単語列は類似するが意味が全く異なる症状の説明または処置の説明を適切に区別し、誤った診断あるいは誤った処置の提示を防止することが可能となる。
【０１３８】
（４）また、第一テキストコーパス１０１は医療診断において症状に対する処置の説明に用いられる自然言語のテキストデータを含み、第二テキストコーパス１０２は処置内容に関する単語を第三単語として含むように構成することができる。このようにすることで、例えば、「患部を温めてください」と「患部を冷やしてください」といった、単語列は類似するが意味が全く異なる処置の説明を適切に区別し、誤った処置の提示を防止することが可能となる。
【０１３９】
次に、上記の学習で作成された意味情報テーブルの利用形態について説明する。図１３は、意味情報テーブルの利用形態の第一例を構成する家電機器３００のブロック図の一例である。
【０１４０】
家電機器３００は、テレビ、レコーダ、オーディオ装置、洗濯機、空気調和機、冷蔵庫、照明装置といった、種々の家電機器で構成される。
【０１４１】
家電機器３００は、意味情報テーブル３０１、マイク３０２、音声処理部３０３、解析部３０４、コマンド生成部３０５、およびコマンド実行部３０６を備える。意味情報テーブル３０１は、図１に示す第一、第二テキストコーパス１０１、１０２に対して、上記の学習を実施することで作成されたテーブルであり、図１の意味情報テーブル１０７に相当する。
【０１４２】
マイク３０２は、音声を電気的な音声信号に変換するものであり、ユーザの音声を収音するために用いられる。音声処理部３０３は、マイク３０２から出力された音声信号を解析し、ユーザが発話した音声を示すテキストデータを生成する。解析部３０４は、音声処理部３０３で生成されたテキストデータを意味情報テーブル３０１を用いて解析する。ここで、解析部３０４は、入力されたテキストデータを構成する各単語の意味情報を意味情報テーブル３０１を参照することで決定する。そして、解析部３０４は、決定した各単語の意味情報から、ユーザの発話内容が家電機器３００に対する操作に関するものであるか否かを判定する。そして、ユーザの発話内容が家電機器３００に対する操作に関するものであれば、解析部３０４は、その操作を示す操作情報をコマンド生成部３０５に出力する。
【０１４３】
コマンド生成部３０５は、入力された操作情報が示す操作を実行するコマンドを生成し、コマンド実行部３０６に出力する。コマンド実行部３０６は、入力されたコマンドを実行する。これにより、家電機器３００は意味情報テーブル３０１を用いて、ユーザが発話する操作内容を適切に認識できる。
【０１４４】
図１４は、意味情報テーブルの利用形態の第二例を構成する家電システムのブロック図の一例である。この家電システムは、音声認識の機能をクラウド上に存在するサーバ５００に担わせて、音声により家電機器４００を操作するものである。
【０１４５】
家電機器４００及びサーバ５００は、例えば、インターネット等の公衆通信ネットワークを介して接続されている。
【０１４６】
家電機器４００は、図１３で説明した家電機器３００と同じである。但し、第二例では、家電機器４００は、音声認識を行わないので、意味情報テーブル５０１、音声処理部５０２、解析部５０３、およびコマンド生成部５０４はサーバ５００に設けられている。
【０１４７】
マイク４０１は、図１３のマイク３０２と同じである。信号処理部４０２は、マイク４０１から入力される音声信号がノイズであるか否かを判定し、ノイズで無い場合、その音声信号を通信部４０４に出力する。通信部４０４は、入力された音声信号を通信可能なフォーマットを持つ通信信号に変換し、サーバ５００に送信する。
【０１４８】
サーバ５００の通信部５０５は、家電機器４００からの通信信号を受信し、音声信号を取り出して、音声処理部５０２に出力する。音声処理部５０２は、図１３に示す音声処理部３０３と同様、入力された音声信号を解析し、ユーザが発話した音声を示すテキストデータを生成する。解析部５０３は、図１３に示す解析部３０４と同様、音声処理部５０２で生成されたテキストデータを意味情報テーブル５０１を用いて解析し、操作情報をコマンド生成部５０４に出力する。
【０１４９】
コマンド生成部５０４は、入力された操作情報が示す操作を実行するコマンドを生成し、通信部５０５に出力する。通信部５０５は、入力されたコマンドを通信可能なフォーマットを持つ通信信号に変換し、家電機器４００に送信する。
【０１５０】
家電機器４００の通信部４０４は通信信号を受信し、受信した通信信号からヘッダー等を除去し、信号処理部４０２に出力する。信号処理部４０２は、ヘッダーが除去された通信信号が家電機器４００のコマンドである場合、そのコマンドをコマンド実行部４０３に出力する。コマンド実行部４０３は、入力されたコマンドを実行する。
【０１５１】
このように、図１４の家電システムでは、サーバ５００は、上記の学習により生成された意味情報テーブル５０１を用いて、ユーザが発話する操作内容を適切に認識し、家電機器４００にコマンドを送信することができる。
【産業上の利用可能性】
【０１５２】
本開示にかかる単語意味情報生成装置は、自然言語テキストの意味を取り扱うアプリケーションへの応用が有効である。例えば、類似の意味の文の検索、言い換え処理、対話システムにおける発話文の意味分類などに応用が可能である。
【符号の説明】
【０１５３】
１０１  第一テキストコーパス
１０２  第二テキストコーパス
１０３  取得部
１０４  意味情報学習部
１０５  意味情報管理部
１０６  コーパス生成部
１０７  意味情報テーブル
１０８  操作部
１１０  記憶部
１２０  処理部
１３０  記憶部
２０１  一般テキストコーパス
２０１Ａ、２０１Ｂ、２０１Ｃ、２０１Ｄ  テキストコーパス
２０２  反意語テキストコーパス
２０２Ａ、２０２Ｂ  テキストコーパス
２０３  取得部
２０４  意味ベクトル学習部
２０５  意味ベクトル管理部
２０６  コーパス生成部
２０７  意味ベクトルテーブル
【図１】
2019212321.tif 000005
【図２】
2019212321.tif 000006
【図３】
2019212321.tif 000007
【図４】
2019212321.tif 000008
【図５】
2019212321.tif 000009
【図６】
2019212321.tif 000010
【図７】
2019212321.tif 000011
【図８】
2019212321.tif 000012
【図９】
2019212321.tif 000013
【図１０】
2019212321.tif 000014
【図１１】
2019212321.tif 000015
【図１２】
2019212321.tif 000016
【図１３】
2019212321.tif 000017
【図１４】
2019212321.tif 000018