(58)【調査した分野】(Int.Cl.,DB名)
前記文章に応じた情報は、前記文章に応じたベクトル情報であり、前記他の文章に応じた情報は、前記他の文章に応じたベクトル情報であることを特徴とする請求項1に記載の特定プログラム。
【発明を実施するための形態】
【0011】
以下に、本願の開示する特定プログラム、特定方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0012】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。本実施例1に係る情報処理装置は、質問文データF1を取得すると、質問文データF1と、文章HMM140cとを基にして、質問文データF1に対応する回答文データF3を特定する。
【0013】
本実施例1に係る質問文データF1には、複数の「文章」が含まれる。文章は、複数の「文」から成り立つものである。また、文は、句点により区切られる文字列である。たとえば、文章「クラスタ環境を構成しています。操作ミスで共有リソースが全てなくなってしまいました。」には、文「クラスタ環境を構成しています。」、「操作ミスで共有リソースが全てなくなってしまいました。」が含まれる。
【0014】
図1の説明では、説明の便宜上、質問文データF1には、文章x、文章yが含まれているものとする。図示を省略するが、質問文データF1には、文章x、文章y以外の文章が含まれていてもよい。また、文章xを、質問文に対応する文章とし、質問文データF1に含まれる文章y、他の文章を、質問文以外の文章とする。
【0015】
文章xには、文x1、文x2、文x3、・・・文xnが含まれるものとする。文章yには、文y1、文y2、文y3、・・・文ynが含まれるものとする。
【0016】
情報処理装置は、文章x、文章y、他の文章の文章ベクトルを算出する。たとえば、文章xの文章ベクトルを、xVecと表記する。文章yの文章ベクトルをyVecと表記する。質問文データF1を基にして生成されるベクトルデータを、ベクトルデータF2と表記する。
【0017】
情報処理装置が、文章xの文章ベクトルxVecを算出する処理の一例について説明する。情報処理装置は、文章xに含まれる各文x1〜xnの文ベクトルxVec1〜xVecnを算出し、各文ベクトルxVec1〜xVecnを集積することで、文章xの文章ベクトルxVecを算出する。
【0018】
なお、情報処理装置は、文ベクトルを算出する場合には、Word2Vec技術に基づいて、文に含まれる各単語の単語ベクトルを算出し、各単語の単語ベクトルを集積することで、文ベクトルを算出する。Word2Vec技術は、ある単語と、隣接する他の単語との関係に基づいて、各単語のベクトルを算出する処理を行うものである。
【0019】
なお、情報処理装置が、文章yの文章ベクトルyVecを算出する処理は、文章xの文章ベクトルxVecを算出する処理と同様であるため、説明を省略する。情報処理装置が、上記処理を行うことで、ベクトルデータF2を生成する。
【0020】
情報処理装置は、ベクトルデータF2に含まれる文章xと共起する文章yおよび他の文章の文章ベクトルと、文章HMM(Hidden Markov Model)140cとを比較することで、文章xに対応する回答文の文章ベクトルを特定する。
【0021】
文章HMM140cは、文章ベクトルと、複数の共起文章ベクトルとを対応づける。文章HMM140cの文章ベクトルは、回答文(回答文の文章)から算出された文章ベクトルであり、この文章ベクトルにより、回答文が定まる。共起文章ベクトルは、質問文データに含まれる質問文の文章と共起する文章から求められる文章ベクトルである。
【0022】
共起文章ベクトルは、共起率と対応づけられる。たとえば、質問文データF1の文章xの回答文が、回答文A2である場合には、文章xと共起する文章の文章ベクトルが「Dα108F97」となる可能性が「37%」であり、文章ベクトルが「Dα108F19」となる可能性が「29%」であることが示される。
【0023】
情報処理装置は、ベクトルデータF2に含まれる文章ベクトルxVecの前後に出現する文章ベクトル(文章ベクトルyVec、あるいは他の文章ベクトル)と、文章HMM140cの各共起文章ベクトルとを比較して、ヒットするレコードを判定する。たとえば、文章ベクトルyVecが、共起文章ベクトル「Dα108F97」と一致(あるいは類似)する場合には、情報処理装置は、回答文A2を、文章xの回答文として特定する。
【0024】
上記のように、情報処理装置は、質問文データF1に含まれる各文章の文章ベクトルを算出し、質問文に対応する文章と共起する文章の文章ベクトルと、文章HMM140cの共起文章ベクトルとを比較し、回答文を特定する。情報処理装置は、質問文データF1の質問文の文章との共起関係に基づいて、回答文を特定するので、文章を特定するための負荷を軽減することができる。
【0025】
次に、本実施例1に係る情報処理装置の構成の一例について説明する。
図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図2に示すように、情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0026】
通信部110は、ネットワークを介して他の装置からデータを受信する通信装置である。たとえば、通信部110は、他の装置から質問文データF1を受信し、受信した質問文データF1を、制御部150に出力する。
【0027】
入力部120は、情報処理装置100に各種の情報を入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。情報処理装置100は、入力部120を介して、質問文データF1を受け付けてもよい。
【0028】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、タッチパネル等に対応する。
【0029】
記憶部140は、質問文DB(Data Base)140a、一般文DB140b、文章HMM140c、回答文DB140d、静的辞書情報140e、動的辞書情報140fを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0030】
質問文DB140aは、質問文データF1を格納するデータベースである。
図3は、本実施例1に係る質問文DBのデータ構造の一例を示す図である。
図3に示すように、この質問文DBは、質問文章番号と、文章内容(質問文データ)とを対応づける。質問文章番号は、質問文章に含まれる複数の文章のグループを一意に識別する情報である。文章内容は、質問文章番号に対応する各文章の内容を示すものである。
【0031】
一般文DB140bは、各種の文章の中で、特徴のない一般的な文を格納するDBである。たとえば、一般文は、「いつもお世話になっております。」、「原因と対処方法を教えてください。」等に対応する文である。一般文は、予め、一般文DB140bに設定されているものとする。
【0032】
文章HMM140cは、質問文に対応する文章と共起する可能性の高い文章の情報と、回答文とを対応づける情報である。以下の説明では、適宜、質問文に対応する文章を「質問文章」と表記する。本実施例1では一例として、質問文DB140aの文章内容には、質問文章と、他の文章が含まれているものとする。
【0033】
図4は、本実施例1に係る文章HMMのデータ構造の一例を示す図である。
図4に示すように、この文章HMM140cは、文章ベクトルと、複数の共起文章ベクトルとを対応づける。文章HMM140cの文章ベクトルは、回答文(回答文の文章)から算出された文章ベクトルであり、この文章ベクトルにより、回答文が定まる。
【0034】
共起文章ベクトルは、共起率と対応づけられる。共起文章ベクトルは、質問文データに含まれる質問文章と共起する文章から求められるベクトルである。共起率は、該当する文章ベクトルの文章が、質問文章と共起する確率を示すものである。たとえば、ある質問文章に対応する回答文が回答文A2である場合には、質問文章と文章(文章ベクトル「Dα108F97」の文章)とが共起する可能性が「37%」であることが、示されている。
【0035】
回答文DB140dは、回答文の文章ベクトルと、回答文とを対応づけるデータベースである。
図5は、本実施例1に係る回答文DBのデータ構造の一例を示す図である。
図5に示すように、文章ベクトルと、回答文とを対応づける。文章ベクトルは、回答文から算出された文章ベクトルである。回答文は、回答文の内容を示すものである。ここでは一例として、回答文を文章とするが、回答文は、文であってもよい。
【0036】
静的辞書情報140eは、単語と、静的コードとを対応づける情報である。
【0037】
動的辞書情報140fは、静的辞書情報140eで定義されていない単語(あるいは文字列)に動的コードを割り当てるための情報である。
【0038】
図2の説明に戻る。制御部150は、受付部150a、抽出部150b、特定部150c、出力部150dを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0039】
受付部150aは、通信部110または入力部120から、質問文データF1を受け付ける。受付部150aは、受け付けた質問文データを質問文DB140aに登録する。
【0040】
抽出部150bは、質問文DB140aから、質問文データを取得し、質問文データに含まれる各文章と、一般文DB140bに登録された文とを基にして、特徴文章データを抽出する処理部である。抽出部150bは、特徴文章データを、特定部150cに出力する。
【0041】
たとえば、抽出部150bは、質問文データに含まれる各文章の各文と、一般文DB140bに格納された一般文とを比較し、質問文データから特徴文章データを抽出する。
【0042】
特定部150cは、特徴文章データと、文章HMM140cとを基にして、質問文章に対応する回答文を特定する処理部である。たとえば、特定部150cは、特徴文章データに含まれる各文章の文章ベクトルを算出する処理を行った後に、各文章ベクトルと、文章HMM140cとを基にして、回答文を特定する。
【0043】
特定部150cが、文章ベクトルを算出する処理の一例について説明する。
図6は、文章ベクトルを算出する処理の一例を説明するための図である。
図6では一例として、文章xの文章ベクトルを算出する処理について説明する。
【0044】
たとえば、文章xには、文x1、文x2、文x3、・・・、文xnが含まれる。特定部150cは、文x1の文ベクトルxVec1を次のように算出する。特定部150cは、静的辞書情報140eおよび動的辞書情報140fを用いて、文x1に含まれる各単語を符号化する。
【0045】
たとえば、特定部150cは、単語が静的辞書情報140eにヒットした場合には、単語の静的コードを特定し、特定した静的コードに単語を置き換えることで、符号化を行う。特定部150cは、単語が静的辞書情報140eにヒットしない場合には、動的辞書情報140fを用いて、動的コードを特定する。たとえば、特定部150cは、単語が動的辞書情報140fに未登録である場合には、単語を動的辞書情報140fに登録して、登録位置に対応する動的コードを得る。特定部150cは、単語が動的辞書情報140fに登録済みである場合には、既に登録済みの登録位置に対応する動的コードを得る。特定部150cは、特定した動的コードに単語を置き換えることで、符号化を行う。
【0046】
図6に示す例では、特定部150cは、単語a1から単語anを、符号b1からbnに置き換えることで、符号化を行う。
【0047】
特定部150cは、各単語の符号化を行った後に、Word2Vec技術に基づいて、各単語(各符号)の単語ベクトルを算出する。Word2Vec技術は、ある単語(符号)と、隣接する他の単語(符号)との関係に基づいて、各符号のベクトルを算出する処理を行うものである。
図6に示す例では、特定部150cは、符号b1から符号bnの単語ベクトルVec1〜Vecnを算出する。特定部150cは、各単語ベクトルVec1〜Vecnを集積することで、文xの文ベクトルxVec1を算出する。
【0048】
上記のようにして、特定部150cは、文x1の文ベクトルxVec1を算出する。特定部150cは、文x2〜文nxについても同様の処理を行うことで、文ベクトルxVec2〜xVecnを算出する。
【0049】
特定部150cは、文ベクトルxVec1〜xVecnを集積することで、文章xの文章ベクトル「xVec」を算出する。特定部150cは、文章y、他の文章についても、同様の処理を行うことで、文章yの文章ベクトル「yVec」、他の文章の文章ベクトル「nVec」を算出する。
【0050】
続いて、特定部150cが、各文章ベクトルと、文章HMM140cとを基にして、質問文章に対応する回答文を特定する処理の一例について説明する。特定部150cは、質問文章と共起する文章の文章ベクトルと、文章HMM140cの共起文章ベクトルとを比較して、文章ベクトルと一致する(あるいは類似する)共起文章ベクトルを特定する。なお、特定部150cは、文章ベクトルと、共起文章ベクトルとの距離が閾値未満となる共起文章ベクトルを、一致する共起文章ベクトルとして特定してもよい。
【0051】
特定部150cは、特定した共起文章ベクトルに対応づけられた文章ベクトルを特定する。特定部150cは、特定した文章ベクトルを、出力部150dに出力する。
【0052】
たとえば、
図4において、特定部150cは、質問文章と共起する文章の文章ベクトルが「Dα108F97」である場合には、「回答文A2の文章ベクトル」を特定する。
【0053】
特定部150cは、文章ベクトルと一致する共起文章ベクトルが複数存在する場合には、共起率が最大となる共起文章ベクトルを選択してもよいし、その他の選択ポリシーに基づいて、共起文章ベクトルを選択してもよい。
【0054】
出力部150dは、特定部150cから受け付ける文章ベクトルに対応する回答文を、回答文DB140dから検出し、検出した回答文の情報を、出力する処理部である。出力部150dは、回答文データを、表示部130に表示させてもよいし、質問文データの送信元に送信してもよい。また、出力部150dは、回答文データを送信する場合には、静的辞書情報140e、動的辞書情報140fを基にして、符号化を行った後に、送信してもよい。回答文データを符号化する説明は、特定部150cが特徴文章データを符号化する説明と同様である。
【0055】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。
図7は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
図7に示すように、情報処理装置100の受付部150aは、質問文データを受け付ける(ステップS101)。
【0056】
情報処理装置100の抽出部150bは、質問文データから特徴文章データを抽出する(ステップS102)。
【0057】
情報処理装置100の特定部150cは、特徴文章データに含まれる各文章の文章ベクトルを算出する(ステップS103)。特定部150cは、質問文章と共起する文章の文章ベクトルと、文章HMM140cとを比較して、共起条件を満たす回答文の文章ベクトルを特定する(ステップS104)。
【0058】
情報処理装置100の出力部150dは、文章ベクトルを基にして、回答文DB140dから回答文データを取得し、回答文データを符号化する(ステップS105)。出力部150dは、回答文データを送信する(ステップS106)。
【0059】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、質問文データに含まれる各文章の文章ベクトルを算出し、質問文章と共起する文章の文章ベクトルと、文章HMM140cの共起文章ベクトルとを比較し、回答文を特定する。このように、情報処理装置100は、質問文章との共起関係づいて、回答文を特定するので、文章を特定するための負荷を軽減することができる。
【実施例2】
【0060】
図8は、本実施例2に係る情報処理装置の処理を説明するための図である。本実施例2に係る情報処理装置は、質問文データF4を取得すると、質問文データF4と、文HMM240cとを基にして、質問文データF4に対応する回答文データF6を特定する。
【0061】
本実施例2に係る質問文データF4には、一つの「文章」が含まれる。文章は、複数の「文」から成り立つものである。また、文は、句点により区切られる文字列である。
【0062】
図8の説明では、説明の便宜上、質問文データF4には、文章xが含まれているものとする。また、文章xに含まれる文x1を、質問文に対応する文とし、他の文を、質問文以外の文とする。
【0063】
情報処理装置は、文章xに含まれる各文のベクトルを算出する。たとえば、文x1〜文xnに対応するベクトルを、xVec1〜xVecnとする。情報処理装置が、文x1〜文xnに対応するベクトルを算出する処理は、実施例1で説明した情報処理装置100が、文のベクトルを算出する処理と同様である。情報処理装置が、上記処理を行うことで、ベクトルデータF5を生成する。
【0064】
情報処理装置は、ベクトルデータF5に含まれる文x1と共起する文x2〜xnのベクトルと、文HMM240cとを比較することで、文x1に対応する回答文のベクトルを特定する。
【0065】
文HMM240cは、ベクトルと、複数の共起ベクトルとを対応づける。文HMM240cのベクトルは、回答文(回答文の文章)から算出されたベクトルであり、このベクトルにより、回答文が定まる。共起ベクトルは、質問文データF4に含まれる文と共起する文から求められるベクトルである。
【0066】
共起ベクトルは、共起率と対応づけられる。たとえば、質問文データF4の文xの回答文が、回答文A2である場合には、文x1と共起する文のベクトルが「Dβ108F97」となる可能性が「37%」であり、文x1と共起する文のベクトルが「Dβ108F19」となる可能性が「29%」であることが示される。
【0067】
情報処理装置は、ベクトルデータF5に含まれるxVec1の前後に出現するベクトルと、文HMM240cの各共起ベクトルとを比較して、ヒットするレコードを判定する。たとえば、ベクトルyVec1が、共起ベクトル「Dβ108F97」と一致(あるいは類似)する場合には、情報処理装置は、回答文A2を、文x1の回答文として特定する。
【0068】
上記のように、情報処理装置は、質問文データF4に含まれる各文のベクトルを算出し、質問文に対応する文と共起する文のベクトルと、文HMM240cの共起ベクトルとを比較し、回答文を特定する。情報処理装置は、質問文データF4の質問文の文との共起関係に基づいて、回答文を特定するので、文を特定するための負荷を軽減することができる。
【0069】
次に、本実施例2に係る情報処理装置の構成について説明する。
図9は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図9に示すように、情報処理装置200は、通信部210と、入力部220と、表示部230と、記憶部240と、制御部250とを有する。
【0070】
通信部210は、ネットワークを介して他の装置からデータを受信する通信装置である。たとえば、通信部210は、他の装置から質問文データF4を受信し、受信した質問文データF4を、制御部250に出力する。
【0071】
入力部220は、情報処理装置200に各種の情報を入力するための入力装置である。たとえば、入力部220は、キーボードやマウス、タッチパネル等に対応する。情報処理装置200は、入力部220を介して、質問文データF4を受け付けてもよい。
【0072】
表示部230は、制御部250から出力される情報を表示する表示装置である。表示部230は、液晶ディスプレイ、タッチパネル等に対応する。
【0073】
記憶部240は、質問文DB240a、一般文DB240b、文HMM240c、回答文DB240d、静的辞書情報240e、動的辞書情報240fを有する。記憶部240は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0074】
質問文章DB240aは、質問文データF4を格納するデータベースである。たとえば、質問文章DB240aは、質問文章番号と、質問文データとを対応づけて記憶する。
【0075】
一般文DB240bは、一般的な文を格納するDBである。一般文DB240bの説明は、実施例1で説明した、一般文DB140bの説明に対応する。
【0076】
文HMM240cは、質問文に対応する文と共起する可能性の高い文の情報と、回答文とを対応づける情報である。以下の説明では、適宜、質問文に対応する文を単に「質問文」と表記する。本実施例2では一例として、質問文DB240aには、質問文と、他の文が含まれているものとする。
【0077】
図10は、本実施例2に係る文HMMのデータ構造の一例を示す図である。
図10に示すように、この文HMM240cは、ベクトルと、複数の共起ベクトルとを対応づける。文HMM240cのベクトルは、回答文(回答文の文)から算出されたベクトルであり、このベクトルにより、回答文が定まる。
【0078】
共起ベクトルは、共起率と対応づけられる。共起ベクトルは、質問文データに含まれる質問文と共起する文から求められるベクトルである。共起率は、該当するベクトルの文が、質問文と共起する確率を示すものである。たとえば、ある質問文に対応する回答文が回答文A2である場合には、質問文と文(ベクトル「Dβ108F97」の文)とが共起する可能性が「37%」であることが、示されている。
【0079】
回答文DB240dは、回答文のベクトルと、回答文とを対応づけるデータベースである。
【0080】
静的辞書情報240e、動的辞書情報240fに関する説明は、実施例1で説明した静的辞書情報140e、動的辞書情報140fに関する説明と同様である。
【0081】
制御部250は、受付部250a、抽出部250b、特定部250c、出力部250dを有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
【0082】
受付部250aは、通信部210または入力部220から、質問文データF4を受け付ける。受付部250aは、受け付けた質問文データを質問文DB240aに登録する。
【0083】
抽出部250bは、質問文DB240aから、質問文データを取得し、質問文データに含まれる各文と、一般文DB240bに登録された文とを基にして、特徴文データを抽出する処理部である。抽出部250bは、特徴文データを、特定部250cに出力する。
【0084】
たとえば、抽出部250bは、質問文データに含まれる各文と、一般文DB240bに格納された一般文とを比較し、質問文データから特徴文データを抽出する。
【0085】
特定部250cは、特徴文データと、文HMM240cとを基にして、質問文に対応する回答文を特定する処理部である。たとえば、特定部250cは、特徴文データに含まれる各文のベクトルを算出する処理を行った後に、各ベクトルと、文HMM240cとを基にして、回答文を特定する。
【0086】
特定部250cが、文のベクトルを算出する処理の一例について説明する。たとえば、特定部250cが、文のベクトルを算出する処理は、
図6で説明した、特定部150cが、文x1のベクトルxVec1を算出する処理と同様である。
【0087】
特定部250cが、各文のベクトルと、文HMM240cとを基にして、質問文に対応する回答文を特定する処理の一例について説明する。特定部250cは、質問文と共起する文のベクトルと、文HMM240cの共起ベクトルとを比較して、ベクトルと一致する(あるいは類似する)共起ベクトルを特定する。なお、特定部250cは、ベクトルと、共起ベクトルとの距離が閾値未満となる共起ベクトルを、一致する共起ベクトルとして特定してもよい。
【0088】
特定部250cは、特定した共起ベクトルに対応づけられたベクトルを特定する。特定部250cは、特定したベクトルを、出力部250dに出力する。
【0089】
たとえば、
図10において、特定部250cは、質問文と共起する文のベクトルが「Dβ108F97」である場合には、「回答文A2のベクトル」を特定する。
【0090】
特定部250cは、ベクトルと一致する共起ベクトルが複数存在する場合には、共起率が最大となる共起ベクトルを選択してもよいし、その他の選択ポリシーに基づいて、共起ベクトルを選択してもよい。
【0091】
出力部250dは、特定部250cから受け付けるベクトルに対応する回答文を、回答文DB240dから検出し、検出した回答文の情報を、出力する処理部である。出力部250dは、回答文データを、表示部230に表示させても良いし、質問文データの送信元に送信してもよい。また、出力部250dは、回答文データを送信する場合には、静的辞書情報240e、動的辞書情報240fを基にして、符号化を行った後に、送信してもよい。回答文データを符号化する説明は、特定部250cが特徴文データを符号化する説明と同様である。
【0092】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。
図11は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
図11に示すように、情報処理装置200の受付部250aは、質問文データを受け付ける(ステップS201)。
【0093】
情報処理装置200の抽出部250bは、質問文データから特徴文データを抽出する(ステップS202)。
【0094】
情報処理装置200の特定部250cは、特徴文データに含まれる各文のベクトルを算出する(ステップS203)。特定部250cは、質問文と共起する文のベクトルと、文HMM240cとを比較して、共起条件を満たす回答文のベクトルを特定する(ステップS204)。
【0095】
情報処理装置200の出力部250dは、ベクトルを基にして、回答文DB240dから回答文データを取得し、回答文データを符号化する(ステップS205)。出力部250dは、回答文データを送信する(ステップS206)。
【0096】
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、質問文データに含まれる各文のベクトルを算出し、質問文と共起する文のベクトルと、文HMM240cの共起ベクトルとを比較し、回答文を特定する。このように、情報処理装置200は、質問文との共起関係づいて、回答文を特定するので、文を特定するための負荷を軽減することができる。
【実施例3】
【0097】
図12は、本実施例3に係る情報処理装置の処理を説明するための図である。本実施例3に係る情報処理装置は、質問文データF7を取得すると、質問文データF7と、文HMM340cとを基にして、質問文データF7に対応する回答文データF9を特定する。
【0098】
本実施例3に係る質問文データF7には、一つの「文章」が含まれる。文章は、複数の「文」から成り立つものである。また、文は、句点により区切られる文字列である。
【0099】
図12の説明では、説明の便宜上、質問文データF7には、文章xが含まれているものとする。また、文章xに含まれる文x1を、質問文に対応する文とし、他の文を、質問文以外の文とする。
【0100】
情報処理装置は、文章xに含まれる各文のベクトル(極値)を算出する。たとえば、文x1〜文xnに対応するベクトル(極値)を、xVec1’〜xVecn’とする。情報処理装置が、文x1〜文xnに対応するベクトル(極値)を算出する処理は、次のようになる。
【0101】
たとえば、情報処理装置は、文x1に含まれる各単語(符号)の単語ベクトルを、Word2Vec技術に基づいて算出する。情報処理装置は、算出した複数の単語ベクトルのうち、予め定められた「極値」に対応する単語ベクトルを選択し、選択した極値に対応する単語ベクトルを集積することで、文x1のベクトルxVec1’を算出する。情報処理装置は、他の文x2〜xnについても同様にして、ベクトルxVec2’〜xVecn’を算出する。情報処理装置が、上記処理を行うことで、ベクトルデータF8を生成する。
【0102】
情報処理装置は、ベクトルデータF8に含まれる文x1と共起する文x2〜文xnのベクトル(極値)と、文HMM340cとを比較することで、文x1に対応する回答文のベクトル(極値)を特定する。
【0103】
文HMM340cは、ベクトル(極値)と、複数の共起ベクトル(極値)とを対応づける。文HMM340cのベクトル(極値)は、回答文(回答文の文章)から算出されたベクトル(極値)であり、このベクトル(極値)により、回答文が定まる。共起ベクトル(極値)は、質問文データF7に含まれる文と共起する文から求められるベクトル(極値)である。
【0104】
共起ベクトル(極値)は、共起率と対応づけられる。たとえば、質問文データF7の文xの回答文が、回答文A2である場合には、文x1と共起する文のベクトル(極値)が「Dγ108F97」となる可能性が「37%」であり、文x1と共起する文のベクトル(極値)が「Dγ108F19」となる可能性が「29%」であることが示される。
【0105】
情報処理装置は、ベクトルデータF8に含まれるベクトルxVec1’の前後に出現するベクトル(極値)と、文HMM340cの各共起ベクトル(極値)とを比較して、ヒットするレコードを判定する。たとえば、ベクトルyVec1’が、共起ベクトル(極値)「Dγ108F97」と一致(あるいは類似)する場合には、情報処理装置は、回答文A2を、文x1の回答文として特定する。
【0106】
上記のように、情報処理装置は、質問文データF7に含まれる各文のベクトル(極値)を算出し、質問文に対応する文と共起する文のベクトル(極値)と、文HMM340cの共起ベクトル(極値)とを比較し、回答文を特定する。情報処理装置は、質問文データF7の質問文の文との共起関係に基づいて、回答文を特定するので、文を特定するための負荷を軽減することができる。また、ベクトルの極値を用いることで、計算負荷を更に削減することもできる。
【0107】
実施例3に関する、以下の説明では、ベクトルの極値を、単に「ベクトル」と表記する。
【0108】
次に、本実施例3に係る情報処理装置の構成について説明する。
図13は、本実施例3に係る情報処理装置の構成を示す機能ブロック図である。
図13に示すように、情報処理装置300は、通信部310と、入力部320と、表示部330と、記憶部340と、制御部350とを有する。
【0109】
通信部310は、ネットワークを介して他の装置からデータを受信する通信装置である。たとえば、通信部310は、他の装置から質問文データF7を受信し、受信した質問文データF7を、制御部350に出力する。
【0110】
入力部320は、情報処理装置300に各種の情報を入力するための入力装置である。たとえば、入力部320は、キーボードやマウス、タッチパネル等に対応する。情報処理装置300は、入力部320を介して、質問文データF7を受け付けてもよい。
【0111】
表示部330は、制御部350から出力される情報を表示する表示装置である。表示部330は、液晶ディスプレイ、タッチパネル等に対応する。
【0112】
記憶部340は、質問文DB340a、一般文DB340b、文HMM340c、回答文DB340d、静的辞書情報340e、動的辞書情報340fを有する。記憶部340は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0113】
質問文DB340aは、質問文データF7を格納するデータベースである。たとえば、質問文DB340aは、質問文章番号と、質問文データとを対応づけて記憶する。
【0114】
一般文DB340bは、一般的な文を格納するDBである。一般文DB340bの説明は、実施例1で説明した、一般文DB140bの説明に対応する。
【0115】
文HMM340cは、質問文に対応する文と共起する可能性の高い文の情報と、回答文とを対応づける情報である。以下の説明では、適宜、質問文に対応する文を単に「質問文」と表記する。本実施例3では一例として、質問文DB340aには、質問文と、他の文が含まれているものとする。
【0116】
図14は、本実施例3に係る文HMMのデータ構造の一例を示す図である。
図14に示すように、この文HMM340cは、ベクトルと、複数の共起ベクトルとを対応づける。文HMM340cのベクトルは、回答文(回答文の文)から算出されたベクトルであり、このベクトルにより、回答文が定まる。
【0117】
共起ベクトルは、共起率と対応づけられる。共起ベクトルは、質問文データに含まれる質問文と共起する文から求められるベクトルである。共起率は、該当するベクトルの文が、質問文と共起する確率を示すものである。たとえば、ある質問文に対応する回答文が回答文A2である場合には、質問文と文(ベクトル「Dγ108F97」の文)とが共起する可能性が「37%」であることが、示されている。
【0118】
回答文DB240dは、回答文のベクトルと、回答文とを対応づけるデータベースである。
【0119】
静的辞書情報340e、動的辞書情報340fに関する説明は、実施例1で説明した静的辞書情報140e、動的辞書情報140fに関する説明と同様である。
【0120】
制御部350は、受付部350a、抽出部350b、特定部350c、出力部350dを有する。制御部350は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
【0121】
受付部350aは、通信部310または入力部320から、質問文データF7を受け付ける。受付部350aは、受け付けた質問文データF7を質問文DB340aに登録する。
【0122】
抽出部350bは、質問文DB340aから、質問文データを取得し、質問文データに含まれる各文と、一般文DB340bに登録された文とを基にして、特徴文データを抽出する処理部である。抽出部350bは、特徴文データを、特定部350cに出力する。
【0123】
たとえば、抽出部350bは、質問文データに含まれる各文と、一般文DB340bに格納された一般文とを比較し、質問文データF7から特徴文データを抽出する。
【0124】
特定部350cは、特徴文データと、文HMM340cとを基にして、質問文に対応する回答文を特定する処理部である。たとえば、特定部350cは、特徴文データに含まれる各文のベクトルを算出する処理を行った後に、各ベクトルと、文HMM340cとを基にして、回答文を特定する。
【0125】
特定部250cが、文のベクトルを算出する処理の一例について説明する。
図15は、文のベクトル(極値)を算出する処理の一例を説明するための図である。
図15では一例として、文x1のベクトル(極値)xVec1’を算出する処理について説明する。
【0126】
たとえば、文x1には、単語a1〜単語anが含まれている。特定部350cは、静的辞書情報340eおよび動的辞書情報340fを用いて、文x1に含まれる各単語を符号化する。単語を符号化する処理は、実施例1で説明した特定部150cが、単語を符号化する処理と同様である。たとえば、各単語a1〜anは、符号b1〜bnに符号化される。
【0127】
特定部350cは、各単語の符号化を行った後に、Word2Vec技術に基づいて、各単語(各符号)の単語ベクトルを算出する。Word2Vec技術は、ある単語(符号)と、隣接する他の単語(符号)との関係に基づいて、各符号のベクトルを算出する処理を行うものである。
図15に示す例では、特定部350cは、符号b1から符号bnの単語ベクトルVec1〜Vecnを算出する。
【0128】
特定部350cは、算出した各単語ベクトルのうち、予め設定された極値に対応する単語ベクトルを選択する。たとえば、特定部350cは、極値と一致する単語ベクトルまたは、極値との距離が閾値未満となる単語ベクトルを選択する。
図15に示す例では、特定部350cは、極値に対応する単語ベクトルVec1、Vec3を選択する。特定部350cは、選択した極値に対応する単語ベクトルを集積することで、文x1の文ベクトルxVec1’を算出する。
【0129】
特定部350cが、各文のベクトルと、文HMM340cとを基にして、質問文に対応する回答文を特定する処理の一例について説明する。特定部350cは、質問文と共起する文のベクトルと、文HMM340cの共起ベクトルとを比較して、ベクトルと一致する(あるいは類似する)共起ベクトルを特定する。なお、特定部350cは、ベクトルと、共起ベクトルとの距離が閾値未満となる共起ベクトルを、一致する共起ベクトルとして特定してもよい。
【0130】
特定部350cは、特定した共起ベクトルに対応づけられたベクトルを特定する。特定部350cは、特定したベクトルを、出力部350dに出力する。
【0131】
たとえば、
図14において、特定部350cは、質問文と共起する文のベクトルが「Dγ108F97」である場合には、「回答文A2のベクトル」を特定する。
【0132】
特定部350cは、ベクトルと一致する共起ベクトルが複数存在する場合には、共起率が最大となる共起ベクトルを選択してもよいし、その他の選択ポリシーに基づいて、共起ベクトルを選択してもよい。
【0133】
出力部350dは、特定部350cから受け付けるベクトルに対応する回答文を、回答文DB340dから検出し、検出した回答文の情報を、出力する処理部である。出力部350dは、回答文データを、表示部330に表示させても良いし、質問文データの送信元に送信してもよい。また、出力部350dは、回答文データを送信する場合には、静的辞書情報340e、動的辞書情報340fを基にして、符号化を行った後に、送信してもよい。回答文データを符号化する説明は、特定部350cが特徴文データを符号化する説明と同様である。
【0134】
次に、本実施例3に係る情報処理装置300の処理手順の一例について説明する。
図16は、本実施例3に係る情報処理装置の処理手順を示すフローチャートである。
図16に示すように、情報処理装置300の受付部350aは、質問文データを受け付ける(ステップS301)。
【0135】
情報処理装置300の抽出部350bは、質問文データから特徴文データを抽出する(ステップS302)。
【0136】
情報処理装置300の特定部350cは、特徴文データに含まれる各文のベクトル(極値)を算出する(ステップS303)。特定部350cは、質問文と共起する文のベクトル(極値)と、文HMM340cとを比較して、共起条件を満たす回答文のベクトル(極値)を特定する(ステップS304)。
【0137】
情報処理装置300の出力部350dは、ベクトル(極値)を基にして、回答文DB340dから回答文データを取得し、回答文データを符号化する(ステップS305)。出力部350dは、回答文データを送信する(ステップS306)。
【0138】
次に、本実施例3に係る情報処理装置300の効果について説明する。情報処理装置300は、質問文データに含まれる各文のベクトルを算出し、質問文と共起する文のベクトルと、文HMM340cの共起ベクトルとを比較し、回答文を特定する。このように、情報処理装置300は、質問文との共起関係づいて、回答文を特定するので、文を特定するための負荷を軽減することができる。また、ベクトルの極値を用いることで、計算負荷を更に削減することもできる。
【0139】
ここで、本実施例で説明した情報処理装置100(200,300)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図17は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0140】
図17に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る読み取り装置404と、無線ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置405とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407とを有する。そして、各装置401〜407は、バス408に接続される。
【0141】
ハードディスク装置407は、受付プログラム407a、抽出プログラム407b、特定プログラム407c、出力プログラム407dを有する。CPU401は、受付プログラム407a、抽出プログラム407b、特定プログラム407c、出力プログラム407dを有する。
【0142】
受付プログラム407aは、受付プロセス406aとして機能する。抽出プログラム407bは、抽出プロセス406bとして機能する。特定プログラム407cは、特定プロセス406cとして機能する。出力プログラム407dは、出力プロセス406dとして機能する。
【0143】
受付プロセス406aの処理は、受付部150a,250a,350aの処理に対応する。抽出プロセス406bの処理は、抽出部150b,250b,350bの処理に対応する。特定プロセス406cの処理は、特定部150c,250c,350cの処理に対応する。出力プロセス406dの処理は、出力部150d,250d,350dの処理に対応する。
【0144】
なお、各プログラム407a〜407dについては、必ずしも最初からハードディスク装置407に記憶させておかなくても良い。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム407a〜407dを読み出して実行するようにしても良い。
【0145】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0146】
(付記1)第1の種別の文章に応じた情報を受け付け、
第2の種別の文章に対する第1の種別の他の文章の共起情報と前記第1の種別の他の文章に応じた情報とを前記第2の種別の文章に対応づけて記憶する記憶部を参照して、前記第1の種別の他の文章に応じた情報のうち、対応づけられた共起情報が基準を満たす第1の種別の他の文章に応じた情報に対応づけられた第2の種別の文章を特定する
処理をコンピュータに実行させることを特徴とする特定プログラム。
【0147】
(付記2)前記第1の種別の文章に応じた情報は、前記第1の種別の文章に応じたベクトル情報であり、前記第1の種別の他の文章に応じた情報は、前記第1の種別の他の文章に応じたベクトル情報であることを特徴とする付記1に記載の特定プログラム。
【0148】
(付記3)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であることを特徴とする付記1に記載の特定プログラム。
【0149】
(付記4)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であることを特徴とする付記1に記載の特定プログラム。
【0150】
(付記5)コンピュータが実行する特定方法であって、
第1の種別の文章に応じた情報を受け付け、
第2の種別の文章に対する第1の種別の他の文章の共起情報と前記第1の種別の他の文章に応じた情報とを前記第2の種別の文章に対応づけて記憶する記憶部を参照して、前記第1の種別の他の文章に応じた情報のうち、対応づけられた共起情報が基準を満たす第1の種別の他の文章に応じた情報に対応づけられた第2の種別の文章を特定する
処理を実行することを特徴とする特定方法。
【0151】
(付記6)前記第1の種別の文章に応じた情報は、前記第1の種別の文章に応じたベクトル情報であり、前記第1の種別の他の文章に応じた情報は、前記第1の種別の他の文章に応じたベクトル情報であることを特徴とする付記5に記載の特定方法。
【0152】
(付記7)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であることを特徴とする付記5に記載の特定方法。
【0153】
(付記8)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であることを特徴とする付記5に記載の特定方法。
【0154】
(付記9)第1の種別の文章に応じた情報を受け付ける受付部と、
第2の種別の文章に対する第1の種別の他の文章の共起情報と前記第1の種別の他の文章に応じた情報とを前記第2の種別の文章に対応づけて記憶する記憶部を参照して、前記第1の種別の他の文章に応じた情報のうち、対応づけられた共起情報が基準を満たす第1の種別の他の文章に応じた情報に対応づけられた第2の種別の文章を特定する特定部と
を有することを特徴とする情報処理装置。
【0155】
(付記10)前記第1の種別の文章に応じた情報は、前記第1の種別の文章に応じたベクトル情報であり、前記第1の種別の他の文章に応じた情報は、前記第1の種別の他の文章に応じたベクトル情報であることを特徴とする付記9に記載の情報処理装置。
【0156】
(付記11)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語にそれぞれ対応するベクトル情報に応じたベクトル情報であることを特徴とする付記9に記載の情報処理装置。
【0157】
(付記12)前記第1の種別の文章に応じたベクトル情報は、前記第1の種別の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であり、前記第1の種別の他の文章に応じたベクトル情報は、前記第1の種別の他の文章に含まれる複数の単語のベクトルのうち、極値に対応するベクトルを集積することで算出されるベクトル情報であることを特徴とする付記9に記載の情報処理装置。