【解決手段】チャットシステム100において、第1文及び第2文の類似性の度合いである文間類似度を演算するサーバ装置2は、第1文及び第2文を取得する取得部231と、取得部231が取得した第1文及び第2文に基づいて、文間類似度を演算する演算部232と、を備える。演算部232は、取得部231が取得した第1文に含まれている第1単語列と、取得部231が取得した第2文に含まれている第2単語列との類似性の度合いである単語列間類似度に基づいて、第2文意味第1文側被含有尺度を演算する第1演算処理と、単語列間類似度に基づいて、第1文意味第2文側被含有尺度を演算する第2演算処理と、第2文意味第1文側被含有尺度と第1文意味第2文側被含有尺度とに基づいて、文間類似度を演算する第3演算処理と、を行う。
【発明を実施するための形態】
【0020】
以下、本発明に係る演算システム、及び演算プログラムの実施の形態について図面を参照しつつ詳細に説明する。ただし、実施の形態によって本発明が限定されるものではない。ここでは、基本的概念、及び用語を説明した後に、具体的な実施の形態について説明する。
【0021】
(基本的概念)
まず、基本的概念について説明する。本発明に係る演算システムは、文間類似度を演算するシステムであり、例えば、文間類似度を演算する専用システム、あるいは、汎用的に用いられるシステム(一例としては、汎用コンピュータ、サーバコンピュータ、あるいは、ネットワーク上に分散配置された複数のコンピュータ(つまり、いわゆるクラウドコンピュータ)等)に対して、演算プログラムをインストールして文間類似度を演算する機能を実装することにより実現されるシステム等を含む概念である。また、演算システムは、例えば、取得手段、及び演算手段を備える。
【0022】
「取得手段」とは、第1文及び第2文を取得する手段である。
【0023】
「演算手段」とは、取得手段が取得した第1文及び第2文に基づいて、文間類似度を演算する手段であり、具体的には、第1演算処理、第2演算処理、及び第3演算処理を行う手段である。
【0024】
「第1演算処理」とは、取得手段が取得した第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、取得手段が取得した第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、第2文の意味が第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する処理である。また、「第1演算処理」とは、例えば、単語列間類似度に基づいて、第2単語列の意味が第1文に含まれる程度を示す第2単語列意味第1文側被含有尺度を演算し、演算した第2単語列意味第1文側被含有尺度に基づいて、第2文意味第1文側被含有尺度を演算する処理等を含む概念である。また、「第1演算処理」とは、例えば、第2単語列意味第1文側被含有尺度に基づいて、取得手段が取得した第2文に含まれている第2単語列の集合である第2単語列群の意味が第1文に含有されている程度を示す第2単語列群意味第1文側被含有尺度を演算し、演算した第2単語列群意味第1文側被含有尺度に基づいて、第2文意味第1文側被含有尺度を演算する処理等を含む概念である。
【0025】
また、「第1演算処理」とは、例えば、第1演算処理側第1処理、第1演算処理側第2処理、及び第1演算処理側第3処理等を含む概念である。「第1演算処理側第1処理」とは、例えば、第1文における1個の第1単語列を示す分散表現の第1ベクトルと、第2文における1個の第2単語列を示す分散表現の第2ベクトルとのコサイン類似度に基づく第1演算値を演算する処理である。「第1演算処理側第2処理」とは、例えば、第1演算処理側第1処理において、第1文に含まれている第1単語列を順次適用して、当該第1演算処理側第1処理を第1単語列の個数に対応する回数分繰り返し実行し、第1単語列の個数分の第1演算値を演算する処理である。「第1演算処理側第3処理」とは、例えば、第1演算処理側第2処理で演算された第1単語列の個数分の第1演算値の内の最大値を、第2文における1個の第2単語列の意味が第1文に含まれる程度を示す第2単語列意味第1文側被含有尺度とする処理である。
【0026】
また、「第1演算処理」とは、例えば、第1演算処理側第4処理、及び第1演算処理側第5処理を更に含む概念である。「第1演算処理側第4処理」とは、例えば、第2文に含まれている第2単語列を順次適用して、第1演算処理側第1処理、第1演算処理側第2処理、及び第1演算処理側第3処理を第2単語列の個数に対応する回数分繰り返し実行し、第2単語列の個数分の第2単語列意味第1文側被含有尺度を演算する処理である。「第1演算処理側第5処理」とは、例えば、第1演算処理側第4処理で演算した第2単語列の個数分の第2単語列意味第1文側被含有尺度についての平均に対応する演算を行うことにより第2単語列群意味第1文側被含有尺度を演算する処理である。
【0027】
また、「第1演算処理」とは、例えば、第1演算処理側第1処理乃至第1演算処理側第5処理を実行し、第1単語列に含まれる単語の個数であるnがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の第2単語列群意味第1文側被含有尺度を演算し、演算した第2単語列群意味第1文側被含有尺度についての平均に対応する演算を行うことにより、第2文意味第1文側被含有尺度を演算する処理等を含む概念である。
【0028】
「第2演算処理」とは、単語列間類似度に基づいて、第1文の意味が第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する処理である。また、「第2演算処理」とは、例えば、単語列間類似度に基づいて、第1単語列の意味が第2文に含まれる程度を示す第1単語列意味第2文側被含有尺度を演算し、演算した第1単語列意味第2文側被含有尺度に基づいて、第1文意味第2文側被含有尺度を演算する等を含む概念である。「第2演算処理」とは、例えば、第1単語列意味第2文側被含有尺度に基づいて、取得手段が取得した第1文に含まれている第1単語列の集合である第1単語列群の意味が第2文に含有されている程度を示す第1単語列群意味第2文側被含有尺度を演算し、演算した第1単語列群意味第2文側被含有尺度に基づいて、第1文意味第2文側被含有尺度を演算する処理等を含む概念である。
【0029】
また、「第2演算処理」とは、例えば、第2演算処理側第1処理、第2演算処理側第2処理、及び第2演算処理側第3処理等を含む概念である。「第2演算処理側第1処理」とは、例えば、コサイン類似度に基づく第2演算値を演算する処理である。「第2演算処理側第2処理」とは、例えば、第2演算処理側第1処理において、第2文に含まれている第2単語列を順次適用して、当該第2演算処理側第1処理を第2単語列の個数に対応する回数分繰り返し実行し、第2単語列の個数分の第2演算値を演算する処理である。「第2演算処理側第3処理」とは、例えば、第2演算処理側第2処理で演算された第2単語列の個数分の第2演算値の内の最大値を、第1文における1個の第1単語列の意味が第2文に含まれる程度を示す第1単語列意味第2文側被含有尺度とする処理である。
【0030】
また、「第2演算処理」とは、例えば、第2演算処理側第4処理、及び第2演算処理側第5処理を更に含む概念である。「第2演算処理側第4処理」とは、例えば、第1文に含まれている第1単語列を順次適用して、第2演算処理側第1処理、第2演算処理側第2処理、及び第2演算処理側第3処理を第1単語列の個数に対応する回数分繰り返し実行し、第1単語列の個数分の第1単語列意味第2文側被含有尺度を演算する処理である。「第2演算処理側第5処理」とは、例えば、第2演算処理側第4処理で演算した第1単語列の個数分の第1単語列意味第2文側被含有尺度についての平均に対応する演算を行うことにより第1単語列群意味第2文側被含有尺度を演算する処理である。
【0031】
また、「第2演算処理」とは、例えば、第2演算処理側第1処理乃至第2演算処理側第5処理を実行し、第2単語列に含まれる単語の個数であるnがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の第1単語列群意味第2文側被含有尺度を演算し、演算した第1単語列群意味第2文側被含有尺度についての平均に対応する演算を行うことにより第1文意味第2文側被含有尺度を演算する処理等を含む概念である。
【0032】
「第3演算処理」とは、第1演算処理にて演算された第2文意味第1文側被含有尺度と、第2演算処理にて演算された第1文意味第2文側被含有尺度とに基づいて、文間類似度を演算する処理である。また、「第3演算処理」とは、例えば、第1演算処理にて演算された第2文意味第1文側被含有尺度と、第2演算処理にて演算された第1文意味第2文側被含有尺度との平均を文間類似度として演算する処理等を含む概念である。
【0033】
(用語)
次に、用語について説明する。
【0034】
「第1文」及び「第2文」は、演算システムでの処理の対象となる文であり、例えば、各々1個ずつの文、2個以上ずつの文、相互に異なる個数ずつの文、あるいは、相互に同じ個数の文等を含む概念である。「第1文」の一例としては、例えば、「checkoutはいつ」等が該当する。なお、「第2文」の一例としては、例えば、「チェックインチェックアウトは何時」等が該当する。なお、以下では、単語列、及び単語列群の説明では、第1文の一例を用いて説明する。
【0035】
「第1単語列」とは、第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる単語列各々である。「第1単語列」の一例としては、例えば、前述の「checkoutはいつ」において、「n」=「1」の場合の「checkout」、「は」、「いつ」各々、「n」=「2」の場合の「checkout+は」、「は+いつ」各々、及び「n」=「3」の場合の「checkout+は+いつ」等が該当する。なお、ここで例示している「+」については、単語各々を含んでいることを意味していることとし、つまり、「checkout+は」は、「checkout」と「は」を含んでいることを意味していることとして以下説明する。
【0036】
また、以下では、例えば、「n」=「1」の単語列(上述の「checkout」等)を「単語1グラム」とも称し、また、「n」=「2」の単語列(上述の「checkout+は」等)を「単語2グラム」とも称し、同様にして、「n」=「3」、「4」、・・・の単語列を「単語3グラム」、「単語4グラム」、・・・とも称して説明する。また、「n」の値を抽象化する場合、「単語nグラム」と称して説明する(つまり、単語nグラムにおいて「n」=「1」が上述の単語1グラムとなる)。
【0037】
また、「単語」とは、文を形成する基本的単位であり、例えば、意味、形、機能等の任意の観点に基づいて定まる単位等を含む概念である。
【0038】
「第2単語列」とは、第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる単語列各々である。
【0039】
「第1単語列群」とは、第1文に含まれている第1単語列の集合である。「第1単語列群」の一例としては、前述の「checkoutはいつ」において、「checkout」、「は」、「いつ」、「checkout+は」、「は+いつ」、及び「checkout+は+いつ」からなる集合等が該当する。「第2単語列群」とは、第2文に含まれている第2単語列の集合である。
【0040】
「文間類似度」とは、第1文及び第2文の相互間の意味が類似している度合いを示す概念である。「文間類似度」とは、例えば、第2文意味第1文側被含有尺度と、第1文意味第2文側被含有尺度との平均に対応する数値情報として求められる概念であり、具体的な演算については実施の形態で説明する(以下の単語列間類似度、及び各尺度の演算も同様とする)。
【0041】
「単語列間類似度」とは、第1単語列と第2単語列との類似性の度合いであり、具体的には、第1単語列の意味と第2単語列の意味との類似性の度合いであり、例えば、第1単語列を示す分散表現の第1ベクトルと、第2単語列を示す分散表現の第2ベクトルとのコサイン類似度に基づいて演算される数値情報である。
【0042】
「第2文意味第1文側被含有尺度」とは、第2文の意味が第1文に含まれる程度を示す尺度であり、つまり、第1文が第2文の意味を含む程度を示す尺度であり、例えば、少なくとも単語列間類似度に基づいて演算される数値情報等を含む概念であり、詳細には、第2単語列意味第1文側被含有尺度に基づいて演算される数値情報等を含む概念であり、より詳細には、第2単語列群意味第1文側被含有尺度に基づいて演算される数値情報等を含む概念である。
【0043】
「第2単語列群意味第1文側被含有尺度」とは、第2単語列群の意味が第1文に含有されている程度を示す尺度であり、つまり、第1文が第2単語列群の意味を含む程度を示す尺度であり、例えば、第2単語列意味第1文側被含有尺度に基づいて演算される数値情報等を含む概念である。
【0044】
「第2単語列意味第1文側被含有尺度」とは、第2単語列の意味が第1文に含まれる程度を示す尺度であり、つまり、第1文が第2単語列の意味を含む程度を示す尺度であり、例えば、単語列間類似度に基づいて演算される数値情報等を含む概念である。
【0045】
「第1文意味第2文側被含有尺度」とは、第1文の意味が第2文に含まれる程度を示す尺度であり、つまり、第2文が第1文の意味を含む程度を示す尺度であり、例えば、少なくとも単語列間類似度に基づいて演算される数値情報等を含む概念であり、詳細には、第1単語列意味第2文側被含有尺度に基づいて演算される数値情報等を含む概念であり、より詳細には、第1単語列群意味第2文側被含有尺度に基づいて演算される数値情報等を含む概念である。
【0046】
「第1単語列群意味第2文側被含有尺度」とは、第1単語列群の意味が第2文に含有されている程度を示す尺度であり、つまり、第2文が第1単語列群の意味を含む程度を示す尺度であり、例えば、第1単語列意味第2文側被含有尺度に基づいて演算される数値情報等を含む概念である。
【0047】
「第1単語列意味第2文側被含有尺度」とは、第1単語列の意味が第2文に含まれる程度を示す尺度であり、つまり、第2文が第1単語列の意味を含む程度を示す尺度であり、例えば、単語列間類似度に基づいて演算される数値情報等を含む概念である。
【0048】
そして、この演算処理の適用対象は任意であるが、例えば、演算処理をいわゆるチャットボットシステムに適用する場合を例示して説明する。
【0049】
(構成)
まず、本実施の形態に係るチャットシステムについて説明する。
図1は、本発明の実施の形態がチャットシステムのブロック図である。
【0050】
チャットシステム100は、いわゆるチャットボットシステムであり、例えば、ユーザからの問い合わせに対する回答を出力するシステムであり、一例としては、相互に通信可能に接続されている端末装置1、及びサーバ装置2を備える。なお、実際には、端末装置1は、複数個設けられているが、
図1では、説明の便宜上、1個のみが代表して図示されている。
【0051】
(構成−端末装置)
端末装置1は、問い合わせを行うユーザが携帯している携帯端末であり、例えば、いわゆるスマートフォンであり、一例としては、通信部11、タッチパッド12、ディスプレイ13、記録部14、及び制御部15を備える。
【0052】
(構成−端末装置−通信部)
通信部11は、外部装置(例えば、サーバ装置2)との間で通信するための通信手段である。この通信部11の具体的な種類や構成は任意であるが、例えば、公知の通信回路等を用いて構成することができる。
【0053】
(構成−端末装置−タッチパッド)
タッチパッド12は、ユーザの指等で押圧されることにより、当該ユーザから各種操作入力を受け付ける操作手段である。このタッチパッド12の具体的な構成は任意であるが、例えば、抵抗膜方式や静電容量方式等による操作位置検出手段を備えた公知のものを用いることができる。
【0054】
(構成−端末装置−ディスプレイ)
ディスプレイ13は、制御部15の制御に基づいて各種の画像を表示する表示手段である。このディスプレイ13の具体的な構成は任意であるが、例えば、公知の液晶ディスプレイや有機ELディスプレイの如きフラットパネルディスプレイ等を用いることができる。なお、上記のタッチパッド12とディスプレイ13と相互に重畳させてタッチパネルとして一体形成しても構わない。
【0055】
(構成−端末装置−記録部)
記録部14は、端末装置1の動作に必要なプログラム及び各種のデータを記録する記録手段であり、例えば、外部記録装置としてのフラッシュメモリ(図示省略)を用いて構成されている。ただし、フラッシュメモリに代えてあるいはフラッシュメモリと共に、ハードディスク、磁気ディスクの如き磁気的記録媒体、又はDVDやブルーレイディスクの如き光学的記録媒体を含む、その他の任意の記録媒体を用いることができる(他の装置の記録部も同様とする)。
【0056】
(構成−端末装置−制御部)
制御部15は、端末装置1を制御する制御手段であり、具体的には、CPU、当該CPU上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)、及びプログラムや各種のデータを格納するためのRAMの如き内部メモリを備えて構成されるコンピュータである(他の装置の制御部も同様とする)。特に、実施の形態に係るプログラムは、任意の記録媒体又はネットワークを介して端末装置1にインストールされることで、制御部15の各部を実質的に構成する(他の装置の制御部も同様とする)。
【0057】
(構成−サーバ装置)
サーバ装置2は、演算システムであり、例えば、通信部21、記録部22、及び制御部23を備える。
【0058】
(構成−サーバ装置−通信部)
通信部21は、外部装置(例えば、端末装置1)との間で通信するための通信手段である。この通信部21の具体的な種類や構成は任意であるが、例えば、通信部11と同様にして構成することができる。
【0059】
(構成−サーバ装置−記録部)
記録部22は、サーバ装置2の動作に必要なプログラム及び各種のデータを記録する記録手段であり、例えば、類似語特定情報データベース(以下、データベースを「DB」と称する)221、単語間類似度特定情報DB222、共起度特定情報DB223、逆文書頻度特定情報DB224、質問回答特定情報DB225を備える。
【0060】
(構成−サーバ装置−記録部−類似語特定情報DB)
類似語特定情報DB221とは、類似語特定情報を格納する類似語特定情報格納手段である。「類似語特定情報」とは、例えば、相互に意味が類似している単語nグラム(nは正の整数)を特定する情報である。この類似語特定情報DB221に特定されている類似語特定情報は任意であるが、例えば、単語1グラムである「チェックアウト」と「checkout」が相互に類似していること、単語2グラムである「チェックアウト+は」と「checkout+は」が相互に類似していること等を特定する情報が格納されていることとする。なお、この類似語特定情報DB221における類似語特定情報を格納する具体的な手法は任意であるが、例えば、管理者が不図示の入力手段(キーボード又はマウス等)を介してサーバ装置2に類似語特定情報を入力したり、あるいは、管理者が自己の端末(パーソナルコンピュータ等)からサーバ装置2に類似語特定情報を送信したりすることにより、類似語特定情報が格納されることとする。
【0061】
(構成−サーバ装置−記録部−単語間類似度特定情報DB)
単語間類似度特定情報DB222とは、単語間類似度特定情報を格納する単語間類似度特定情報格納手段である。「単語間類似度特定情報」とは、単語nグラム相互間の類似性の度合いを特定する情報である。
図2は、単語間類似度特定情報を例示した図である。「単語間類似度特定情報」は、
図2に示すように、例えば、項目「単語情報」に対応する情報と、項目「類似度情報」に対応する情報とが相互に関連付けられて格納されている。項目「単語情報」に対応する情報は、2個の単語nグラムを特定する単語情報である(
図2では、単語1グラムである「checkout」と「チェックイン」を特定する「checkout、チェックイン」、及び単語2グラムの「checkout+は」と「チェックイン+は」を特定する「checkout+は、チェックイン+は」等)。項目「類似度情報」に対応する情報は、単語列間類似度であり、単語nグラム相互間の意味についての類似性の度合いを特定する類似度情報である。この類似度情報としては任意の情報を用いることができるが、例えば、単語情報で特定されている2個の単語nグラム各々の分散表現に対応するベクトル各々のコサイン類似度に対応する数値情報を用いる場合について説明する。
図2では、例えば、最上段の情報について、「類似度情報」=「Vs(checkout、チェックイン)」は、「単語情報」=「checkout、チェックイン」が示す単語1グラムである「checkout」及び単語1グラムである「チェックイン」の各々の分散表現である各ベクトルのコサイン類似度を示す数値情報であることとして、以下説明する。なお、実際には、このコサイン類似度を示す数値情報については、「0」以上から「1」以下の数値となり、例えば、2個の単語nグラムの意味が相互に一致する場合、「1」となり、また、2個の単語nグラムの意味が相互に遠くなる(つまり、意味の類似性の度合いが下がる)につれて「0」に近い数値となり、一方、2個の単語nグラムの意味が相互に近づく(つまり、意味の類似性の度合いが上がる)につれて「1」に近い数値となる。
【0062】
そして、このような単語間類似度特定情報DB222の単語間類似度特定情報の具体的な格納手法は任意であるが、例えば、制御部23が、任意のタイミング(例えば、1週間毎、1か月毎、あるいは、後述のコーパスDBの情報が更新される毎等のタイミング)で、サーバ装置2の外部の任意のコーパスDBにアクセスし、当該DBから多数の文のデータを取得し、取得した文のデータについて任意の処理(例えば、形態素解析等の技術を用いて各文を単語に分解する処理、分解された単語について教師なし学習(word2vec、fastText等)に対応する技術を適用して2個単語nグラムの意味を示す分散表現であるベクトルを取得する処理、取得したベクトル相互間において公知の演算を行うことによりコサイン類似度を演算する処理等)を行うことにより、演算の対象となった2個の単語nグラムを示す情報を
図2の単語情報として格納し、また、当該演算されたコサイン類似度を
図2の類似度を類似度情報として格納する。
【0063】
なお、前述の「コサイン類似度を演算する処理」に関して、2個の単語1グラム(つまり、2個の単語)に対応するコサイン類似度は、公知の演算式を用いる手法等でコサイン類似度を演算することとし、2個の単語2グラム、及び2個の単語3グラム等のn=2以上の場合の単語nグラムのコサイン類似度の演算手法は任意であり、例えば、ベクトルの各要素を加算する手法や、単語nグラム中の単語の出現順にそのベクトルを連結する手法等を用いてもよい。
【0064】
「ベクトルの各要素を加算する手法」を用いる場合、具体的には、一方の単語nグラムの内の単語1グラム各々のベクトルの各要素を加算することにより、一方の単語nグラムのベクトルを作成し、また、他方の単語nグラムの内の単語1グラム各々のベクトルの各要素を加算することにより、他方の単語nグラムのベクトルを作成し、これらのベクトルについてコサイン類似度を求める演算することにより、n=2以上の場合の単語nグラムのコサイン類似度を演算してもよい。
【0065】
「単語nグラム中の単語の出現順にそのベクトルを連結する手法」を用いる場合、一方の単語nグラムの内の単語1グラム各々のベクトルを連結することにより、一方の単語nグラムのベクトルを作成し、また、他方の単語nグラムの内の単語1グラム各々のベクトルを連結することにより、他方の単語nグラムのベクトルを作成し、これらのベクトルについてコサイン類似度を求める演算することにより、n=2以上の場合の単語nグラムのコサイン類似度を演算してもよい。なお、この手法を用いた場合、前述の作成された一方及び他方の単語nグラムの次元数は、単語1グラムのベクトルの次元数のn倍となる。
【0066】
なお、これらの各手法を用いる過程において、加算や連結等の前に、単語毎の重みをその各ベクトルに掛けてもよい。この重みには単語の前述のコーパスDBから取得した文のデータにおけるIDF(逆文書頻度:Inverse Document Frequency)等を用いてもよい。なお、ここで説明した単語間類似度特定情報の格納手法は一例であり、他の任意の手法を用いて格納してもよい(後述する共起度特定情報、及び逆文書頻度特定情報も同様とする)。
【0067】
(構成−サーバ装置−記録部−共起度特定情報DB)
図1の共起度特定情報DB223は、共起度特定情報を格納する共起度特定情報格納手段である。「共起度特定情報」とは、単語nグラム相互間の共起度を特定する情報である。
図3は、共起度特定情報を例示した図である。「共起度特定情報」は、
図3に示すように、例えば、項目「単語情報」に対応する情報と、項目「共起度情報」に対応する情報とが相互に関連付けられて格納されている。項目「単語情報」に対応する情報は、
図2の同一名称の情報と同様である。項目「共起度情報」に対応する情報は、2個の単語nグラム各々の共起度を特定する共起度情報である。この共起度情報としては任意の情報を用いることができるが、例えば、前述のコーパスDBから取得した多数の文において、「「
図3の単語情報が特定する単語nグラムの内の両方の単語nグラムが含まれている文の個数」÷「
図3の単語情報が特定する単語nグラムの内の少なくとも一方が含まれている文の個数」」の演算結果の数値情報を用いる場合について説明する。
図3では、例えば、最上段の情報について、「類似度情報」=「Vc(checkout、チェックイン)」は、前述のコーパスDBから取得した多数の文において、「「checkout」及び「チェックイン」の両方の単語nグラムが含まれている文の個数」÷「「checkout」及び「チェックイン」の少なくとも一方が含まれている文の個数」の演算結果を示す数値情報であることとして、以下説明する。つまり、この共起度情報においては、2個の単語nグラムが共に使われている文が多い程、大きな数値となる。
【0068】
そして、このような共起度特定情報DB223の共起度特定情報の具体的な格納手法は任意であるが、例えば、制御部23が、任意のタイミング(例えば、単語間類似度特定情報DB222の単語間類似度特定情報の説明で記載したタイミングと同じタイミング等)で、サーバ装置2の外部の任意のコーパスDBにアクセスし、当該DBから多数の文のデータを取得し、取得した文のデータについて任意の処理(例えば、形態素解析等の技術を用いて各文を単語に分解する処理、各単語が含まれている文を特定する処理、及び分解した各単語の共起度を演算する処理等)を行うことにより、分解した各単語の共起度を演算し、演算の対象となった2個の単語nグラムを示す情報を
図3の単語情報として格納し、また、演算した共起度を示す情報を
図3の共起度情報として格納する。
【0069】
なお、前述の「各単語の共起度を演算する処理」に関して、2個の単語1グラム(つまり、2個の単語)に対応する共起度は、「「前述のコーパスDBから取得した多数の文の内の、任意の2個の単語1グラムの両方が含まれている文の個数」÷「前述のコーパスDBから取得した多数の文の内の、前述の2個の単語1グラムの内の少なくとも一方が含まれている文の個数」」の演算を行って求める。
【0070】
また、2個の単語2グラム、及び2個の単語3グラム等のn=2以上の場合の2個の単語nグラムの共起度については、「「前述のコーパスDBから取得した多数の文の内の、任意の2個の単語nグラムの両方が含まれている文の個数」÷「前述のコーパスDBから取得した多数の文の内の、前述の2個の単語nグラムの内の少なくとも一方が含まれている文の個数」」の演算を行って求めてもよいし、あるいは、以下の手法で求めてもよい。具体的には、2個の単語nグラムの内の一方側の単語nグラムに含まれる各単語1グラムと、2個の単語nグラムの内の側方側の単語nグラムに含まれる各単語1グラムとの共起度各々を演算し、これらの演算した共起度の統計値(例えば、最大値、あるいは、平均値等)を、n=2以上の場合の2個の単語nグラムの共起度として演算してもよい。
【0071】
(構成−サーバ装置−記録部−逆文書頻度特定情報DB)
図1の逆文書頻度特定情報DB224は、逆文書頻度特定情報を格納する逆文書頻度特定情報格納手段である。「逆文書頻度特定情報」とは、単語nグラムのIDF(つまり、逆文書頻度)を特定する情報である。
図4は、逆文書頻度特定情報を例示した図である。「逆文書頻度特定情報」は、
図4に示すように、例えば、項目「単語情報」に対応する情報と、項目「逆文書頻度情報」に対応する情報とが相互に関連付けられて格納されている。項目「単語情報」に対応する情報は、
図2の同一名称の情報と同様であり、1個の単語nグラムを特定する単語情報である。項目「逆文書頻度情報」に対応する情報は、単語nグラムのIDFを特定する逆文書頻度情報である。この逆文書頻度情報としては任意の情報を用いることができるが、例えば、前述のコーパスDBから取得した多数の文において、IDFを演算する所定の演算式を用いて行われる演算の演算結果の数値情報を用いる場合について説明する。なお、ここでの所定の演算式としては、例えば、「前述のコーパスDBから取得した多数の文の個数」÷「前述のコーパスDBから取得した多数の文の内の、1個の単語nグラムが含まれている文の個数」の演算結果の対数(つまり、「log」)に対して、定数(例えば、「1」等)を加算する演算式を用いてもよいし、その他の任意の演算式を用いてもよい。
図4では、例えば、最上段の情報について、「逆文書頻度情報」=「Vi(checkout)」は、前述のコーパスDBから取得した多数の文における、「checkout」についての、前述の所定の演算式を用いて行われた演算結果を示す数値情報であることとして、以下説明する。つまり、この逆文書頻度情報においては、単語nグラムが含まれている文の個数が多くなる程、小さな数値となる。
【0072】
そして、このような逆文書頻度特定情報DB224の逆文書頻度特定情報の具体的な格納手法は任意であるが、例えば、制御部23が、任意のタイミング(例えば、単語間類似度特定情報DB222の単語間類似度特定情報の説明で記載したタイミングと同じタイミング等)で、サーバ装置2の外部の任意のコーパスDBにアクセスし、当該DBから多数の文のデータを取得し、取得した文のデータについて任意の処理(例えば、形態素解析等の技術を用いて各文を単語に分解する処理、各単語が含まれている文を特定する処理、及びIDFを演算する処理等)を行うことにより、分解した各単語のIDFを演算し、演算の対象となった1個の単語nグラムを示す情報を
図4の単語情報として格納し、また、演算したIDFを示す情報を
図4の逆文書頻度情報として格納する。
【0073】
なお、前述の「IDFを演算する処理」に関して、単語1グラム(つまり、1個の単語)に対応するIDFは、所定の演算式を用いて行われる演算を行って求める。
【0074】
また、単語2グラム、及び単語3グラム等のn=2以上の場合の単語nグラムのIDFについては、単語nグラムに含まれる各単語1グラムのIDFを演算し、演算した各単語1グラムのIDFの統計値(例えば、最大値、あるいは、平均値等)を、n=2以上の場合の単語nグラムのIDFとして演算してもよい。
【0075】
(構成−サーバ装置−記録部−質問回答特定情報DB)
図1の質問回答特定情報DB225は、質問回答特定情報を格納する質問回答特定情報格納手段である。「質問回答特定情報」とは、質問と当該質問に対する回答を特定する情報である。
図5は、質問回答特定情報を例示した図である。「質問回答特定情報」は、
図5に示すように、例えば、項目「質問情報」に対応する情報と、項目「回答情報」に対応する情報とが相互に関連付けられて格納されている。項目「質問情報」に対応する情報は、質問内容を示す文を特定する質問情報である(
図4では、チャットシステム100で用いられる1個の質問の文のテキスト情報である「チェックインチェックアウトは何時」等)。なお、ここでの質問情報が特定する文を「蓄積文」とも称する。項目「回答情報」に対応する情報は、質問情報が示す質問内容に対する回答内容を示す文を特定する回答情報である(
図4では、チャットシステム100で用いられる1個の文のテキスト情報である「チェックインは15時でチェックアウトは10時です」等)。
【0076】
そして、このような質問回答特定情報DB225の質問回答特定情報の具体的な格納手法は任意であるが、例えば、管理者が、任意の手法でユーザ(例えば、ホテルの顧客等)からの想定される質問と、当該質問に対する回答とを把握した上で、不図示の入力手段(キーボード又はマウス等)を介してサーバ装置2に当該把握した質問と回答とを特定する情報を入力したり、あるいは、管理者が自己の端末(パーソナルコンピュータ等)からサーバ装置2に質問と回答とを特定する情報を送信したりすることにより、質問回答特定情報が格納されることとする。
【0077】
(構成−サーバ装置−制御部)
制御部23は、サーバ装置2を制御する制御手段である。この制御部23は、機能概念的に、例えば、取得部231、及び演算部232を備える。取得部231は、第1文及び第2文を取得する取得手段である。演算部232は、取得部231が取得した第1文及び第2文に基づいて、文間類似度を演算する演算手段であり、特に、取得部231が取得した第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、取得部231が取得した第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、第2文の意味が第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する第1演算処理と、単語列間類似度に基づいて、第1文の意味が第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する第2演算処理と、第1演算処理にて演算された第2文意味第1文側被含有尺度と、第2演算処理にて演算された第1文意味第2文側被含有尺度とに基づいて、文間類似度を演算する第3演算処理と、を行う演算手段である。そして、このような制御部23の各部によって行われる処理については、後述する。
【0078】
(処理)
次に、このように構成されるチャットシステム100によって行われる回答出力処理について説明する。
図6は、回答出力処理のフローチャートである(以下では、各ステップを「S」と称する)。回答出力処理は、サーバ装置2で行われる処理であり、概略的には、ユーザからの質問に対する回答を出力する処理である。この回答出力処理を実行するタイミングは任意であるが、例えば、サーバ装置2の電源をオンした場合に、繰り返し起動することとし、この回答出力処理が起動したところから説明する。
【0079】
ここでは、例えば、端末装置1のユーザが、端末装置1のタッチパッド12を介して、「checkoutはいつ」という質問の文を入力した場合に、端末装置1の制御部15が、ユーザに入力された文(以下、入力文)を示す入力文情報を、通信部11を介してサーバ装置2に送信し、サーバ装置2の制御部23が、当該送信された入力文情報を通信部21を介して受信し、受信した入力文情報が示す入力文の質問に対する回答を出力する場合を例示して説明する。
【0080】
図6のSA1において取得部231は、入力文を取得する。なお、実際の情報処理では、各文(入力文等)を示す各情報について処理を行っているが、以下では、説明の便宜上、「情報」という用語は適宜省略し、単に「入力文」等の用語を用いて説明する。SA1の処理は任意であるが、例えば、端末装置1から送信された入力文情報を、通信部21を介して受信した場合、当該受信した入力文情報が示す入力文を取得する。
【0081】
ここでは、例えば、端末装置1からの「checkoutはいつ」を示す入力文情報を、通信部21を介して受信した場合、当該受信した入力文情報が示す入力文として「checkoutはいつ」を取得する。
【0082】
図6のSA2において取得部231は、蓄積文を取得する。具体的には任意であるが、質問回答特定情報DB225の
図5の質問回答特定情報を参照して、未だ取得していない質問情報を1個特定し、特定した1個の質問情報が示す文を蓄積文として取得する。なお、未だ取得していない質問情報を1個特定する手法としては、例えば、過去にSA2で取得した質問情報に対して取得済フラグ(取得済であることを示す情報)を付すように構成した上で、当該フラグが付されていない質問情報を1個特定してもよい。
【0083】
ここでは、例えば、
図5の全ての質問情報に未だ取得済フラグが付されていない場合、例えば、
図5の最上段の「チェックインチェックアウトは何時」を示す質問情報を特定し、特定した質問情報が示す文である「チェックインチェックアウトは何時」を蓄積文として取得する。
【0084】
この後のSA3からSA5の処理を実行することにより、文間類似度を演算することになる。
図7は、文間類似度を演算するための数式を例示した図である。SA3からSA5では、例えば、この
図7に示す数式に対応する処理を行うこととして、以下説明する。なお、
図7の各数式の意味について、「s1」を前述の定義で説明した「第1文」とし、「s2」を前述の定義で説明した「第2文」とする場合を例示して説明する。
【0085】
まず、数式Mの「WENF(s1,s2)」は、「s1」の文と「s2」の文との文間類似度を示している。また、数式Mの「WENP(s1,s2)」は、「s1」の文が「s2」の文の意味を含む程度を示す尺度(つまり、数式M1に示すように、第2文意味第1文側被含有尺度)を示しており、また、「WENR(s1,s2)」は、「s1」の文の意味が「s2」の文に含まれる程度を示す尺度(つまり、第1文意味第2文側被含有尺度)を示している。そして、この数式Mについては、文間類似度が、第1文意味第2文側被含有尺度と第2文意味第1文側被含有尺度の平均(具体的には、調和平均)の演算を行うことにより求められることを示している。
【0086】
また、数式M1については、「WENP(s1,s2)」が「WENR(s1,s2)」における引数を入れ替えた「WENR(s2,s1)」に対応することを示している。つまり、数式M2、M2−1、及びM2−1−1に示される「WENR(s1,s2)」の演算において、引数を入れ替えて演算することにより、「WENP(s1,s2)」が求められることを示している。
【0087】
また、数式M2の右辺の分母及び分子のシグマについては、単語nグラムのnの値が「1」から「N」各々である場合の総和を示している。また、「weightn」は、重みを示しており、ここでは、例えば、単語nグラムのnの値毎に所定値が定められており、当該所定値を用いることとする。また、「WENRn(s1,s2)」は、「s1」の文の単語列群の意味が「s2」の文に含有されている程度を示す尺度(つまり、第1単語列群意味第2文側被含有尺度)を示している。そして、この数式M2については、第1文意味第2文側被含有尺度が、単語nグラムの値が「1」から「N」である場合の第1単語列群意味第2文側被含有尺度についての平均に対応する演算により求められることを示している。
【0088】
また、数式M2−1の右辺の分母及び分子のシグマについては、「s1」の文の単語nグラム全てに関する総和を示している。「n1」は、「s1」の文に含まれている1個の単語nグラムを示している。また、「similarityn(n1,n2)」は、「s1」の文の単語列の意味が「s2」の文に含有されている程度を示す尺度(つまり、第1単語列意味第2文側被含有尺度)を示している。また、「weight(n1)」は、重みを示しており、ここでは、例えば、「s1」の文の単語nグラムのIDFを用いることとする。そして、この数式M2−1については、第1単語列群意味第2文側被含有尺度が、「s1」の文の単語nグラムの全ての第1単語列意味第2文側被含有尺度についての平均に対応する演算により求められることを示している。
【0089】
また、数式M2−1−1の右辺の第1部分については、「s1」の文に含まれる1個の単語nグラムと、「s2」の文に含まれる各単語nグラムの内の何れかのnグラムとが、相互に類似している場合(つまり、類似語特定情報DB221に類似している単語nグラムとして格納されている場合)、当該「s1」の文に含まれる1個の単語nグラムについての第1単語列意味第2文側被含有尺度として「1」を演算することを示している。
【0090】
また、数式M2−1−1の右辺の第2部分については、「s1」の文に含まれる1個の単語nグラムと、「s2」の文に含まれる各単語nグラムの内の何れかのnグラムとが、相互に類似していない場合(つまり、類似語特定情報DB221に類似している単語nグラムとして格納されていない場合)の当該「s1」の文の単語列の意味が「s2」の文に含有されている程度を示す尺度(つまり、第1単語列意味第2文側被含有尺度)の求め方が示されている。
【0091】
数式M2−1−1の右辺の第2部分について具体的には、「n2」は、「s2」の文に含まれている1個の単語nグラムを示している。また、「cos(vec(n1),vec(n2))」は、「s1」の文に含まれている1個の単語nグラムと、「s2」の文に含まれている1個の単語nグラムとの単語列間類似度を示している。また、「weight(n1,n2)」は、重みを示しており、ここでは、例えば、「s1」の文の単語nグラムと「s2」の文の単語nグラムとの共起度を用いることとする。「n2 in ngramToComparen(s2),max(cos(vec(n1),vec(n2))×weight(n1,n2))」については、「s2」の文に含まれている単語nグラム各々について「max」以下の演算(つまり、「cos(vec(n1),vec(n2))×weight(n1,n2)」の演算)を各々行い、各々行った演算の結果の内の最大値を、「s1」の文に含まれる1個の単語nグラムについての第1単語列意味第2文側被含有尺度として求めることが示されている。
【0092】
なお、数式M2、M2−1,M2−1−1の重みを採用するか否かは任意であり、例えば、当該重みの内の1個以上を省略してもよいが、ここでは、
図7に示されているように、重みを用いる場合を例示して説明する。
【0093】
また、以下では、SA1で取得した入力文が
図7の「s1」(つまり、第1文)であり、SA2で取得した蓄積文が
図7の「s2」(つまり、第2文)である場合を例示して説明する。そして、以下では、「(用語)」の欄で説明した各用語において、「第1」を「入力」に適宜読み替えて、また、「第2」を「蓄積」と適宜読み替えて説明する。
【0094】
図6のSA3において演算部232は、入力文意味蓄積文側被含有尺度演算処理を実行する。
図8は、入力文意味蓄積文側被含有尺度演算処理のフローチャートである。なお、「入力文意味蓄積文側被含有尺度演算処理」とは、入力文の意味が蓄積文に含まれる程度を示す尺度である入力文意味蓄積文側被含有尺度(つまり、第1文意味第2文側被含有尺度)を演算する処理(第2演算処理)である。
【0095】
図9は、入力文意味蓄積文側被含有尺度演算処理の演算例を説明するための図である。この
図9では、項目「nの数」に対応する情報、項目「単語nグラム(入力文)」に対応する情報、項目「単語nグラム(蓄積文)」に対応する情報、項目「類似演算値」に対応する情報、項目「第1尺度値」に対応する情報、項目「第2尺度値」に対応する情報、及び項目「第3尺度値」に対応する情報が相互に関連付けられて表示されている。
【0096】
項目「nの数」に対応する情報は、単語nグラムにおけるnの数(つまり、連続する単語の個数)を示している。項目「単語nグラム(入力文)」に対応する情報は、入力文の単語nグラムを示している。項目「単語nグラム(蓄積文)」に対応する情報は、蓄積文の単語nグラムを示している。
【0097】
項目「類似演算値」に対応する情報は、
図7の数式M2−1−1の第2部分における「cos(vec(n1),vec(n2))×weight(n1,n2)」に対応する演算の演算値(第1演算値)を示している。なお、
図7では、数式M2−1−1にて第1部分に該当するために、第2部分の演算が行われなかった場合は「無」と記載されており、また、第1部分に該当する根拠の各単語nグラムの組み合わせに対応する欄(つまり、相互に類似している単語nグラムの組み合わせに対応する欄)に「無(1)」と記載されている。また、演算結果の数値については、便宜上、「Vi11」、「Vi12」、「Vi21」、「Vi31」、「Vi…」等と記載されている(後述する各尺度値の項目の情報も同様である)。また、「cos(vec(n1),vec(n2))×weight(n1,n2)」の最大値を算出するための比較対象となっている単語nグラムの組み合わせの内で、最大値に対応する値が「最大(Vi11)」等と記載されている。
【0098】
項目「第1尺度値」に対応する情報は、
図7の数式M2−1−1に対応する演算の演算値を示している。項目「第2尺度値」に対応する情報は、
図7の数式M2−1に対応する演算の演算値を示している。項目「第3尺度値」に対応する情報は、
図7の数式M2に対応する演算の演算値を示している。以下では、これらの
図9の例を適宜用いて説明する。
【0099】
図8のSB1において演算部232は、入力文を分解する。具体的には任意であるが、例えば、SA1で取得した入力文を取得し、取得した入力文を、任意の手法(例えば、形態素解析、構文解析等の公知の手法を用いて文を単語に分解する手法)を用いて単語に分解する。ここでは、例えば、SA1で取得した入力文である「checkoutはいつ」を取得し、取得した入力文である「checkoutはいつ」を、単語である「checkout」、「は」、「いつ」に分解する。
【0100】
図8のSB2において演算部232は、蓄積文を分解する。具体的には任意であるが、例えば、SA2で取得した蓄積文を取得し、取得した蓄積文を、前述の任意の手法を用いて単語に分解する。ここでは、例えば、SA2で取得した蓄積文である「チェックインチェックアウトは何時」を取得し、取得した蓄積文である「チェックインチェックアウトは何時」を、単語である「チェックイン」、「チェックアウト」、「は」、「何時」に分解する。
【0101】
図8のSB3において演算部232は、単語nグラムの最大のnである最大グラム数(つまり、単語が連続する最大数)を決定する。具体的には任意であるが、例えば、SB1で分解した単語の個数、及びSB2で分解した単語の個数の内の少ない方の個数を、最大グラム数に決定する。ここでは、例えば、SB1で分解した単語の個数が3個であり、SB2で分解した単語の個数が4個であるので、最大グラム数を3個に対応する「3」に決定する。
【0102】
次に、単語nグラムの「n」を「1」からSB3で決定した最大グラム数(ここでは、「3」)まで「1」ずつ増加させて、各「n」について
図8のSB4からSB9を実行する。つまり、
図7の数式M2−1、M2−2−1の演算を、単語nグラムの「n」が「1」の場合から「3」の場合まで繰り返し行う。
【0103】
図8のSB4において演算部232は、入力文及び蓄積文の単語nグラムを生成する。具体的には任意であるが、例えば、未だSB4が実行されていない場合、「n」を「1」として入力文及び蓄積文の単語1グラムを生成し、また、SB4が2回目以降に実行されている場合、直近に生成した単語nグラムの「n」の値に「1」を加算した値を新たな「n」として単語nグラムを生成する。なお、未だSB4が実行されていないこと、あるいは、SB4が2回目以降に実行されていること等については、SB4を実行した回数又は当該SB4を実行した場合の「n」の値が記録部22に記録されていることとし、当該記録を用いて判断するように構成してもよいし、あるいは、その他の任意の手法を採用することができる。
【0104】
また、単語nグラムの具体的な生成手法は任意であるが、例えば、入力文の単語nグラムについては、SB1で分解した各単語を取得し、分解前の入力文を参照して、当該取得した各単語相互間の入力文での位置を把握した上で、単語nグラムを生成する。ここでは、例えば、SB1で分解した各単語として「checkout」、「は」、「いつ」を取得し、分解前の入力文である「checkoutはいつ」を参照して、「checkout」が1番目、「は」が2番目、「いつ」が3番目と特定した上で、単語nグラムを生成する。特に、「n」が「1」の場合は、連続する単語の数が1個であるので、「checkout」、「は」、「いつ」を生成することになる。また、「n」が「2」の場合は、連続する単語の数が2個であるので、1番目の単語である「checkout」と2番目の単語である「は」を組み合わせた「checkout+は」を生成し、また、2番目の単語である「は」と3番目の単語である「いつ」を組み合わせた「は+いつ」を生成することになる。また、「n」が「3」の場合は、連続する単語の数が3個であるので、1番目の単語である「checkout」、2番目の単語である「は」、及び3番目の単語である「いつ」を組み合わせた「checkout+は+いつ」を生成することになる。
【0105】
また、蓄積文の単語nグラムについては、SB2で分解した各単語を取得し、分解前の蓄積文を参照して、当該取得した各単語相互間の蓄積文での位置を把握した上で、単語nグラムを生成することになるが、具体的な処理は入力文の単語nグラムの場合と同様であるので、詳細の説明を省略する。
【0106】
ここでは、例えば、未だSB4が実行されておらず、SB1を初めて実行されるので、「n」を「1」として入力文及び蓄積文の単語1グラムを生成する。具体的には、入力文の単語1グラムとして「checkout」、「は」、「いつ」を生成し、また、蓄積文の単語1グラムとして、「チェックイン」、「チェックアウト」、「は」、「何時」を生成する。
【0107】
次に、SB4で生成した入力文の各単語nグラムについてSB5からSB8を実行することにより、入力文の単語nグラムの個数分だけSB5からSB8を実行する。
【0108】
図8のSB5において演算部232は、SB4で生成した入力文及び蓄積文の単語nグラムから、未だ取得していない1個の入力文の単語nグラム、及び全ての蓄積文の単語nグラムを取得する。ここでは、例えば、未だ取得していない1個の入力文の単語1グラムとして「checkout」を取得し、また、全ての蓄積文の単語1グラムとして「チェックイン」、「チェックアウト」、「は」、「何時」を取得する。
【0109】
図8のSB6において演算部232は、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が類似している単語nグラムが存在するか否かを判定する。具体的には任意であるが、例えば、
図1の類似語特定情報DB221の類似語特定情報を参照して、SB5で取得した蓄積文の単語nグラム各々と、SB5で取得した1個の入力文の単語nグラムとの組み合わせ内の、当該類似語特定情報において相互に類似していることが特定されている組み合わせが存在するか否かに基づいて判定する。そして、類似語特定情報において相互に類似していることが特定されている組み合わせが存在する場合、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が類似している単語nグラムが存在するものと判定し(SB6のYES)、SB8に移行する。また、類似語特定情報において相互に類似していることが特定されている組み合わせが存在しない場合、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が類似している単語nグラムが存在しないものと判定し(SB6のNO)、SB7に移行する。
【0110】
ここでは、例えば、SB5で取得した蓄積文の単語1グラムである「チェックイン」、「チェックアウト」、「は」、「何時」の内の「チェックアウト」と、SB5で取得した1個の入力文の単語1グラムである「checkout」とが、類似語特定情報DB221の類似語特定情報において相互に類似していることが特定されているので、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が類似している単語nグラムが存在するものと判定し、SB8に移行する。
【0111】
次に、SB6において、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が類似している単語nグラムが存在しないものと判定した(SB6のNO)場合、SB6のSB5で取得した各蓄積文の単語nグラムについてSB7を実行することにより、蓄積文の単語nグラムの個数分だけSB7を実行する。
【0112】
図8のSB7において演算部232は、
図7の数式M2−1−1の第2部分の「cos(vec(n1),vec(n2))×weight(n1,n2)」に対応する演算を行う。
【0113】
具体的には任意であるが、例えば、まず、SB5で取得した蓄積文の単語nグラムの内の、未だSB7での演算の対象となっていない1個の蓄積文の単語nグラム(以下、「演算対象蓄積文側単語nグラム」)を特定し、単語間類似度特定情報DB222の
図2の単語間類似度特定情報を参照して、SB5で取得した1個の入力文の単語nグラム(以下、「演算対象入力文側単語nグラム」)と、前述の特定した「演算対象蓄積文側単語nグラム」との2個の単語nグラムに対応する類似度情報を前述の数式「cos(vec(n1),vec(n2))」として特定する。次に、共起度特定情報DB223の
図3の共起度特定情報を参照して、「演算対象入力文側単語nグラム」と前述の特定した「演算対象蓄積文側単語nグラム」との2個の単語nグラムに対応する共起度情報を前述の数式の「weight(n1,n2)」として特定する。次に、特定した類似度情報と共起度情報とを相互に掛け合わせる演算を行って、当該演算結果を「cos(vec(n1),vec(n2))×weight(n1,n2)」の演算結果として求める。そして、これらの処理を、SB5で取得した各蓄積文の単語nグラムについて行うことにより、蓄積文の単語nグラムの個数分だけ「cos(vec(n1),vec(n2))×weight(n1,n2)」の演算結果を求める。なお、ここでの具体例については後述する。
【0114】
図8のSB8において演算部232は、入力文の単語nグラム(入力文の単語列)の意味が蓄積文に含まれる程度を示す入力単語列意味蓄積文側被含有尺度を求める。なお、この入力単語列意味蓄積文側被含有尺度は、「第1単語列意味第2文側被含有尺度」に対応し、また、
図9の項目「第1尺度値」に対応する。具体的には任意であるが、例えば、
図7の数式M2−1−1に基づいて求める。
【0115】
詳細には、SB6の判定において、意味が類似している単語nグラムが存在するものと判定した場合(SB6のYES)(つまり、
図1の類似語特定情報DB221の類似語特定情報で相互に類似していることが特定されている場合)、SB5で取得した蓄積文の単語nグラムの中に、SB5で取得した1個の入力文の単語nグラムと意味が極めて類似(例えば、一致)しているものと存在するものとみなして、「1」を入力単語列意味蓄積文側被含有尺度とする。また、SB6の判定において、意味が類似している単語nグラムが存在しないものと判定した場合(SB6のNO)(つまり、
図1の類似語特定情報DB221の類似語特定情報で相互に類似していることが特定されていない場合)、SB7の処理を行うことになるが、このSB7で行った演算結果の内の最大値を、入力単語列意味蓄積文側被含有尺度とする。
【0116】
ここでは、例えば、SB5で取得した蓄積文の単語1グラムである「チェックイン」、「チェックアウト」、「は」、「何時」の内の「チェックアウト」と、SB5で取得した1個の入力文の単語1グラムである「checkout」とが、類似語特定情報DB221の類似語特定情報において相互に類似していることが特定されており、意味が類似している単語nグラムが存在するものと判定した(SB6のYES)ので、「1」を入力単語列意味蓄積文側被含有尺度とする。つまり、
図9の項目「nの数」=「1」の項目「単語nグラム(入力文)」=「checkout」に関連付けられている項目「第1尺度値」の欄に記載されているように、「1」を演算して求めることになる。
【0117】
そして、前述したように、入力文の単語nグラムの個数分だけSB5からSB8を繰り返し行うことになるが、次のSB5において、未だ取得していない1個の入力文の単語1グラムとして「は」を取得し、また、前述の場合と同様にして、全ての蓄積文の単語1グラムとして「チェックイン」、「チェックアウト」、「は」、「何時」を取得する。次に、SB6において、例えば、意味が類似している単語nグラムが存在しないものと判定し(SB6のNO)する。次に、SB7において、入力文の単語1グラムである「は」と、蓄積文の単語1グラムである「チェックイン」、「チェックアウト」、「は」、「何時」各々とについて、
図7の数式M2−1−1の第2部分の「cos(vec(n1),vec(n2))×weight(n1,n2)」に対応する演算を行う。
【0118】
このSB7の処理については、例えば、「演算対象蓄積文側単語nグラム」として「チェックイン」を特定し、単語間類似度特定情報DB222の
図2の単語間類似度特定情報を参照して、「演算対象入力文側単語nグラム」である「は」と、前述の特定した「演算対象蓄積文側単語nグラム」である「チェックイン」との2個の単語nグラムに対応する類似度情報である「Vs(は、チェックイン)」を
図7の数式M2−1−1の「cos(vec(n1),vec(n2))」として特定する。次に、共起度特定情報DB223の
図3の共起度特定情報を参照して、「演算対象入力文側単語nグラム」である「は」と、前述の特定した「演算対象蓄積文側単語nグラム」である「チェックイン」との2個の単語nグラムに対応する共起度情報である「Vc(は、チェックイン)」を前述の数式の「weight(n1,n2)」として特定する。次に、類似度情報である「Vs(は、チェックイン)」と共起度情報である「Vc(は、チェックイン)」とを相互に掛け合わせる演算を行って、演算結果である「Vi・・・」を「cos(vec(n1),vec(n2))×weight(n1,n2)」の演算結果として求める。そして、これらの演算を繰り返し行うことにより、例えば、
図9の項目「nの数」=「1」の項目「単語nグラム(入力文)」=「は」に関連付けられている項目「類似演算値」の欄に記載されている演算値である「Vi・・・」、「Vi・・・」、「Vi11」、「Vi・・・」を演算する。
【0119】
次に、SB8において、SB7で行った演算結果の内の最大値である「Vi11」を、入力単語列意味蓄積文側被含有尺度とする。つまり、
図9の項目「nの数」=「1」の項目「単語nグラム(入力文)」=「は」に関連付けられている項目「第1尺度値」の欄に記載されているように、「Vi11」を演算して求めることになる。次に、入力文の単語1グラムである「いつ」についても、SB5からSB8の処理を行って、SB8において、
図9の項目「nの数」=「1」の項目「単語nグラム(入力文)」=「いつ」に関連付けられている項目「第1尺度値」の欄に記載されているように、入力単語列意味蓄積文側被含有尺度として「Vi12」を演算して求めることになる。
【0120】
図8のSB9において演算部232は、入力文の単語nグラムの集合(入力文の単語列群)の意味が蓄積文に含まれる程度を示す入力単語列群意味蓄積文側被含有尺度を求める。なお、この入力単語列群意味蓄積文側被含有尺度は、「第1単語列群意味第2文側被含有尺度」に対応し、また、
図9の項目「第2尺度値」に対応する。具体的には任意であるが、例えば、
図7の数式M2−1に基づいて求める。
【0121】
詳細には、まず、単語nグラムの1個の「n」の値に対して繰り返し行われたSB5からSB8のSB8で求めた入力単語列意味蓄積文側被含有尺度を取得する。次に取得した入力単語列意味蓄積文側被含有尺度各々に関連する重みの値を特定する。なお、重みの値の特定手法は任意であるが、例えば、SB8で入力単語列意味蓄積文側被含有尺度を求める対象となった1個の入力文の単語nグラム(つまり、SB5で取得した1個の入力文の単語nグラム)を任意の手法(例えば、特定するために必要な情報が記録部22に記録されており、当該情報を参照して特定する手法等)で特定し、逆文書頻度特定情報DB224の
図4の逆文書頻度特定情報を参照して、当該特定した1個の単語nグラムに関連付けられている逆文書頻度情報を取得し、取得した逆文書頻度情報が示す値を重みとして特定する。次に、前述の取得した入力単語列意味蓄積文側被含有尺度と、取得した逆文書頻度情報とを用いて、
図7の数式M2−1の演算を行い、演算結果を入力単語列群意味蓄積文側被含有尺度とする。
【0122】
ここでは、例えば、まず、単語nグラムの「n」の値が「1」である場合に繰り返し行われたSB5からSB8のSB8で求めた入力単語列意味蓄積文側被含有尺度とし、
図9の項目「nの数」=「1」に関連付けられている項目「第1尺度値」である「1」、「Vi11」、及び「Vi12」を取得する。次に、取得した入力単語列意味蓄積文側被含有尺度である「1」、「Vi11」、及び「Vi12」各々に関連する重みの値を特定する。詳細には、逆文書頻度特定情報DB224の
図4の逆文書頻度特定情報を参照して、「1」を求める対象となった1個の入力文の単語1グラムである「checkout」に関連付けられている逆文書頻度情報である「Vi(checkout)」を特定し、また、同様にして、「Vi11」、及び「Vi12」の対象となった1個の入力文の単語1グラムである「は」、「いつ」に関連付けられている逆文書頻度情報である「Vi(は)」、「Vi(いつ)」を特定する。次に、
図7の数式M2−1に図示されているように、分子(被除数)を「1×Vi(checkout)の二乗+Vi11×Vi(は)の二乗+Vi12×Vi(いつ)の二乗」とし、分母(除数)を「Vi(checkout)の二乗+Vi(は)の二乗+Vi(いつ)の二乗」とした除算を行い、当該除算結果の平方根を求める演算を行う。例えば、
図9の項目「nの数」=「1」の項目「第2尺度値」の欄に記載されている「Vi21」を演算結果として求め、当該「Vi21」を入力単語列群意味蓄積文側被含有尺度とする。
【0123】
そして、前述したように、単語nグラムの「n」を「1」ずつ増加させて、「n」がSB3で決定した最大グラム数になるまで、各「n」について
図8のSB4からSB9を実行することになるが、次のSB4において、「n」を「2」として、
図9の項目「nの数」=「2」に関連付けられている項目「単語nグラム(入力文)」及び項目「単語nグラム(蓄積文)」の各欄の単語2グラムを生成する。そして、前述の場合と同様にして、SB5からSB9の処理を行って、SB9において、
図9の項目「nの数」=「2」の項目「第2尺度値」の欄に記載されている「Vi22」を演算結果として求めて、入力単語列群意味蓄積文側被含有尺度とする。そして、次のSB4において、「n」を「3」として、
図9の項目「nの数」=「3」に関連付けられている項目「単語nグラム(入力文)」及び項目「単語nグラム(蓄積文)」の各欄の単語3グラムを生成する。そして、前述の場合と同様にして、SB5からSB9の処理を行って、SB9において、
図9の項目「nの数」=「3」の項目「第2尺度値」の欄に記載されている「Vi23」を演算結果として求めて、入力単語列群意味蓄積文側被含有尺度とする。
【0124】
そして、単語nグラムの「n」がSB3で決定した最大グラム数までSB4からSB9を実行した後のSB10において演算部232は、入力文意味蓄積文側被含有尺度を求める。具体的には任意であるが、例えば、
図7の数式M2に基づいて求める。
【0125】
詳細には、例えば、
図7の数式M2の重みの値を特定する情報(例えば、単語nグラムの「n」が「1」から「3」の場合各々の重みの値が「Vl1」から「Vl3」(「Vl1」から「Vl3」は数値であることとする)各々であることを示す情報等)が記録部22に記録されていることとし、当該記録されている情報及びSB9で求めた入力単語列群意味蓄積文側被含有尺度を用いて、数式M2の演算を行い、演算結果を入力文意味蓄積文側被含有尺度として求める。
【0126】
ここでは、例えば、
図9の項目「第2尺度値」の欄に記載されている「Vi21」、「Vi22」、及び「Vi23」を、SB9で入力単語列群意味蓄積文側被含有尺度として演算したので、前述の記録部22に記録されて重みの値を特定する情報を参照して重みを特定した上で、分子(被除数)を「Vi21×Vl1+Vi22×Vl2+Vi23×Vl3」とし、分母(除数)を「Vl1+Vl2+Vl3」とした除算を行い、除算結果を入力文意味蓄積文側被含有尺度として求める。例えば、
図9の項目「第3尺度値」の欄に記載されている「Vi3」を演算結果として求め、当該「Vi3」を入力文意味蓄積文側被含有尺度とする。これにて、入力文意味蓄積文側被含有尺度演算処理をリターンする。
【0127】
なお、例えば、
図8のSB7の処理が、「第2演算処理側第1処理」及び「第2演算処理側第2処理」に対応する。また、例えば、
図8のSB8の処理が「第2演算処理側第3処理」に対応する。また、例えば、繰り返し行われる
図8のSB8の処理が「第2演算処理側第4処理」に対応する。また、例えば、
図8のSB9の処理が「第2演算処理側第5処理」に対応する。
【0128】
図6のSA4において演算部232は、蓄積文意味入力文側被含有尺度演算処理を実行する。
図10は、蓄積文意味入力文側被含有尺度演算処理のフローチャートである。なお、「蓄積文意味入力文側被含有尺度演算処理」とは、蓄積文の意味が入力文に含まれる程度を示す尺度である蓄積文意味入力文側被含有尺度(第2文意味第1文側被含有尺度)を演算する処理(第1演算処理)である。
【0129】
図11は、蓄積文意味入力文側被含有尺度演算処理の演算例を説明するための図である。この
図11の各項目の情報は、
図9の各項目と同様な情報である。
【0130】
なお、蓄積文意味入力文側被含有尺度演算処理については、
図7の数式M1に対応する処理であり、つまり、前述の
図8の入力文意味蓄積文側被含有尺度演算処理において、入力文を蓄積文を相互に入れ替えた処理であるので、概要のみ説明する。
【0131】
図10のSC1からSC3において、
図8のSB1からSB3と同様な処理を行う。次に、単語nグラムの「n」を「1」からSB3で決定した最大グラム数(ここでは、「3」)まで「1」ずつ増加させて、各「n」について
図10のSC4からSC9を実行する。
図10のSC4において、
図8のSB4と同様な処理を行う。
【0132】
次に、SC4で生成した蓄積文の各単語nグラムについてSC5からSC8を実行することにより、蓄積文の単語nグラムの個数分だけSC5からSC8を実行する。
【0133】
図10のSC5において演算部232は、SC4で生成した入力文及び蓄積文の単語nグラムから、未だ取得していない1個の蓄積文の単語nグラム、及び全ての入力文の単語nグラムを取得する。具体的には
図8のSB5と同様な処理を行う。
【0134】
図10のSC6において演算部232は、SC5で取得した入力文の単語nグラムの中に、SC5で取得した1個の蓄積文の単語nグラムと意味が類似している単語nグラムが存在するか否かを判定する。具体的には
図8のSB6と同様な処理を行う。
【0135】
図10のSC6において、SC5で取得した入力文の単語nグラムの中に、SC5で取得した1個の蓄積文の単語nグラムと意味が類似している単語nグラムが存在しないものと判定した(SC6のNO)後のSC7において演算部232は、
図7の数式M2−1−1の第2部分の「cos(vec(n1),vec(n2))×weight(n1,n2)」に対応する演算を行う。ここでは、例えば、
図11の項目「類似演算値」に対応する演算値(第1演算値)を演算で求める。
【0136】
図10のSC8において演算部232は、蓄積文の単語nグラム(蓄積文の単語列)の意味が入力文に含まれる程度を示す蓄積単語列意味入力文側被含有尺度を求める。なお、この蓄積単語列意味入力文側被含有尺度は、「第2単語列意味第1文側被含有尺度」に対応し、また、
図11の項目「第1尺度値」に対応する。具体的には
図8のSB8と同様な処理を行う。ここでは、例えば、
図11の項目「第1尺度値」に対応する情報を演算で求める。
【0137】
図10のSC9において演算部232は、蓄積文の単語nグラムの集合(蓄積文の単語列群)の意味が入力文に含まれる程度を示す蓄積単語列群意味入力文側被含有尺度を求める。なお、この蓄積単語列群意味入力文側被含有尺度は、「第2単語列群意味第1文側被含有尺度」に対応し、また、
図11の項目「第2尺度値」に対応する。具体的には
図8のSB9と同様な処理を行う。ここでは、例えば、
図11の項目「第2尺度値」に対応する情報を演算で求める。
【0138】
そして、単語nグラムの「n」がSC3で決定した最大グラム数までSC4からSC9を実行した後のSC10において演算部232は、蓄積文意味入力文側被含有尺度を求める。具体的には
図8のSB10と同様な処理を行う。ここでは、例えば、
図11の項目「第3尺度値」に対応する情報を演算で求める。これにて、蓄積文意味入力文側被含有尺度演算処理をリターンする。
【0139】
なお、例えば、
図10のSC7の処理が、「第1演算処理側第1処理」及び「第1演算処理側第2処理」に対応する。また、例えば、
図10のSC8の処理が「第1演算処理側第3処理」に対応する。また、例えば、繰り返し行われる
図10のSC8の処理が「第1演算処理側第4処理」に対応する。また、例えば、
図10のSC9の処理が「第1演算処理側第5処理」に対応する。
【0140】
図6のSA5において演算部232は、文間類似度を演算する。なお、ここでの処理が「第3演算処理」に対応する。具体的には任意であるが、例えば、SA3で求めた入力文意味蓄積文側被含有尺度と、SA4で求めた蓄積文意味入力文側被含有尺度とを取得し、これらの各尺度を用いて
図7の数式Mの演算を行い、演算結果を文間類似度とする。ここでは、例えば、SA3で求めた入力文意味蓄積文側被含有尺度として
図9の項目「第3尺度値」の欄の「Vi3」を取得し、また、SA4で求めた蓄積文意味入力文側被含有尺度として
図11の項目「第3尺度値」の欄の「Vs3」を取得し、分子(被除数)を「2×Vs3×Vi3」とし、分母(除数)を「Vs3+Vi3」として除算を行い、除算結果を文間類似度とする。
【0141】
図6のSA6において制御部23は、入力文と全ての蓄積文との文間類似度を演算したか否かを判定する。具体的には任意であるが、例えば、質問回答特定情報DB225の
図5の質問回答特定情報において、前述の取得済フラグに着目して、全ての質問情報についてSA2で取得し取得済であるか否かに基づいて判定する。そして、全ての質問情報についてSA2で取得したわけではないものと判定した場合、入力文と全ての蓄積文との文間類似度を演算したわけではないものと判定し(SA6のNO)、SA2に移行する。また、全ての質問情報についてSA2で取得したものと判定した場合、入力文と全ての蓄積文との文間類似度を演算したものと判定し(SA6のYES)、SA7に移行する。
【0142】
ここでは、例えば、SA1で取得した入力文と、質問回答特定情報DB225の
図5の質問回答特定情報における全ての質問情報が示す文(蓄積文)との文間類似度を演算した後、入力文と全ての蓄積文との文間類似度を演算したものと判定し、SA7に移行することになる。
【0143】
図6のSA7において制御部23は、回答を出力する。具体的には任意であるが、例えば、繰り返し行われるSA5で演算した文間類似度を取得し、取得した文間類似度の内の数値が最大となる文間類似度を特定し、特定した文間類似度の演算の対象となった蓄積文を特定し、質問回答特定情報DB225の
図5の質問回答特定情報を参照して、当該特定した蓄積文に対応する回答情報を取得する。次に、制御部23は、取得した回答情報を、通信部21を介して、前述の入力文情報を送信した端末装置1に対して送信する。一方、端末装置1の制御部15は、サーバ装置2から送信された回答情報を、通信部11を介して受信し、受信した当該回答情報が示す文を、前述のタッチパッド12を介してユーザに入力された質問に対する回答としてディスプレイ13に表示する。
【0144】
ここでは、例えば、繰り返し行われるSA5で演算した文間類似度の数値の内の最大となるものが、入力文である「checkoutはいつ」と蓄積文である「チェックインチェックアウトは何時」との文間類似度である場合、当該文間類似度を特定し、特定した文間類似度の演算の対象となった蓄積文である「チェックインチェックアウトは何時」を特定し、質問回答特定情報DB225の
図5の質問回答特定情報を参照して、当該特定した蓄積文である「チェックインチェックアウトは何時」に対応する回答情報である「チェックインは15時でチェックアウトは10時です」を取得する。次に、制御部23は、取得した回答情報である「チェックインは15時でチェックアウトは10時です」を、通信部21を介して、前述の入力文情報である「checkoutはいつ」を示す情報を送信した端末装置1に対して送信する。一方、端末装置1の制御部15は、「チェックインは15時でチェックアウトは10時です」を、「checkoutはいつ」に対する回答としてディスプレイ13に表示する。
【0145】
(実施の形態の効果)
このように本実施の形態によれば、単語列間類似度に基づいて蓄積文意味入力文側被含有尺度を演算し、また、単語列間類似度に基づいて入力文意味蓄積文側被含有尺度を演算した上で、これらの演算結果に基づいて文間類似度を演算することにより、例えば、少なくとも単語列の単位(つまり、比較的小さい粒度の単位)の類似度を用いて文間類似度を演算するので、入力文及び蓄積文相互間の意味の類似性の度合いを的確に把握することが可能となる。また、蓄積文意味入力文側被含有尺度及び入力文意味蓄積文側被含有尺度に基づいて文間類似度を演算するので、入力文及び蓄積文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0146】
また、単語列間類似度に基づいて蓄積単語列意味入力文側被含有尺度を演算し、演算結果に基づいて蓄積文意味入力文側被含有尺度を演算し、また、単語列間類似度に基づいて入力単語列意味蓄積文側被含有尺度を演算し、演算結果に基づいて入力文意味蓄積文側被含有尺度を演算することにより、例えば、単語列の単位(つまり、比較的小さい粒度の単位)で意味が文に含まれる程度を考慮することができるので、入力文及び蓄積文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0147】
また、蓄積単語列意味入力文側被含有尺度に基づいて蓄積単語列群意味入力文側被含有尺度を演算し、演算結果に基づいて蓄積文意味入力文側被含有尺度を演算し、また、入力単語列意味蓄積文側被含有尺度に基づいて入力単語列群意味蓄積文側被含有尺度を演算し、演算結果に基づいて入力単語列群意味蓄積文側被含有尺度を演算することにより、例えば、単語列群の単位(つまり、単語列よりも大きな粒度の単位)で意味が文に含まれる程度も考慮することができるので、入力文及び蓄積文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0148】
また、第1単語列の個数分の第1演算値(コサイン類似度に基づく演算値)の内の最大値を、蓄積文における1個の第2単語列の意味が入力文に含まれる程度を示す蓄積単語列意味入力文側被含有尺度とし、また、第2単語列の個数分の第2演算値(コサイン類似度に基づく演算値)の内の最大値を、入力文における1個の第1単語列の意味が蓄積文に含まれる程度を示す入力単語列意味蓄積文側被含有尺度とすることにより、例えば、蓄積単語列意味入力文側被含有尺度、及び入力単語列意味蓄積文側被含有尺度を適切に演算することができるので、入力文及び蓄積文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0149】
また、第2単語列の個数分の蓄積単語列意味入力文側被含有尺度を演算し、演算した蓄積単語列意味入力文側被含有尺度についての平均に対応する演算を行うことにより蓄積単語列群意味入力文側被含有尺度を演算し、また、第1単語列の個数分の入力単語列意味蓄積文側被含有尺度を演算し、演算した入力単語列意味蓄積文側被含有尺度についての平均に対応する演算を行うことにより入力単語列群意味蓄積文側被含有尺度を演算することにより、例えば、蓄積単語列群意味入力文側被含有尺度、及び入力単語列群意味蓄積文側被含有尺度を適切に演算することができるので、入力文及び蓄積文相互間の意味の類似性の度合いを的確に把握することが可能となる。
【0150】
また、nがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の蓄積単語列群意味入力文側被含有尺度を演算し、演算した蓄積単語列群意味入力文側被含有尺度についての平均に対応する演算を行うことにより、蓄積文意味入力文側被含有尺度を演算し、また、nがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の入力単語列群意味蓄積文側被含有尺度を演算し、演算した入力単語列群意味蓄積文側被含有尺度についての平均に対応する演算を行うことにより、入力文意味蓄積文側被含有尺度を演算した上で、蓄積文意味入力文側被含有尺度と入力文意味蓄積文側被含有尺度との平均を文間類似度として演算することにより、例えば、蓄積文意味入力文側被含有尺度、及び入力文意味蓄積文側被含有尺度を適切に演算することができるので、入力文及び蓄積文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0151】
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した本発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【0152】
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏したりすることがある。
【0153】
(分散や統合について)
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散や統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散又は統合して構成できる。また、本出願における「装置」とは、単一の装置によって構成されたものに限定されず、複数の装置によって構成されたものを含む。
【0154】
(形状、数値、構造、時系列について)
実施の形態や図面において例示した構成要素に関して、形状、数値、又は複数の構成要素の構造若しくは時系列の相互関係については、本発明の技術的思想の範囲内において、任意に改変及び改良することができる。
【0155】
(重みの値について)
また、上記実施の形態では、
図7の各数式の重みの値を任意に変更してもよい。具体的には、数式M2−1、M2−1−1の重みの値として所定値(予め定められている値)を用いてもよいし、あるいは、前述したように、各重みの値を省略してもよい。なお、数式M2についても同様としてもよい。
【0156】
(処理フローについて)
また、上記実施の形態では、
図7の各数式の演算を実施する処理フローとして、
図8及び
図10の処理フローを実行する場合について説明した、これに限らず、
図7の演算を行う限りにおいて他の任意のフローを実行してもよい。
【0157】
(入力文意味蓄積文側被含有尺度演算処理等について)
また、上記実施の形態の
図6のSA3の入力文意味蓄積文側被含有尺度演算処理では、入力文側及び蓄積文側において単語nグラムの「n」の値が相互に同じである場合について説明したが、これに限らない。例えば、「n」の値を相互に異ならせて処理を行ってもよい。この場合、任意の手法(例えば、前述の「ベクトルの各要素を加算する手法」で説明した手法、あるいは、その他の公知の手法等)でベクトルの次元を相互に一致させて処理を行ってもよい。なお、
図6のSA4の蓄積文意味入力文側被含有尺度演算処理についても同様である。
【0158】
(類似の判定について)
また、上記実施の形態の
図8のSB6の類似の判定手法を任意に変更してもよい。例えば、
図1の類似語特定情報DB221の類似語特定情報として、「n」の値の相互に異なる単語nグラムが相互に類似していることを特定する情報も記録されていることとし、当該記録されている情報に基づいて、「n」の値に関わらずに蓄積文の単語nグラムを全て取得し、そのうちの少なくとも1個の単語nグラムと、SB5で取得した1個の入力文の単語nグラムが相互に類似しているか否かを判定してもよい。なお、
図10のSC6の処理についても同様である。
【0159】
(適用について)
また、上記実施の形態では、
図7の各数式の演算に基づいてチャットシステム100を実現する場合について説明したが、これに限らない。
図7の各数式の演算を行って、単に文間類似度を演算するのみシステムに適用してもよい。
【0160】
(付記)
付記1の演算システムは、第1文及び第2文の類似性の度合いである文間類似度を演算する演算システムであって、前記第1文及び前記第2文を取得する取得手段と、前記取得手段が取得した前記第1文及び前記第2文に基づいて、前記文間類似度を演算する演算手段と、を備え、前記演算手段は、前記取得手段が取得した前記第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、前記取得手段が取得した前記第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、前記第2文の意味が前記第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する第1演算処理と、前記単語列間類似度に基づいて、前記第1文の意味が前記第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する第2演算処理と、前記第1演算処理にて演算された前記第2文意味第1文側被含有尺度と、前記第2演算処理にて演算された前記第1文意味第2文側被含有尺度とに基づいて、前記文間類似度を演算する第3演算処理と、を行う。
【0161】
付記2の演算システムは、付記1に記載の演算システムにおいて、前記演算手段は、前記第1演算処理において、前記単語列間類似度に基づいて、前記第2単語列の意味が前記第1文に含まれる程度を示す第2単語列意味第1文側被含有尺度を演算し、演算した前記第2単語列意味第1文側被含有尺度に基づいて、前記第2文意味第1文側被含有尺度を演算し、前記第2演算処理において、前記単語列間類似度に基づいて、前記第1単語列の意味が前記第2文に含まれる程度を示す第1単語列意味第2文側被含有尺度を演算し、演算した前記第1単語列意味第2文側被含有尺度に基づいて、前記第1文意味第2文側被含有尺度を演算する。
【0162】
付記3の演算システムは、付記2に記載の演算システムにおいて、前記演算手段は、前記第1演算処理において、前記第2単語列意味第1文側被含有尺度に基づいて、前記取得手段が取得した前記第2文に含まれている前記第2単語列の集合である第2単語列群の意味が前記第1文に含有されている程度を示す第2単語列群意味第1文側被含有尺度を演算し、演算した前記第2単語列群意味第1文側被含有尺度に基づいて、前記第2文意味第1文側被含有尺度を演算し、前記第2演算処理において、前記第1単語列意味第2文側被含有尺度に基づいて、前記取得手段が取得した前記第1文に含まれている前記第1単語列の集合である第1単語列群の意味が前記第2文に含有されている程度を示す第1単語列群意味第2文側被含有尺度を演算し、演算した前記第1単語列群意味第2文側被含有尺度に基づいて、前記第1文意味第2文側被含有尺度を演算する。
【0163】
付記4の演算システムは、付記3に記載の演算システムにおいて、前記演算手段は、前記第1演算処理において、前記第1文における1個の前記第1単語列を示す分散表現の第1ベクトルと、前記第2文における1個の前記第2単語列を示す分散表現の第2ベクトルとのコサイン類似度に基づく第1演算値を演算する第1演算処理側第1処理と、前記第1演算処理側第1処理において、前記第1文に含まれている前記第1単語列を順次適用して、当該第1演算処理側第1処理を前記第1単語列の個数に対応する回数分繰り返し実行し、前記第1単語列の個数分の前記第1演算値を演算する第1演算処理側第2処理と、前記第1演算処理側第2処理で演算された前記第1単語列の個数分の前記第1演算値の内の最大値を、前記第2文における1個の前記第2単語列の意味が前記第1文に含まれる程度を示す前記第2単語列意味第1文側被含有尺度とする第1演算処理側第3処理と、を行い、前記第2演算処理において、前記コサイン類似度に基づく第2演算値を演算する第2演算処理側第1処理と、前記第2演算処理側第1処理において、前記第2文に含まれている前記第2単語列を順次適用して、当該第2演算処理側第1処理を前記第2単語列の個数に対応する回数分繰り返し実行し、前記第2単語列の個数分の前記第2演算値を演算する第2演算処理側第2処理と、前記第2演算処理側第2処理で演算された前記第2単語列の個数分の前記第2演算値の内の最大値を、前記第1文における1個の前記第1単語列の意味が前記第2文に含まれる程度を示す前記第1単語列意味第2文側被含有尺度とする第2演算処理側第3処理と、を行う。
【0164】
付記5の演算システムは、付記4に記載の演算システムにおいて、前記演算手段は、前記第1演算処理において、前記第2文に含まれている前記第2単語列を順次適用して、前記第1演算処理側第1処理、前記第1演算処理側第2処理、及び前記第1演算処理側第3処理を、前記第2単語列の個数に対応する回数分繰り返し実行し、前記第2単語列の個数分の前記第2単語列意味第1文側被含有尺度を演算する第1演算処理側第4処理と、前記第1演算処理側第4処理で演算した前記第2単語列の個数分の前記第2単語列意味第1文側被含有尺度についての平均に対応する演算を行うことにより、前記第2単語列群意味第1文側被含有尺度を演算する第1演算処理側第5処理と、を更に行い、前記第2演算処理において、前記第1文に含まれている前記第1単語列を順次適用して、前記第2演算処理側第1処理、前記第2演算処理側第2処理、及び前記第2演算処理側第3処理を、前記第1単語列の個数に対応する回数分繰り返し実行し、前記第1単語列の個数分の前記第1単語列意味第2文側被含有尺度を演算する第2演算処理側第4処理と、前記第2演算処理側第4処理で演算した前記第1単語列の個数分の前記第1単語列意味第2文側被含有尺度についての平均に対応する演算を行うことにより、前記第1単語列群意味第2文側被含有尺度を演算する第2演算処理側第5処理と、を更に行う。
【0165】
付記6の演算システムは、付記5に記載の演算システムにおいて、前記演算手段は、前記第1演算処理において、前記第1演算処理側第1処理乃至前記第1演算処理側第5処理を実行し、前記第1単語列に含まれる単語の個数であるnがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の前記第2単語列群意味第1文側被含有尺度を演算し、演算した前記第2単語列群意味第1文側被含有尺度についての平均に対応する演算を行うことにより、前記第2文意味第1文側被含有尺度を演算し、前記第2演算処理において、前記第2演算処理側第1処理乃至前記第2演算処理側第5処理を実行し、前記第2単語列に含まれる単語の個数であるnがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の前記第1単語列群意味第2文側被含有尺度を演算し、演算した前記第1単語列群意味第2文側被含有尺度についての平均に対応する演算を行うことにより、前記第1文意味第2文側被含有尺度を演算し、前記第3演算処理において、前記第1演算処理にて演算された前記第2文意味第1文側被含有尺度と、前記第2演算処理にて演算された前記第1文意味第2文側被含有尺度との平均を前記文間類似度として演算する。
【0166】
付記7の演算プログラムは、第1文及び第2文の類似性の度合いである文間類似度を演算する演算プログラムであって、コンピュータを、前記第1文及び前記第2文を取得する取得手段と、前記取得手段が取得した前記第1文及び前記第2文に基づいて、前記文間類似度を演算する演算手段と、として機能させ、前記演算手段は、前記取得手段が取得した前記第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、前記取得手段が取得した前記第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、前記第2文の意味が前記第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する第1演算処理と、前記単語列間類似度に基づいて、前記第1文の意味が前記第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する第2演算処理と、前記第1演算処理にて演算された前記第2文意味第1文側被含有尺度と、前記第2演算処理にて演算された前記第1文意味第2文側被含有尺度とに基づいて、前記文間類似度として演算する第3演算処理と、を行う。
【0167】
(付記の効果)
付記1に記載の演算システム、及び付記7に記載の演算システムによれば、単語列間類似度に基づいて第2文意味第1文側被含有尺度を演算し、また、単語列間類似度に基づいて第1文意味第2文側被含有尺度を演算した上で、これらの演算結果に基づいて文間類似度を演算することにより、例えば、少なくとも単語列の単位(つまり、比較的小さい粒度の単位)の類似度を用いて文間類似度を演算するので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。また、第2文意味第1文側被含有尺度及び第1文意味第2文側被含有尺度に基づいて文間類似度を演算するので、第1文及び第2文相互間の意味の類似性の度合いをより的確に把握することが可能となる。
【0168】
付記2に記載の演算システムによれば、単語列間類似度に基づいて第2単語列意味第1文側被含有尺度を演算し、演算結果に基づいて第2文意味第1文側被含有尺度を演算し、また、単語列間類似度に基づいて第1単語列意味第2文側被含有尺度を演算し、演算結果に基づいて第1文意味第2文側被含有尺度を演算することにより、例えば、単語列の単位(つまり、比較的小さい粒度の単位)で意味が文に含まれる程度を考慮することができるので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。
【0169】
付記3に記載の演算システムによれば、第2単語列意味第1文側被含有尺度に基づいて第2単語列群意味第1文側被含有尺度を演算し、演算結果に基づいて第2文意味第1文側被含有尺度を演算し、また、第1単語列意味第2文側被含有尺度に基づいて第1単語列群意味第2文側被含有尺度を演算し、演算結果に基づいて第1文意味第2文側被含有尺度を演算することにより、例えば、単語列群の単位(つまり、単語列よりも大きな粒度の単位)で意味が文に含まれる程度も考慮することができるので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。
【0170】
付記4に記載の演算システムによれば、第1単語列の個数分の第1演算値(コサイン類似度に基づく演算値)の内の最大値を、第2文における1個の第2単語列の意味が第1文に含まれる程度を示す第2単語列意味第1文側被含有尺度とし、また、第2単語列の個数分の第2演算値(コサイン類似度に基づく演算値)の内の最大値を、第1文における1個の第1単語列の意味が第2文に含まれる程度を示す第1単語列意味第2文側被含有尺度とすることにより、例えば、第2単語列意味第1文側被含有尺度、及び第1単語列意味第2文側被含有尺度を適切に演算することができるので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。
【0171】
付記5に記載の演算システムによれば、第2単語列の個数分の第2単語列意味第1文側被含有尺度を演算し、演算した第2単語列意味第1文側被含有尺度についての平均に対応する演算を行うことにより第2単語列群意味第1文側被含有尺度を演算し、また、第1単語列の個数分の第1単語列意味第2文側被含有尺度を演算し、演算した第1単語列意味第2文側被含有尺度についての平均に対応する演算を行うことにより第1単語列群意味第2文側被含有尺度を演算することにより、例えば、第2単語列群意味第1文側被含有尺度、及び第1単語列群意味第2文側被含有尺度を適切に演算することができるので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。
【0172】
付記6に記載の演算システムによれば、nがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の第2単語列群意味第1文側被含有尺度を演算し、演算した第2単語列群意味第1文側被含有尺度についての平均に対応する演算を行うことにより、第2文意味第1文側被含有尺度を演算し、また、nがa(aは正の整数)からb(bはaより大きな正の整数)各々である場合の第1単語列群意味第2文側被含有尺度を演算し、演算した第1単語列群意味第2文側被含有尺度についての平均に対応する演算を行うことにより、第1文意味第2文側被含有尺度を演算した上で、第2文意味第1文側被含有尺度と第1文意味第2文側被含有尺度との平均を文間類似度として演算することにより、例えば、第2文意味第1文側被含有尺度、及び第1文意味第2文側被含有尺度を適切に演算することができるので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。
上述した課題を解決し、目的を達成するために、請求項1に記載の演算システムは、第1文及び第2文の類似性の度合いである文間類似度を演算する演算システムであって、前記第1文及び前記第2文を取得する取得手段と、前記取得手段が取得した前記第1文及び前記第2文に基づいて、前記文間類似度を演算する演算手段と、を備え、前記演算手段は、前記取得手段が取得した前記第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、前記取得手段が取得した前記第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、前記第2文の意味が前記第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する第1演算処理と、前記単語列間類似度に基づいて、前記第1文の意味が前記第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する第2演算処理と、前記第1演算処理にて演算された前記第2文意味第1文側被含有尺度と、前記第2演算処理にて演算された前記第1文意味第2文側被含有尺度とに基づいて、前記文間類似度を演算する第3演算処理と、を行
に記載の演算プログラムは、第1文及び第2文の類似性の度合いである文間類似度を演算する演算プログラムであって、コンピュータを、前記第1文及び前記第2文を取得する取得手段と、前記取得手段が取得した前記第1文及び前記第2文に基づいて、前記文間類似度を演算する演算手段と、として機能させ、前記演算手段は、前記取得手段が取得した前記第1文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第1単語列と、前記取得手段が取得した前記第2文に含まれている複数の単語の内のn個(nは正の整数)の連続する単語からなる第2単語列との類似性の度合いである単語列間類似度に基づいて、前記第2文の意味が前記第1文に含まれる程度を示す第2文意味第1文側被含有尺度を演算する第1演算処理と、前記単語列間類似度に基づいて、前記第1文の意味が前記第2文に含まれる程度を示す第1文意味第2文側被含有尺度を演算する第2演算処理と、前記第1演算処理にて演算された前記第2文意味第1文側被含有尺度と、前記第2演算処理にて演算された前記第1文意味第2文側被含有尺度とに基づいて、前記文間類似度として演算する第3演算処理と、を行
に記載の演算システムによれば、単語列間類似度に基づいて第2文意味第1文側被含有尺度を演算し、また、単語列間類似度に基づいて第1文意味第2文側被含有尺度を演算した上で、これらの演算結果に基づいて文間類似度を演算することにより、例えば、少なくとも単語列の単位(つまり、比較的小さい粒度の単位)の類似度を用いて文間類似度を演算するので、第1文及び第2文相互間の意味の類似性の度合いを的確に把握することが可能となる。また、第2文意味第1文側被含有尺度及び第1文意味第2文側被含有尺度に基づいて文間類似度を演算するので、第1文及び第2文相互間の意味の類似性の度合いをより的確に把握することが可能となる。