[実施の形態1]
図1に、評価装置101のモジュール構成例を示す。評価装置101は、第1受付部103、学習部105、第2受付部107、評価部109、出力部111、教師データ記憶部121、意味ベクトルデータベース123、第1モデルデータ記憶部125、音声表記データベース127及び第2モデルデータ記憶部129を有する。
第1受付部103は、教師データを受け付ける。学習部105は、学習処理を行う。学習処理では、機械学習によって意味に関する第1モデル及び音声に関する第2モデルが生成される。第2受付部107は、評価される文字列を受け付ける。評価部109は、評価処理を行う。評価処理では、第1モデルを用いて意味に関する第1評価値が算出され、第2モデルを用いて音声に関する第2評価値が算出される。更に、評価処理では、第1評価値及び第2評価値に基づいて、総合的な第3評価値が算出される。出力部111は、第3評価値を出力する。
教師データ記憶部121は、教師データを記憶する。教師データについては、図2を用いて後述する。意味ベクトルデータベース123は、単語の意味ベクトルを記憶している。意味ベクトルデータベース123については、図3を用いて後述する。第1モデルデータ記憶部125は、意味に関する機械学習に用いられるニューラルネットワークの定義及び当該ニューラルネットワークにおける結合荷重を記憶する。音声表記データベース127は、単語の音声表記を記憶している。音声表記データベース127については、図4を用いて後述する。第2モデルデータ記憶部129は、音声に関する機械学習に用いられるニューラルネットワークの定義及び当該ニューラルネットワークにおける結合荷重を記憶する。
上述した第1受付部103、学習部105、第2受付部107、評価部109及び出力部111は、ハードウエア資源(例えば、図39)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述した教師データ記憶部121、意味ベクトルデータベース123、第1モデルデータ記憶部125、音声表記データベース127及び第2モデルデータ記憶部129は、ハードウエア資源(例えば、図39)を用いて実現される。
図2に、教師データの例を示す。この例における教師データは、テーブル形式である。但し、教師データは、テーブル形式以外の形式であってもよい。この例における教師データは、サンプルに対応するレコードを有している。教師データのレコードは、サンプルIDが格納されるフィールドと、文字列が格納されるフィールドと、評価値が格納されるフィールドとを有している。
サンプルIDは、サンプルを識別する。文字列及び評価値の組は、サンプルとして予め用意されているものとする。評価値は、文字列を評価した値である。
例えば、図示した1番目のレコードは、サンプルID「S001」で識別される文字列「桜散り 緑の芽吹く 遊歩道」に対する評価値が「0.9」であることを示している。
図3に、意味ベクトルデータベース123の例を示す。この例で、意味ベクトルデータベース123におけるテーブルは、単語に対応するレコードを有している。意味ベクトルデータベース123におけるテーブルのレコードは、単語が格納されるフィールドと、意味ベクトルが格納されるフィールドとを有している。
意味ベクトルデータベース123は、文章コーパス(例えば、辞書サイトやSNS(Social Networking Service)サイトに登録されている文章)を単語ベクトル化ツール(例えば、Word2Vec)によって分析することによって求められているものとする。単語は、文章コーパスに出現したものである。意味ベクトルは、当該単語の意味的な特徴を示す。
図4に、音声表記データベース127の例を示す。この例で、音声表記データベース127におけるテーブルは、単語に対応するレコードを有している。音声表記データベース127におけるテーブルのレコードは、単語が格納されるフィールドと、平仮名表記が格納されるフィールドとを有している。
平仮名表記は、当該単語の読みを平仮名で表す。この例では、平仮名による表記の例を示したが、片仮名表記であってもよい。また、ローマ字或いは発音記号による表記であってもよい。更に、音声表記に加えて、音響における波形を示すデータを記憶するようにしてもよい。
例えば、図示した1番目のレコードは、単語「桜」は、平仮名で「さくら」と表記されることを示している。
続いて、意味に関するパラメータを算出する手順について説明する。当該パラメータは、ニューラルネットワークにおける入力値として用いられる。図5に、意味に関するパラメータを算出する手順を示す。まず、文字列を単語に分割する。この例では、文字列「桜散り 緑の芽吹く 遊歩道」が、単語「桜」、「散り」、「緑」及び「の」等に分割される。
次に、各単語が、意味に関する特徴に相当する意味ベクトルに変換される。例えば、単語「桜」は、意味ベクトル(0.3,0.2,…,0.9)に変換される。各単語の意味ベクトルは、上述したように、予め用意されている意味ベクトルデータベース123に登録されている。
そして、意味ベクトルに基づいて、意味に関するパラメータを求める。この例では、連続する3つの意味ベクトルのセットを順次特定し、それぞれのセットにおける各意味ベクトルに含まれる要素のうち、最大値を選択して、意味に関するパラメータとして用いる。この例は、1番目の意味ベクトルから3番目の意味ベクトルまでのセットに関して、各意味ベクトルに含まれる要素のうち最大である「0.9」の値が、意味に関する1番目のパラメータとなることを示している。また、2番目の意味ベクトルから4番目の意味ベクトルまでのセットに関して、各意味ベクトルに含まれる要素のうち最大である「0.7」の値が、意味に関する2番目のパラメータとなることを示している。以下、同様である。
ここでは、セットに含まれる意味ベクトルの数を3とする例を示したが、セットに含まれる意味ベクトルの数は、4以上であってもよい。また、セットに含まれる意味ベクトルの数は、2以下であってもよい。セットに含まれる意味ベクトルの数を1とする場合には、単語毎に意味に関するパラメータを求めることになる。
続いて、意味に関する機械学習に用いられるニューラルネットワークの構成について説明する。図6に、意味に関する機械学習に用いられるニューラルネットワークの例を示す。この例におけるニューラルネットワークは、入力層、中間層及び出力層を含む階層型である。
当該ニューラルネットワークにおける入力値は、意味に関する各パラメータ(X1乃至XM)である。そのため、入力層は、意味に関する各パラメータに対応するユニットを有する。例えば、入力層は、各サンプルの文字列において特定されるセット数のうち、最大数(M)に相当するユニットを有する。尚、あるサンプルについて特定されるセット数がユニット数よりも少ない場合には、例えば一部のユニットに対して所定の値を設定するようにしてもよい。
この例で、中間層は、入力層と同数のユニットを有する。但し、中間層におけるユニット数は、入力層と同じでなくてもよい。出力層は、当該ニューラルネットワークにおける出力値である評価値(S)に相当する1つのユニットを有する。ここでは、3層のニューラルネットワークの例を示したが、4層以上のニューラルネットワークを用いるようにしてもよい。また、ニューラルネットワーク以外の学習器を用いるようにしてもよい。
続いて、音声に関するパラメータを算出する手順について説明する。当該パラメータは、ニューラルネットワークにおける入力値として用いられる。図7に、音声に関するパラメータを算出する手順を示す。まず、文字列を平仮名表記に変換する。この例では、文字列「桜散り 緑の芽吹く 遊歩道」が、平仮名表記「さくらちり みどりのめぶく ゆうほどう」に変換される。
次に、平仮名表記をローマ字表記に変換する。この例では、平仮名表記「さくらちり みどりのめぶく ゆうほどう」が、ローマ字表記「Sakuratiri midorinomebuku yuuhodou」に変換される。尚、サンプルの文字列を直接ローマ字表記に変換するようにしてもよい。
次に、ローマ字表記から音節を抽出する。この例では、音節「Sa」及び「ku」等が抽出される。尚、平仮名表記から平仮名1文字を抽出し、当該平仮名に対応するローマ字表記によって音節を特定するようにしてもよい。
次に、抽出された各音節を音声に関する特徴に変換する。この例で、音声に関する特徴は22次元の音声ベクトルで表される。当該音声ベクトルに含まれる各要素は、母音又は子音に対応する。そして、音節が当該要素に対応する母音又は子音を含む場合に、当該要素の値は「1」となる。それ以外の要素の値は「0」となる。この例で、1番目から順に各要素は、母音「a」、母音「i」、母音「u」、母音「e」、母音「o」、子音「k」、子音「s」、子音「t」、子音「n」、子音「h」、子音「m」、子音「y」、子音「r」、子音「w」、子音「nn」、子音「g」、子音「z」、子音「d」、子音「b」、子音「p」、子音「x」及び子音なしに相当する。尚、撥音「ん」を単独で1音節と看做し、子音「nn」に対応する要素の値を「1」とする。また、音節が子音を含まない場合には、子音なしに相当する要素の値を「1」とする。例えば、1番目の音節「Sa」は、子音「s」及び母音「a」を含むので、音声ベクトル(1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)に変換される。同じく、2番目の音節「ku」は、子音「k」及び母音「u」を含むので、音声ベクトル(0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)に変換される。尚、ここでは、ローマ字に基づいて音声ベクトルを特定する例を示しているが、発音記号に基づいて音声ベクトルを特定するようにしてもよい。
そして、音声に関する特徴である音声ベクトルを音声に関するパラメータに変換する。この例では、音声ベクトルに含まれる22個の要素を、22桁の2進数における各桁に対応付ける。そして、当該2進数の値を16進数の値に変換する。例えば、音声に関する1番目の特徴である音声ベクトル(1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)の場合には、2進数「1000001000000000000000」が16進数「0x208000」に変換される。そして、16進数「0x208000」が音声に関する1番目のパラメータとなる。同じく、音声に関する2番目の特徴である音声ベクトル(0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)の場合には、2進数「0010010000000000000000」が16進数「0x90000」に変換される。そして、16進数「0x90000」が音声に関する2番目のパラメータとなる。
続いて、音声に関する機械学習に用いられるニューラルネットワークの構成について説明する。図8に、音声に関する機械学習に用いられるニューラルネットワークの例を示す。この例におけるニューラルネットワークは、入力層、中間層及び出力層を含む階層型である。
当該ニューラルネットワークにおける入力値は、音声に関する各パラメータ(Y1乃至YN)である。そのため、入力層は、音声に関する各パラメータに対応するユニットを有する。例えば、入力層は、各サンプルの文字列に含まれる音節の数のうち、最大数(N)に相当するユニットを有する。尚、文字列に含まれる音節の数がユニット数よりも少ない場合には、例えば一部のユニットに対して所定の値を設定するようにしてもよい。
この例で、中間層は、入力層と同数のユニットを有する。但し、中間層におけるユニット数は、入力層と同じでなくてもよい。出力層は、当該ニューラルネットワークにおける出力値である評価値(S)に相当する1つのユニットを有する。ここでは、3層のニューラルネットワークの例を示したが、4層以上のニューラルネットワークを用いるようにしてもよい。また、ニューラルネットワーク以外の学習器を用いるようにしてもよい。
続いて、学習部105の動作について説明する。図9に、学習部105のモジュール構成例を示す。学習部105は、第1生成部901、第2生成部903、第3生成部905、第4生成部907、第1特徴記憶部921、第1パラメータ記憶部923、第1表記記憶部925、第2表記記憶部927、第2特徴記憶部929、及び第2パラメータ記憶部931を有する。
第1生成部901は、第1生成処理を実行する。第1生成処理では、第1特徴テーブル及び第1パラメータテーブルを生成する。第2生成部903は、第2生成処理を実行する。第2生成処理では、ニューラルネットワークを用いた機械学習によって、意味に関する第1モデルを生成する。第3生成部905は、第3生成処理(A)を実行する。第3生成処理(A)では、第1表記テーブル、第2表記テーブル、第2特徴テーブル及び第2パラメータテーブルを生成する。第4生成部907は、第4生成処理を実行する。第4生成処理では、ニューラルネットワークを用いた機械学習によって、音声に関する第2モデルを生成する。
第1特徴記憶部921は、第1特徴テーブルを記憶する。第1特徴テーブルについては、図11を用いて後述する。第1パラメータ記憶部923は、第1パラメータテーブルを記憶する。第1パラメータテーブルについては、図12を用いて後述する。第1表記記憶部925は、第1表記テーブルを記憶する。第1表記テーブルについては、図14を用いて後述する。第2表記記憶部927は、第2表記テーブルを記憶する。第2表記テーブルについては、図15を用いて後述する。第2特徴記憶部929は、第2特徴テーブルを記憶する。第2特徴テーブルについては、図16を用いて後述する。第2パラメータ記憶部931は、第2パラメータテーブルを記憶する。第2パラメータテーブルについては、図17を用いて後述する。
上述した第1生成部901、第2生成部903、第3生成部905及び第4生成部907は、ハードウエア資源(例えば、図39)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述した第1特徴記憶部921、第1パラメータ記憶部923、第1表記記憶部925、第2表記記憶部927、第2特徴記憶部929、及び第2パラメータ記憶部931は、ハードウエア資源(例えば、図39)を用いて実現される。
以下では、学習部105における学習処理について説明する。図10に、学習処理フローを示す。第1受付部103は、教師データを受け付ける(S1001)。受け付けられた教師データは、教師データ記憶部121において記憶される。尚、評価装置101において教師データを生成するようにしてもよい。
第1生成部901は、第1生成処理を実行する(S1003)。第1生成処理について説明する前に、第1生成処理で生成される第1特徴テーブル及び第1パラメータテーブルについて説明する。
図11に、第1特徴テーブルの例を示す。この例における第1特徴テーブルは、サンプルに対応するレコードを有している。第1特徴テーブルのレコードは、サンプルIDが格納されるフィールドと、意味に関する特徴が格納される複数のフィールドとを有している。
サンプルIDは、サンプルを識別する。意味に関する特徴は、サンプルの文字列に含まれる各単語の意味に関する特徴である。従って、サンプルの文字列に含まれる単語の数に相当するフィールドが含まれる。この例では、意味に関する特徴は、意味ベクトルである。但し、意味に関する特徴は、意味ベクトル以外であってもよい。
例えば、図示した1番目のレコードは、サンプルID「S001」で識別される文字列の最初に出現する単語の特徴が、意味ベクトル(0.3,0.2,…,0.9)で表され、同じく2番目に出現する単語の特徴が、意味ベクトル(0.1,0.4,…,0.5)で表されることを示している。
図12に、第1パラメータテーブルの例を示す。この例における第1パラメータテーブルは、サンプルに対応するレコードを有している。第1パラメータテーブルのレコードは、サンプルIDが格納されるフィールドと、意味に関するパラメータが格納される複数のフィールドとを有している。
サンプルIDは、サンプルを識別する。意味に関するパラメータは、図5を用いて説明したように、サンプルの文字列に含まれる単語の意味に関する特徴に基づくパラメータである。
例えば、図示した1番目のレコードは、サンプルID「S001」で識別される文字列に含まれる単語の意味に関する特徴に基づく最初のパラメータが「0.9」であり、同じく2番目のパラメータが「0.7」であることを示している。尚、意味に関する特徴が1次元の変数である場合には、意味に関する特徴をそのまま意味に関するパラメータとして用いるようにしてもよい。
続いて、第1生成処理について説明する。図13Aに、第1生成処理フローを示す。第1生成部901は、サンプルを1つ特定する(S1301)。第1生成部901は、例えば昇順にサンプルIDを特定する。
第1生成部901は、第1特徴テーブルに新たなレコードを設ける(S1303)。新たなレコードには、S1301で特定されたサンプルIDが格納される。
第1生成部901は、当該サンプルの文字列に含まれる単語を抽出する(S1305)。例えば、第1生成部901は、形態素解析を行って、文字列を複数の単語に分割する。
第1生成部901は、抽出された単語を1つ特定する(S1307)。具体的には、第1生成部901は、分割された単語を先頭から順に特定する。
第1生成部901は、意味ベクトルデータベース123から、当該単語の意味ベクトルを取得する(S1309)。そして、第1生成部901は、当該意味ベクトルを、S1303で設けたレコードにおける意味に関する特徴のフィールドに順次格納する(S1311)。
第1生成部901は、S1305において抽出された単語のうち、未処理の単語があるか否かを判定する(S1313)。未処理の単語があると判定した場合には、S1307に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第1生成部901は、未処理のサンプルがあるか否かを判定する(S1315)。未処理のサンプルがあると判定した場合には、S1301に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Aを介して、図13Bに示したS1321の処理に移る。未処理のサンプルがないと判定した時点で、第1特徴テーブルの生成が完了する。
図13Bの説明に移る。以下の処理では、第1パラメータテーブルを生成する。第1生成部901は、サンプルを1つ特定する(S1321)。第1生成部901は、例えば昇順にサンプルIDを特定する。
第1生成部901は、第1パラメータテーブルに新たなレコードを設ける(S1323)。新たなレコードには、S1321で特定されたサンプルIDが格納される。
第1生成部901は、連続する3つの意味ベクトルのセットを特定する(S1325)。最初に、第1特徴テーブルのレコードにおいて、意味に関する特徴が格納される複数のフィールドのうち、1番目から3番目までのフィールドに設定されている意味ベクトルが特定される。次には、2番目から4番目までのフィールドに設定されている意味ベクトルが特定される。その後も、順次フィールドをシフトして3つの意味ベクトルが特定される。
第1生成部901は、当該セットに含まれる意味ベクトルにおける要素のうち、最大値を特定する(S1327)。そして、第1生成部901は、当該最大値を、意味に関するパラメータのフィールドに順次格納する(S1329)。
第1生成部901は、未処理のセットがあるか否かを判定する(S1331)。未処理のセットがあると判定した場合には、S1325に示した処理に戻って、上述した処理を繰り返す。尚、この例で当該繰り返し処理によって特定されるセットの数は、文字列に含まれる単語数−2である。
一方、未処理のセットがないと判定した場合には、第1生成部901は、未処理のサンプルがあるか否かを判定する(S1333)。未処理のサンプルがあると判定した場合には、S1321に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、第1生成処理を終える。未処理のサンプルがないと判定した時点で、第1パラメータテーブルの生成が完了する。第1生成処理を終えると、呼び出し元の学習処理に復帰する。
図10の説明に戻る。第2生成部903は、第2生成処理を実行する(S1005)。第2生成処理では、意味に関する各パラメータを図6に示したニューラルネットワークの入力層におけるユニットに設定し、評価値を同じニューラルネットワークの出力層のユニットに設定して、誤差逆伝播法によって機械学習を行う。そして、機械学習によって得られた結合荷重を第1モデルデータ記憶部125に記憶する。
第3生成部905は、第3生成処理(A)を実行する(S1007)。第3生成処理(A)について説明する前に、第3生成処理(A)で生成される第1表記テーブル、第2表記テーブル、第2特徴テーブル及び第2パラメータテーブルについて説明する。
図14に、第1表記テーブルの例を示す。この例における第1表記テーブルは、サンプルに対応するレコードを有している。第1表記テーブルのレコードは、サンプルIDが格納されるフィールドと、文字列の平仮名表記が格納されるフィールドとを有している。
サンプルIDは、サンプルを識別する。文字列の平仮名表記は、当該サンプルの文字列の読みを平仮名で表す。
例えば、図示した1番目のレコードは、1番目のサンプルにおける文字列の読みが、平仮名「さくらちり みどりのめぶく ゆうほどう」で表されることを示している。
図15に、第2表記テーブルの例を示す。この例における第2表記テーブルは、サンプルに対応するレコードを有している。第2表記テーブルのレコードは、サンプルIDが格納されるフィールドと、文字列のローマ字表記が格納されるフィールドとを有している。
サンプルIDは、サンプルを識別する。文字列のローマ字表記は、当該サンプルの文字列の読みをローマ字で表す。
例えば、図示した1番目のレコードは、1番目のサンプルにおける文字列の読みが、ローマ字「Sakuratiri midorinomebuku yuuhodou」で表されることを示している。
図16に、第2特徴テーブルの例を示す。この例における第2特徴テーブルは、サンプルに対応するレコードを有している。第2特徴テーブルのレコードは、サンプルIDが格納されるフィールドと、音声に関する特徴が格納される複数のフィールドとを有している。
サンプルIDは、サンプルを識別する。音声に関する特徴は、サンプルの文字列に含まれる各音節の音声に関する特徴である。従って、サンプルの文字列に含まれる音節の数に相当するフィールドが設けられる。この例では、音声に関する特徴は、音声ベクトルである。但し、音声に関する特徴は、音声ベクトル以外であってもよい。
例えば、図示した1番目のレコードは、1番目のサンプルにおける最初の音節が音声ベクトル(1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)で表され、同じく2番目の音節が音声ベクトル(0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)で表されることを示している。
図17に、第2パラメータテーブルの例を示す。この例における第2パラメータテーブルは、サンプルに対応するレコードを有している。第2パラメータテーブルのレコードは、サンプルIDが格納されるフィールドと、音声に関するパラメータが格納される複数のフィールドとを有している。
サンプルIDは、サンプルを識別する。音声に関するパラメータは、図7を用いて説明したように、サンプルの文字列に含まれる音節毎に求められる。
例えば、図示した1番目のレコードは、サンプルID「S001」で識別される文字列に含まれる最初の音節の特徴に基づくパラメータが16進数「0x208000」であり、同じく2番目の音節の特徴に基づくパラメータが16進数「0x90000」であることを示している。尚、音声に関する特徴が1次元の変数である場合には、音声に関する特徴をそのまま音声に関するパラメータとして用いるようにしてもよい。
続いて、第3生成処理(A)について説明する。図18Aに、第3生成処理(A)フローを示す。第3生成部905は、サンプルを1つ特定する(S1801)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、第1表記テーブルに新たなレコードを設ける(S1803)。新たなレコードには、S1801で特定されたサンプルIDが格納される。
第3生成部905は、当該サンプルの文字列に含まれる単語を抽出する(S1805)。例えば、第3生成部905は、形態素解析を行って、文字列を複数の単語に分割する。
第3生成部905は、抽出された単語を1つ特定する(S1807)。具体的には、第1生成部901は、分割された単語を先頭から順に特定する。
第3生成部905は、音声表記データベース127から、当該単語の平仮名表記を取得する(S1809)。そして、第3生成部905は、当該単語の平仮名表記を、S1803で設けた文字列の平仮名表記のフィールドに追加する(S1811)。
第3生成部905は、S1805において抽出された単語のうち、未処理の単語があるか否かを判定する(S1813)。未処理の単語があると判定した場合には、S1807に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1815)。未処理のサンプルがあると判定した場合には、S1801に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Bを介して、図18Bに示したS1821の処理に移る。未処理のサンプルがないと判定した時点で、第1表記テーブルの生成が完了する。
図18Bの説明に移る。以下の処理では、第2表記テーブルを生成する。第3生成部905は、サンプルを1つ特定する(S1821)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、第2表記テーブルに新たなレコードを設ける(S1823)。新たなレコードには、S1821で特定されたサンプルIDが格納される。
第3生成部905は、当該サンプルにおける文字列の平仮名表記を文字列のローマ字表記に変換する(S1825)。第3生成部905は、文字列のローマ字表記を、S1823において設けられたレコードに格納する(S1827)。
第3生成部905は、未処理のサンプルがあるか否かを判定する(S1829)。未処理のサンプルがあると判定した場合には、S1821に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Cを介して、図18Cに示したS1841の処理に移る。未処理のサンプルがないと判定した時点で、第2表記テーブルの生成が完了する。
図18Cの説明に移る。以下の処理では、第2特徴テーブルを生成する。第3生成部905は、サンプルを1つ特定する(S1841)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、第2特徴テーブルに新たなレコードを設ける(S1843)。新たなレコードには、S1841で特定されたサンプルIDが格納される。
第3生成部905は、文字列のローマ字表記に含まれる音節を1つ特定する(S1845)。この例では、第3生成部905は、前から後ろへ順番に音節を特定する。音節は、1つの母音のみ、又は1つの母音と子音との組み合わせである。
第3生成部905は、当該音節を音声ベクトルに変換する(S1847)。当該音節に含まれる母音に対応する要素の値を「1」とする。また、当該音節が子音を含む場合には当該子音に対応する要素の値を「1」とする。それ以外の要素の値を「0」とする。尚、撥音「ん」は単独で1単位として扱われ、子音「nn」に対応する要素の値が「1」となる。
第3生成部905は、当該音声ベクトルを、S1843において設けられたレコードにおける音声に関する特徴のフィールドに順次格納する(S1849)。
第3生成部905は、未処理の音節があるか否かを判定する(S1851)。未処理の音節があると判定した場合には、S1845に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音節がないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1853)。未処理のサンプルがあると判定した場合には、S1841に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Dを介して、図18Dに示したS1861の処理に移る。未処理のサンプルがないと判定した時点で、第2特徴テーブルの生成が完了する。
図18Dの説明に移る。以下の処理では、第2パラメータテーブルを生成する。第3生成部905は、サンプルを1つ特定する(S1861)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、第2パラメータテーブルに新たなレコードを設ける(S1863)。新たなレコードには、S1861で特定されたサンプルIDが格納される。
第3生成部905は、第2特徴テーブルにおける当該サンプルのレコードにおいて、音声に関する特徴のフィールドに格納されている音声ベクトルを1つ特定する(S1865)。具体的には、第3生成部905は、前から後ろへ順番に音声に関する特徴のフィールドを特定して、当該フィールドに格納されているベクトルを読み取る。
第3生成部905は、当該音声ベクトルを数値に変換する(S1867)。上述したように、第3生成部905は、当該音声ベクトルに含まれる22個の要素を、それぞれ2進数の各桁に対応付けた22桁の2進数の値を16進数に変換する。
そして、第3生成部905は、当該数値を、S1863において設けた音声に関するパラメータのフィールドに順次格納する(S1869)。
第3生成部905は、未処理の音声ベクトルがあるか否かを判定する(S1871)。未処理の音声ベクトルがあると判定した場合には、S1865に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音声ベクトルがないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1873)。未処理のサンプルがあると判定した場合には、S1861に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、第3生成処理(A)を終える。未処理のサンプルがないと判定した時点で、第2パラメータテーブルの生成が完了する。第3生成処理(A)を終えると、呼び出し元の学習処理に復帰する。
図10の説明に戻る。第4生成部907は、第4生成処理を実行する(S1009)。第4生成処理では、音声に関する各パラメータを図8に示したニューラルネットワークの入力層における対応するユニットに設定し、評価値を同じニューラルネットワークの出力層のユニットに設定して、誤差逆伝播法によって機械学習を行う。そして、機械学習によって得られた結合荷重を第2モデルデータ記憶部129に記憶する。以上で、学習部105の動作についての説明を終える。
続いて、評価部109の動作について説明する。図19に、評価部109のモジュール構成例を示す。評価部109は、第5生成部1901、第1適用部1903、第6生成部1905、第2適用部1907及び算出部1909を有する。
第5生成部1901は、第5生成処理を実行する。第5生成処理では、評価される文字列に含まれる各単語の意味に関する特徴に基づいて、意味に関するパラメータが生成される。第1適用部1903は、第1適用処理を実行する。第1適用処理では、意味に関するパラメータを第1モデルに適用し、意味に関する第1評価値を推定する。第6生成部1905は、第6生成処理(A)を実行する。第6生成処理(A)では、評価される文字列に含まれる各音節の音声に関する特徴に基づいて、音声に関するパラメータが生成される。第2適用部1907は、第2適用処理を実行する。第2適用処理では、音声に関するパラメータを第2モデルに適用し、音声に関する第2評価値を推定する。算出部1909は、第1評価値及び第2評価値に基づいて、総合的な第3評価値を算出する。
上述した第5生成部1901、第1適用部1903、第6生成部1905、第2適用部1907及び算出部1909は、ハードウエア資源(例えば、図39)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
図20に、評価処理フローを示す。第2受付部107は、評価される文字列を受け付ける(S2001)。受け付けられた文字列は、内部パラメータとして保持される。
第5生成部1901は、第5生成処理を実行する(S2003)。第5生成処理では、学習処理における第1生成処理の場合と同様の手順によって、評価される文字列に基づくパラメータが生成される。
図21に、第5生成処理フローを示す。第5生成部1901は、評価される文字列に含まれる単語を抽出する(S2101)。例えば、第5生成部1901は、形態素解析を行って、文字列を複数の単語に分割する。
第5生成部1901は、単語を1つ特定する(S2103)。例えば、第5生成部1901は、分割された単語を先頭から順番に特定する。
第5生成部1901は、意味ベクトルデータベース123から、当該単語の意味ベクトルを取得する(S2105)。そして、第5生成部1901は、取得した意味ベクトルを、意味に関する特徴の列に加える(S2107)。意味に関する特徴の列は、具体的には意味ベクトルの列であって、内部パラメータとして保持される。
第5生成部1901は、未処理の単語があるか否かを判定する(S2109)。未処理の単語があると判定した場合には、S2103に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第5生成部1901は、意味に関する特徴の列において連続する3つの意味ベクトルのセットを特定する(S2111)。最初に、1番目から3番目までの意味ベクトルが特定される。次に、2番目から4番目までの意味ベクトルが特定される。その後も、順次シフトして3つの意味ベクトルが特定される。
第5生成部1901は、当該セットに含まれる意味ベクトルにおける要素のうち、最大値を特定する(S2113)。そして、第5生成部1901は、当該最大値を、意味に関するパラメータの列に加える(S2115)。意味に関するパラメータの列は、内部パラメータとして保持される。
第5生成部1901は、未処理のセットがあるか否かを判定する(S2117)。未処理のセットがあると判定した場合には、S2111に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のセットがないと判定した場合には、第5生成処理を終える。第5生成処理を終えると、呼び出し元の評価処理に復帰する。
図20の説明に戻る。第1適用部1903は、第1適用処理を実行する(S2005)。第1適用処理において、第1適用部1903は、第5生成処理において生成された意味に関する各パラメータを、学習処理において生成された第1モデルに適用する。具体的には、第1適用部1903は、意味に関する各パラメータを、図6に示したニューラルネットワークの入力層における対応するユニットに設定する。更に、第1適用部1903は、第1モデルデータ記憶部125で記憶している結合荷重を用いてニューラルネットワークを動作させる。その結果、出力層のユニットから意味に関する第1評価値が出力される。
第6生成部1905は、第6生成処理(A)を実行する(S2007)。第6生成処理(A)では、評価される文字列に含まれる各音節の音声に関する特徴に基づいて、音声に関するパラメータが生成される。このパラメータは、学習処理における第3生成処理(A)の場合と同様の手順によって生成される。
図22Aに、第6生成処理(A)フローを示す。第6生成部1905は、評価される文字列に含まれる単語を抽出する(S2201)。例えば、第6生成部1905は、形態素解析を行って、文字列を複数の単語に分割する。
第6生成部1905は、単語を1つ特定する(S2203)。例えば、第6生成部1905は、分割された単語を先頭から順番に特定する。
第6生成部1905は、音声表記データベース127から、当該単語の平仮名表記を取得する(S2205)。第6生成部1905は、当該単語の平仮名表記を、文字列の平仮名表記に追加する(S2207)。文字列の平仮名表記は、内部パラメータとして保持される。
第6生成部1905は、未処理の単語があるか否かを判定する(S2209)。未処理の単語があると判定した場合には、S2203に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第6生成部1905は、文字列の平仮名表記を文字列のローマ字表記に変換する(S2211)。文字列のローマ字表記は、内部パラメータとして保持される。そして、端子Fを介して、図22Bに示したS2213の処理に移る。
図22Bの説明に移る。第6生成部1905は、文字列のローマ字表記に含まれる音節を1つ特定する(S2213)。この例では、第6生成部1905は、前から後ろへ順番に音節を特定する。
第6生成部1905は、第3生成処理(A)の場合と同様に、当該音節を音声ベクトルに変換する(S2215)。第6生成部1905は、当該音声ベクトルを、音声に関する特徴の列に加える(S2217)。音声に関する特徴の列は、具体的には音声ベクトルの列であって、内部パラメータとして保持される。
第6生成部1905は、未処理の音節があるか否かを判定する(S2219)。未処理の音節があると判定した場合には、S2213に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音節がないと判定した場合には、第6生成部1905は、音声に関する特徴の列における音声ベクトルを1つ特定する(S2221)。例えば、当該列の先頭から順番に音声ベクトルを特定する。
第6生成部1905は、第3生成処理(A)の場合と同様に、当該音声ベクトルを数値に変換する(S2223)。そして、第6生成部1905は、当該数値を、音声に関するパラメータの列に加える(S2225)。音声に関するパラメータの列は、内部パラメータとして保持される。
第6生成部1905は、未処理の音声ベクトルがあるか否かを判定する(S2227)。未処理の音声ベクトルがあると判定した場合には、S2221に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音声ベクトルがないと判定した場合には、第6生成処理(A)を終える。第6生成処理(A)を終えると、呼び出し元の評価処理に復帰する。
図20の説明に戻る。第2適用部1907は、第2適用処理を実行する(S2009)。第2適用処理において、第2適用部1907は、第6生成処理(A)において生成された音声に関する各パラメータを、学習処理において生成された第2モデルに適用する。具体的には、第2適用部1907は、音声に関する各パラメータを、図8に示したニューラルネットワークの入力層におけるユニットに設定する。更に、第2適用部1907は、第2モデルデータ記憶部129で記憶している結合荷重を用いてニューラルネットワークを動作させる。その結果、出力層のユニットから音声に関する第2評価値が出力される。
算出部1909は、算出処理を実行する(S2011)。算出処理では、第1評価値及び第2評価値に基づいて、総合的な第3評価値を算出する。以下、算出処理の例を2つ示す。
図23に、算出処理(A)フローを示す。算出部1909は、第1評価値に第1係数を乗じる(S2301)。算出部1909は、第2評価値に第2係数を乗じる(S2303)。算出部1909は、S2301で算出した積とS2303で算出した積との和を求め、第3評価値とする(S2305)。算出処理(A)を終えると、呼び出し元の評価処理に復帰する。尚、第1係数は、第1評価値に対する重みに相当する。尚、第2係数は、第2評価値に対する重みに相当する。
図24に、算出処理(B)フローを示す。算出処理(B)では、2段階で評価する。評価値「1」は、当該文字列の評価が良いことを示す。評価値「0」は、当該文字列の評価が悪いことを示す。
まず、算出部1909は、第1評価値が閾値を超えるか否かを判定する(S2401)。第1評価値が閾値を超えないと判定した場合には、算出部1909は、第3評価値を「0」とする(S2403)。
一方、第1評価値が閾値を超えると判定した場合には、算出部1909は、第2評価値が閾値を超えるか否かを判定する(S2405)。第2評価値が閾値を超えないと判定した場合には、算出部1909は、第3評価値を「0」とする(S2403)。
一方、第2評価値が閾値を超えると判定した場合には、第3評価値を「1」とする(S2407)。
この例では、第1評価値及び第2評価値が閾値を超える場合に、第3評価値を「1」とする。但し、少なくとも第1評価値又は第2評価値が閾値を超える場合に、第3評価値を「1」とするようにしてもよい。算出処理を終えると、呼び出し元の評価処理に復帰する。
図20の説明に戻る。出力部111は、第3評価値を出力する(S2013)。
本実施の形態によれば、文字列に対する読者の感性的な評価を推定することができる。例えば、暗示的な関連や言語的なリズムのように定式化し難い規則が反映されると期待される。
また、単語から読者が受ける意味的な印象を第1モデルに反映することができる。
また、音節から読者が受ける音声的な印象を第2モデルに反映することができる。
[実施の形態2]
本実施の形態では、英語の文字列に関する適用例について説明する。
実施の形態2における評価装置101のモジュール構成は、実施の形態1の場合と同様(図1)である。
図25に、実施の形態2における教師データの例を示す。実施の形態2における教師データの構成は、実施の形態1の場合(図2)と同様である。
図26に、実施の形態2における意味ベクトルデータベース123の例を示す。実施の形態2における意味ベクトルデータベース123の構成は、実施の形態1の場合(図3)と同様である。
図27に、実施の形態2における音声表記データベース127の例を示す。この例で、音声表記データベース127におけるテーブルは、単語に対応するレコードを有している。音声表記データベース127におけるテーブルのレコードは、単語が格納されるフィールドと、発音記号表記が格納されるフィールドとを有している。
発音記号表記は、当該単語の読みを発音記号で表す。音声表記データベース127は、音声表記に加えて、音響における波形を示すデータを記憶するようにしてもよい。
実施の形態2において意味に関するパラメータを算出する手順は、実施の形態1の場合と同様(図5)である。図28に、実施の形態2において意味に関するパラメータを算出する手順の例を示す。まず、文字列を単語に分割する。
次に、各単語が、意味に関する特徴に相当する意味ベクトルに変換される。例えば、単語「cherry」は、意味ベクトル(0.3,0.2,…,0.9)に変換される。各単語の意味ベクトルは、上述したように、予め用意されている意味ベクトルデータベース123に登録されている。
実施の形態2において意味に関する機械学習に用いられるニューラルネットワークの構成は、実施の形態1の場合(図6)と同様である。
図29に、実施の形態2において音声に関するパラメータを算出する手順を示す。まず、文字列を発音記号表記に変換する。
次に、発音記号表記から単語を抽出し、抽出された各単語の発音記号表記を音声に関する特徴に変換する。図30に、音声ベクトルの各要素に対する母音及び子音の対応例を示す。この例で、音声に関する特徴は45次元の音声ベクトルで表される。当該音声ベクトルに含まれる各要素は、母音又は子音に対応する。そして、単語の発音記号表記が当該要素に対応する母音又は子音を含む場合に、当該要素の値は「1」となる。この例では、同一の母音又は子音を複数含む場合に、当該母音又は子音に相当する要素の値を「1」とする。但し、同一の母音又は子音を複数含む場合に、要素の値にその個数を設定するようにしてもよい。
そして、音声に関する特徴である音声ベクトルを音声に関するパラメータに変換する。この例では、音声ベクトルに含まれる45個の要素を、45桁の2進数における各桁に対応付ける。そして、当該2進数の値を16進数の値に変換する。例えば、音声に関する1番目の特徴である音声ベクトル(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0)の場合には、2進数「000000001000100000000000001000000001000000000」が16進数「0x001100040200」に変換される。そして、16進数「0x001100040200」が音声に関する1番目のパラメータとなる。
実施の形態2において音声に関する機械学習に用いられるニューラルネットワークの構成は、実施の形態1の場合(図8)と同様である。
図31に、実施の形態2における学習部105のモジュール構成例を示す。実施の形態2における学習部105は、第1表記記憶部925及び第2表記記憶部927に代えて、第3表記記憶部3101を有する。第3表記記憶部3101は、第3表記テーブルを記憶する。第3表記テーブルについては、図33を用いて後述する。
第3表記記憶部3101は、ハードウエア資源(例えば、図39)を用いて実現される。
第3生成部905は、第3生成処理(A)に代えて、第3生成処理(B)を実行する。 図32に、実施の形態2における学習処理フローを示す。第1受付部103は、実施の形態1の場合と同様に、教師データを受け付ける(S1001)。受け付けられた教師データは、教師データ記憶部121において記憶される。
第1生成部901は、実施の形態1の場合と同様に、第1生成処理を実行する(S1003)。
第1生成処理は、実施の形態1の場合(図13A及び図13B)と同様である。尚、第1特徴テーブルの構成は、実施の形態1の場合(図11)と同様である。また、第1パラメータテーブルの構成も、実施の形態1の場合(図12)と同様である。
第2生成処理も、実施の形態1の場合と同様である。
第3生成部905は、第3生成処理(B)を実行する(S3201)。第3生成処理(B)について説明する前に、第3表記テーブル、第2特徴テーブル及び第2パラメータテーブルについて説明する。
図33に、第3表記テーブルの例を示す。この例における第3表記テーブルは、サンプルに対応するレコードを有している。第3表記テーブルのレコードは、サンプルIDが格納されるフィールドと、文字列の発音記号表記が格納されるフィールドとを有している。
サンプルIDは、サンプルを識別する。文字列の発音記号表記は、当該サンプルの文字列の読みを発音記号で表す。
実施の形態2における第2特徴テーブルの構成は、実施の形態1の場合(図16)と同様である。図34に、実施の形態2における第2特徴テーブルの例を示す。
例えば、図示した1番目のレコードは、1番目のサンプルにおける最初の単語が音声ベクトル(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0)で表されることを示している。
実施の形態2における第2パラメータテーブルの構成は、実施の形態1の場合(図17)と同様である。図35に、実施の形態2における第2パラメータテーブルの例を示す。
例えば、図示した1番目のレコードは、サンプルID「S001」で識別される文字列に含まれる最初の単語の特徴に基づくパラメータが16進数「0x001100040200」であることを示している。
続いて、第3生成処理(B)について説明する。図36Aに、第3生成処理(B)フローを示す。第3生成部905は、実施の形態1の場合(図18A)と同様に、サンプルを1つ特定する(S1801)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、第3表記テーブルに新たなレコードを設ける(S3601)。新たなレコードには、S1801で特定されたサンプルIDが格納される。
第3生成部905は、当該サンプルの文字列に含まれる単語を抽出する(S1805)。例えば、第3生成部905は、形態素解析を行って、文字列を複数の単語に分割する。
第3生成部905は、実施の形態1の場合と同様に、抽出された単語を1つ特定する(S1807)。具体的には、第1生成部901は、分割された単語を先頭から順に特定する。
第3生成部905は、音声表記データベース127から、当該単語の発音記号表記を取得する(S3603)。そして、第3生成部905は、当該単語の発音記号表記を、S3601で設けた文字列の発音記号表記のフィールドに追加する(S3605)。
第3生成部905は、S1805において抽出された単語のうち、未処理の単語があるか否かを判定する(S1813)。未処理の単語があると判定した場合には、S1807に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1815)。未処理のサンプルがあると判定した場合には、S1801に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Gを介して、図36Bに示したS1841の処理に移る。未処理のサンプルがないと判定した時点で、第3表記テーブルの生成が完了する。
図36Bの説明に移る。以下の処理では、第2特徴テーブルを生成する。第3生成部905は、実施の形態1の場合(図18C)と同様に、サンプルを1つ特定する(S1841)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、実施の形態1の場合と同様に、第2特徴テーブルに新たなレコードを設ける(S1843)。新たなレコードには、S1841で特定されたサンプルIDが格納される。
第3生成部905は、文字列の発音記号表記に含まれる単語を1つ特定する(S3607)。この例では、第3生成部905は、前から後ろへ順番に単語を特定する。
第3生成部905は、当該単語の発音記号表記を音声ベクトルに変換する(S3609)。当該単語の発音記号表記に含まれる母音に対応する要素の値を「1」とする。また、当該単語の発音記号表記が子音を含む場合には当該子音に対応する要素の値を「1」とする。それ以外の要素の値を「0」とする。
第3生成部905は、当該音声ベクトルを、S1843において設けられたレコードにおける音声に関する特徴のフィールドに順次格納する(S1849)。
第3生成部905は、未処理の単語があるか否かを判定する(S3611)。未処理の単語があると判定した場合には、S3607に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1853)。未処理のサンプルがあると判定した場合には、S1841に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、端子Hを介して、図36Cに示したS1861の処理に移る。未処理のサンプルがないと判定した時点で、第2特徴テーブルの生成が完了する。
図36Cの説明に移る。以下の処理では、第2パラメータテーブルを生成する。第3生成部905は、実施の形態1の場合(図18D)と同様に、サンプルを1つ特定する(S1861)。第3生成部905は、例えば昇順にサンプルIDを特定する。
第3生成部905は、実施の形態1の場合と同様に、第2パラメータテーブルに新たなレコードを設ける(S1863)。新たなレコードには、S1861で特定されたサンプルIDが格納される。
第3生成部905は、実施の形態1の場合と同様に、第2特徴テーブルにおける当該サンプルのレコードにおいて、音声に関する特徴のフィールドに格納されている音声ベクトルを1つ特定する(S1865)。具体的には、第3生成部905は、前から後ろへ順番に音声に関する特徴のフィールドを特定して、当該フィールドに格納されているベクトルを読み取る。
第3生成部905は、当該音声ベクトルを数値に変換する(S1867)。上述したように、第3生成部905は、当該音声ベクトルに含まれる45個の要素を、それぞれ2進数の各桁に対応付けた45桁の2進数の値を16進数に変換する。
そして、第3生成部905は、当該数値を、S1863において設けた音声に関するパラメータのフィールドに順次格納する(S1869)。
第3生成部905は、未処理の音声ベクトルがあるか否かを判定する(S1871)。未処理の音声ベクトルがあると判定した場合には、S1865に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音声ベクトルがないと判定した場合には、第3生成部905は、未処理のサンプルがあるか否かを判定する(S1873)。未処理のサンプルがあると判定した場合には、S1861に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のサンプルがないと判定した場合には、第3生成処理(B)を終える。未処理のサンプルがないと判定した時点で、第2パラメータテーブルの生成が完了する。第3生成処理(B)を終えると、呼び出し元の学習処理に復帰する。
図32の説明に戻る。第4生成処理は、実施の形態1の場合と同様である(S1009)。
続いて、評価部109の動作について説明する。実施の形態2における評価部109のモジュール構成は、実施の形態1の場合(図19)と同様である。
但し、第6生成部1905は、第6生成処理(B)を実行する。第6生成処理(B)では、評価される文字列に含まれる各単語の音声に関する特徴に基づいて、音声に関するパラメータが生成される。
図37に、実施の形態2における評価処理フローを示す。第2受付部107は、実施の形態1の場合(図20)と同様に、評価される文字列を受け付ける(S2001)。受け付けられた文字列は、内部パラメータとして保持される。
第5生成部1901は、実施の形態1の場合と同様に、第5生成処理を実行する(S2003)。
第1適用部1903は、実施の形態1の場合と同様に、第1適用処理を実行する(S2005)。
第6生成部1905は、第6生成処理(B)を実行する(S3701)。第6生成処理(B)では、評価される文字列に含まれる各単語の音声に関する特徴に基づいて、音声に関するパラメータが生成される。このパラメータは、学習処理における第3生成処理(B)の場合と同様の手順によって生成される。
図38Aに、第6生成処理(B)フローを示す。第6生成部1905は、評価される文字列に含まれる単語を抽出する(S2201)。例えば、第6生成部1905は、形態素解析を行って、文字列を複数の単語に分割する。
第6生成部1905は、単語を1つ特定する(S2203)。例えば、第6生成部1905は、分割された単語を先頭から順番に特定する。
第6生成部1905は、音声表記データベース127から、当該単語の発音記号表記を取得する(S3801)。第6生成部1905は、当該単語の発音記号表記を、文字列の発音記号表記に追加する(S3803)。文字列の発音記号表記は、内部パラメータとして保持される。
第6生成部1905は、未処理の単語があるか否かを判定する(S2209)。未処理の単語があると判定した場合には、S2203に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、端子Iを介して、図38Bに示したS3805の処理に移る。
図38Bの説明に移る。第6生成部1905は、文字列の発音記号表記に含まれる単語を1つ特定する(S3805)。この例では、第6生成部1905は、前から後ろへ順番に単語を特定する。
第6生成部1905は、第3生成処理(B)の場合と同様に、当該単語の発音記号表記を音声ベクトルに変換する(S3807)。第6生成部1905は、当該音声ベクトルを、音声に関する特徴の列に加える(S2217)。音声に関する特徴の列は、具体的には音声ベクトルの列であって、内部パラメータとして保持される。
第6生成部1905は、未処理の単語があるか否かを判定する(S3809)。未処理の単語があると判定した場合には、S3805に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の単語がないと判定した場合には、第6生成部1905は、音声に関する特徴の列における音声ベクトルを1つ特定する(S2221)。例えば、当該列の先頭から順番に音声ベクトルを特定する。
第6生成部1905は、第3生成処理(B)の場合と同様に、当該音声ベクトルを数値に変換する(S2223)。そして、第6生成部1905は、当該数値を、音声に関するパラメータの列に加える(S2225)。音声に関するパラメータの列は、内部パラメータとして保持される。
第6生成部1905は、未処理の音声ベクトルがあるか否かを判定する(S2227)。未処理の音声ベクトルがあると判定した場合には、S2221に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の音声ベクトルがないと判定した場合には、第6生成処理(B)を終える。第6生成処理(B)を終えると、呼び出し元の評価処理に復帰する。
図37の説明に戻る。第2適用部1907は、実施の形態1(図20)の場合と同様に、第2適用処理を実行する(S2009)。
算出部1909は、実施の形態1の場合と同様に、算出処理を実行する(S2011)。算出処理では、第1評価値及び第2評価値に基づいて、総合的な第3評価値を算出する。実施の形態2において、算出部1909は、図23に示した算出処理(A)又は図24に示した算出処理(B)を実行するようにしてもよい。
出力部111は、実施の形態1の場合と同様に、第3評価値を出力する(S2013)。
本実施の形態によれば、文字列に対する読者の感性的な評価を推定することができる。例えば、暗示的な関連や言語的なリズムのように定式化し難い規則が反映されると期待される。
また、単語から読者が受ける意味的な印象を第1モデルに反映することができる。
また、単語から読者が受ける音声的な印象を第2モデルに反映することができる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べた評価装置101は、コンピュータ装置であって、図39に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る評価方法は、(A)文字列と評価値とを対応付けたサンプルを複数含む教師データを用いて、文字列の意味の特徴に基づいて評価値を導く第1モデルを生成し、(B)上記教師データを用いて、文字列の音声の特徴に基づいて評価値を導く第2モデルを生成し、(C)評価される文字列における意味の特徴を第1モデルに適用することによって導かれた第1評価値と、評価される文字列における音声の特徴を第2モデルに適用することによって導かれた第2評価値とに基づいて、第3評価値を算出する処理を含む。
このようにすれば、文字列に対する読者の感性的な評価を推定することができる。
更に、文字列の意味の特徴は、当該文字列に含まれる複数の言語単位の各々における意味に基づくものであってもよい。
このようにすれば、言語単位から読者が受ける意味的な印象を第1モデルに反映することができる。
更に、文字列の音声の特徴は、当該文字列に含まれる複数の音節の各々における音声に基づくものであってもよい。
このようにすれば、音節から読者が受ける音声的な印象を第2モデルに反映することができる。
更に、文字列の音声の特徴は、当該文字列に含まれる複数の単語の各々における音声に基づくものであってもよい。
このようにすれば、単語から読者が受ける音声的な印象を第2モデルに反映することができる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
文字列と評価値とを対応付けたサンプルを複数含む教師データを用いて、文字列の意味の特徴に基づいて評価値を導く第1モデルを生成し、
前記教師データを用いて、文字列の音声の特徴に基づいて評価値を導く第2モデルを生成し、
評価される文字列における前記意味の特徴を前記第1モデルに適用することによって導かれた第1評価値と、前記評価される文字列における前記音声の特徴を前記第2モデルに適用することによって導かれた第2評価値とに基づいて、第3評価値を算出する
処理を実行させる評価プログラム。
(付記2)
前記文字列の意味の特徴は、当該文字列に含まれる複数の言語単位の各々における意味に基づく
付記1記載の評価プログラム。
(付記3)
前記文字列の音声の特徴は、当該文字列に含まれる複数の音節の各々における音声に基づく
付記1又は2記載の評価プログラム。
(付記4)
前記文字列の音声の特徴は、当該文字列に含まれる複数の単語の各々における音声に基づく
付記1又は2記載の評価プログラム。
(付記5)
文字列と評価値とを対応付けたサンプルを複数含む教師データを用いて、文字列の意味の特徴に基づいて評価値を導く第1モデルを生成し、
前記教師データを用いて、文字列の音声の特徴に基づいて評価値を導く第2モデルを生成し、
評価される文字列における前記意味の特徴を前記第1モデルに適用することによって導かれた第1評価値と、前記評価される文字列における前記音声の特徴を前記第2モデルに適用することによって導かれた第2評価値とに基づいて、第3評価値を算出する
処理を含み、コンピュータにより実行される評価方法。
(付記6)
文字列と評価値とを対応付けたサンプルを複数含む教師データを用いて、文字列の意味の特徴に基づいて評価値を導く第1モデルを生成する第1生成部と、
前記教師データを用いて、文字列の音声の特徴に基づいて評価値を導く第2モデルを生成する第2生成部と、
評価される文字列における前記意味の特徴を前記第1モデルに適用することによって導かれた第1評価値と、前記評価される文字列における前記音声の特徴を前記第2モデルに適用することによって導かれた第2評価値とに基づいて、第3評価値を算出する算出部と
を有する評価装置。