(57)【特許請求の範囲】
【請求項１】
最も確からしい音声認識結果を含む確からしさ上位N個の音声認識結果について音声認識結果整形を行う音声認識結果整形装置において、
複数の整形文が記憶されている整形文記憶部と、
上記整形文記憶部から読み込んだ複数の整形文のそれぞれと上記上位N個の音声認識結果の文のそれぞれとの組み合わせについて複数種類の類似度を重み付けして求めた統合類似度が上記複数の整形文の中で最も高い整形文である最大類似度整形文を出力する類似度計算部と、
上記最大類似度整形文を整形された音声認識結果として出力する整形部と、
を含み、
上記類似度計算部は、上記整形文記憶部に記憶されている複数の整形文それぞれについて上記複数の整形文のうちその整形文との上記統合類似度が高い所定の数の整形文を対応付けた対応表を用いて、上記上位N個の音声認識結果の文それぞれについて上記対応表を探索することで上記最大類似度整形文を求めるものである、
音声認識結果整形装置。
【請求項２】
最も確からしい音声認識結果を含む確からしさ上位N個の音声認識結果について音声認識結果整形を行う音声認識結果整形方法において、
整形文記憶部に、複数の整形文が記憶されており、
類似度計算部が、上記整形文記憶部から読み込んだ複数の整形文のそれぞれと上記上位N個の音声認識結果の文のそれぞれとの組み合わせについて複数種類の類似度を重み付けして求めた統合類似度が上記複数の整形文の中で最も高い整形文である最大類似度整形文を出力する類似度計算ステップと、
整形部が、上記最大類似度整形文を整形された音声認識結果として出力する整形ステップと、
を含み、
上記類似度計算ステップは、上記整形文記憶部に記憶されている複数の整形文それぞれについて上記複数の整形文のうちその整形文との上記統合類似度が高い所定の数の整形文を対応付けた対応表を用いて、上記上位N個の音声認識結果の文それぞれについて上記対応表を探索することで上記最大類似度整形文を求めるものである、
音声認識結果整形方法。
【請求項３】
請求項１に記載の音声認識結果整形装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、音声認識結果の整形技術に関する。
【背景技術】
【０００２】
音声認識結果には、誤認識や言い誤りの表現が含まれることにより、文中に誤った文字が挿入されたり、文字が欠落したり、本来あるべき文字が別の文字に置き変わっていたりするなどの現象が生じる。これにより、可読性が落ちたり、後段の言語処理が失敗したりするなどの問題がある。これを整った文（すなわち、本来発話しようとした正解の文）と内容が一致するように自動で事後修正することを、音声認識結果の「整形」と呼ぶ。
【０００３】
従来の音声認識結果の整形技術として、非特許文献１に記載された技術が知られている。また、音声認識結果とデータベースとの間において、特定の単語が含まれているか、音素がいかほど一致しているか、といった表層的な尺度を用いて類似の文を検索し、類似の文が存在すれば、音声認識結果をその類似の文に置換するという方法がある。例えば、音声認識結果が「ここらへんのカフェを調べて惜しい」という誤認識が含まれるものであったとき、データベース中の「ここらへんのカフェを調べてほしい」という整った文を抽出し、これに置換することで整形を行う。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Graham Neubig、秋田祐哉、森信介、河原達也、“文脈を考慮した確率的モデルによる話し言葉の整形”、情報処理学会研究報告、2009-SLP-79(17)、pp. 1-6、2009年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の音声認識結果の整形技術では、類似文探索に意味的尺度が考慮されない。例えば、「ここらへんのカフェを調べて惜しい」（「惜しい」は「ほしい」の誤り）という認識結果に対して、データベースには「ここらへんのカフェを調べてほしい」という文は存在せず、「ここらへんのカフェを検索する」という文が存在する場合を考える。従来技術では、他に類似の文が存在しない限り整形は行われない。このとき、「調べてほしい」が「検索する」になったとしても意味としては同義であるため、「ここらへんのカフェを検索する」という文に整形されたとしても利用者の目的は達成される。しかし、「調べてほしい」と「検索する」が文字列として一致しているわけではないため、従来技術では「調べてほしい」と「検索する」が同義であることを人間のように判断することができない。このように、従来技術では意味的尺度を考慮した整形を行うことは困難であった。
【０００６】
また、従来の音声認識結果の整形技術では、複雑な類似度計算による探索速度の問題があった。意味的類似度を用いた複雑な距離尺度を用いると、音声認識結果とデータベースの文字列との類似性を計算することに時間がかかるため、音声認識を行った後に整形結果を即座にユーザへ提示することが困難であり、利便性が低い。
【０００７】
この発明の目的は、様々な類似度尺度を総合的に評価することでより適切に整形を行うことができる音声認識結果整形技術を提供することである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、この発明の音声認識結果整形装置は、最も確からしい音声認識結果を含む確からしさ上位N個の音声認識結果について音声認識結果整形を行う音声認識結果整形装置において、複数の整形文が記憶されている整形文記憶部と、整形文記憶部から読み込んだ複数の整形文のそれぞれと上位N個の音声認識結果の文のそれぞれとの組み合わせについて複数種類の類似度を重み付けして求めた統合類似度が複数の整形文の中で最も高い整形文である最大類似度整形文を出力する類似度計算部と、最大類似度整形文を整形された音声認識結果として出力する整形部と、を含む。
【発明の効果】
【０００９】
この発明の音声認識結果整形技術によれば、様々な類似度尺度を総合的に評価することでより適切に整形を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、音声認識結果整形装置の機能構成を例示する図である。
【図２】図２は、音声認識結果整形方法の処理フローを例示する図である。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態について詳細に説明する。
［第一実施形態］
図１に示すように、音声認識結果整形装置は、音声認識部１と、整形文記憶部２と、類似度計算部３と、整形部４とを例えば備えている。この音声認識結果整形装置が、図２に例示する各ステップの処理を行うことにより音声認識結果整形方法が実現される。
【００１２】
なお、音声認識結果整形装置は、音声認識部１を備えていなくてもよい。この場合、音声認識結果整形装置の外部の音声認識部により計算された音声認識結果の上位からN位までの文、及び、必要に応じて各文の各単語に対する信頼度が類似度計算部３に入力される。
【００１３】
＜音声認識部１＞
音声認識部１には、音声データ（pcm,wavなど）、及び、必要に応じてユーザによって選択された最大結果出力数Nが入力される。ここで、Nは所定の正の整数である。Nが予め定められている場合には、Nがユーザによって選択及び入力されなくてもよい。音声認識部１は、例えば下記の処理を行い、音声認識結果の上位からN位までの文、及び、必要に応じて各文の各単語に対する信頼度（音声認識アルゴリズムがその単語らしいと判断したスコア）を出力する。
【００１４】
音声認識部１は、音声を入力として受け取り、一般的な文音声認識方法によって音声認識結果である文、及び、必要に応じて文中に含まれる各単語の信頼度を出力する。信頼度の計算には、例えば参考文献１に記載された方法を用いることができる。
〔参考文献１〕中川聖一，堀部千寿，“音響尤度と言語尤度を用いた音声認識結果の信頼度の算出”，情報処理学会研究報告，音声言語情報処理36-13, pp.87-92, (2001)
【００１５】
例えば、「綺麗な風景画像がほしい」という発話（音声データ入力）に対して、音声認識部１によって、以下のように出力した文単位の結果と、その文の全単語の音響尤度と言語尤度の総和に基づいた文としての確からしさの順位と、テキスト文中の各単語に信頼度を持つ複数の認識結果が出力される。
【００１６】
1位：綺麗な風景などをがほしい
信頼度：綺麗な→0.7  風景→0.5  など→0.3  を→0.2  が→0.6  ほしい→0.9
2位：綺麗な風景画像がほしい
信頼度：綺麗な→0.7  風景→0.5  画像→0.2  が→0.6  ほしい→0.9
【００１７】
通常の音声認識処理では、1位の結果を最適な候補として選択し出力する。本実施形態においては、1位以外の下位の結果もその後の音声認識結果の整形処理に利用するため、これらの複数の認識結果をそのまま類似度計算部３に渡す。しかし、例えば、音声認識結果が200位まで存在すると仮定すると、1位〜200位全ての文を音声認識部１が計算するのは時間がかかる。そこで、上位最大何位まで考慮するかの整数N（ただし1≦N≦(認識結果順位の上限)）を例えば利用者が入力し、1位からN位までと制限をしたうえで、該当する最大N個の文、及び、各単語の信頼度を計算結果として出力してもよい。
【００１８】
このようにして、音声認識部１は音声認識を行い、最も確からしい音声認識結果を含む確からしさ上位N個の音声認識結果を出力する（ステップＳ１）。類似度計算部３の処理で用いられる場合には、音声認識部１は上位N個の音声認識結果に含まれる各単語の信頼度を更に出力する。
【００１９】
＜整形文記憶部２＞
整形文記憶部２には、複数の整形文が記憶されている。整形文記憶部２に記憶されている整形文の数をDとする。Dは2以上の整数である。整形文は、日本語として文法の誤りが少ないように予め整形された文である。整形文として、例えば、過去の手入力文を用いることができる。また、整形文は、過去の音声入力発話からある閾値以下の信頼度の単語を1つ以上含んでいるような文を削除するなどの方法により生成されてもよい。
【００２０】
＜類似度計算部３＞
類似度計算部３には、最も確からしい音声認識結果を含む確からしさ上位N個の音声認識結果、及び、整形文記憶部２から読み込んだ複数の整形文が入力される。類似度計算部３は、例えば下記の処理を行い、最大類似度整形文を出力する（ステップＳ２）。
【００２１】
類似度計算部３は、上位N個の音声認識結果の文及び複数の整形文を適切な特徴量である特徴ベクトルに変換する。これは、音声認識結果の文を整形文記憶部２に記憶された複数の整形文の中の類似の文に置換する際、類似していることを数値計算で扱えるようにすることが目的である。
【００２２】
例えば、次のような誤認識を含む音声認識結果の文を考える。
【００２３】
発話：「綺麗な風景画像がほしい」
音声認識結果：「綺麗な風景などをがほしい」（「画像」→「などを」と誤認識）
この音声認識結果を、類似した正しい文に置換する。整形文記憶部２には、下記のような多数の整形文を用意しておく。
【００２４】
「綺麗な風景画像がほしい」
「綺麗な風景がみれる場所」
「綺麗な風景を教えて」
・・・
まず、類似度計算部３は、音声認識部１が出力した上位N個の音声認識結果の文のそれぞれと、整形文記憶部２から読み込んだ複数の整形文のそれぞれとについて、このままだと言葉の形式になっているものを、特徴ベクトル化する。実用上は、整形文記憶部２に記憶されている整形文はすでに与えられているため、予め以下に示す（１）から（５）の方法によって特徴ベクトル化しておき、入力が与えられたときは音声認識結果の文のみについて特徴ベクトルへの変換を行ってもよい。
【００２５】
次に、類似度計算部３は、音声認識結果の文の特徴ベクトルと整形文の特徴ベクトルとを用いて類似度の計算を行う。類似度計算には、それぞれの特徴ベクトル化に応じた距離尺度を用いる。具体的には、特徴ベクトル化と類似度計算には以下の（１）から（５）に示す方法を用いる。
【００２６】
（１）第一の方法について
第一の方法では、ある文の特徴ベクトルを、その文の各単語の出現頻度を表すベクトルとする。また、ある第一文とある第二文の類似度は、その第一文の特徴ベクトルとその第二文の特徴ベクトルとの距離の近さであるとする。距離の近さとは、例えば後述するコサイン距離（cos距離）である。ある第一文とは複数の整形文の何れかであり、ある第二文とは上位N個の音声認識結果の文の何れかである。
【００２７】
すなわち、第一の方法では、音声認識結果の文の特徴ベクトルの各次元の値を、当該音声認識結果文中の単語の出現頻度とする。また、整形文の特徴ベクトルの各次元の値を、当該整形文の中の単語の出現頻度とする。そして、全ての音声認識結果の文と全ての整形文を特徴ベクトル化してcos類似度を取り、最高類似度の文である最大類似度整形文と、必要に応じてその類似度を出力する。
【００２８】
音声認識結果の文の特徴ベクトルを算出する方法を、「綺麗な風景などをがほしい」という音声認識結果の文を例として説明する。まず、数値ベクトルを考える。数値ベクトルは、音声認識の辞書に出現する全ての単語の分だけ次元を持ち、各次元に実数値を取るベクトルと定義する。このとき、数値ベクトルの各次元の値は、各単語の出現頻度なので、
綺麗な→1  風景→1  など→1  を→1  が→1  ほしい→1
となり、他は0となる。この特徴ベクトル化を1位〜N位の音声認識結果の文のそれぞれに対して行う。以下、その特徴ベクトルをxi (1≦i≦N)とする。
【００２９】
第一の方法では、出現頻度とは、その文1つの中で何回該当単語が出現するか、という意味である。例えば、「綺麗な綺麗な風景画像」という文であれば、
綺麗な→2  風景→1  画像→1
となる。
【００３０】
整形文記憶部２に記憶された整形文の特徴ベクトルを算出する方法を、「綺麗な風景画像がほしい」という整形文を例として説明する。このとき、数値ベクトルの各次元の値は、
綺麗な→1  風景→1  画像→1  が→1  ほしい→1
であり、他は0となる。この特徴ベクトル化を整形文記憶部２に記憶された複数の整形文のそれぞれに対して行う。以下、その特徴ベクトルをyi (1≦j≦D)とする。Dは、整形文記憶部２に記憶された整形文の数である。
【００３１】
ベクトルxとベクトルyのcos距離は、次式で定義される。
【００３２】
【数１】
0006389795.tif 000002
【００３３】
ここで、||x||及び||y||は、それぞれベクトルx,yのノルムに相当する。
【００３４】
上記の音声認識結果の文「綺麗な風景などをがほしい」と整形文「綺麗な風景画像がほしい」とのcos距離を計算する例を以下に示す。
【００３５】
x・y=1×1 (綺麗な)+1×1 (風景)+1×0 (など)+1×0 (を)+1×1 (が)+1×1 (ほしい)+1×0 (画像)=4
||x||=12 (綺麗な)+12 (風景)+12 (など)+12 (を)+12 (が)+12 (ほしい)=6
||y||=12 (綺麗な)+12 (風景)+12 (画像)+12 (が)+12 (ほしい)=5
であるため、
【００３６】
【数２】
0006389795.tif 000003
となる。
【００３７】
（２）第二の方法について
第二の方法では、ある文の特徴ベクトルを、その文の各単語が整形文記憶部２に記憶されている複数の整形文において出現する頻度を表すベクトルとする。また、ある第一文とある第二文との類似度は、その第一文の特徴ベクトルとその第二文の特徴ベクトルとの距離の近さであるとする。距離の近さとは、例えばcos距離である。ある第一文とは複数の整形文の何れかであり、ある第二文とは上位N個の音声認識結果の文の何れかである。
【００３８】
すなわち、第二の方法では、例えば、音声認識結果の文の特徴ベクトルの各次元の値を、後述するtfidfとする。また、整形文の特徴ベクトルの各次元の値を、後述するtfidfとする。
【００３９】
まず、整形文記憶部２に記憶されている全ての整形文を使って、整形文記憶部２に記憶されている整形文に出現する各単語について、idfを計算する。単語aのidfとは、整形文記憶部２に記憶されている整形文の数をD、そのD個の整形文の中で単語aが出現する文章の数をdとして、log(D/d)である。ここで、対数の底は任意の1より大きい正の実数とする。以下の例では底は10であるとする。例えば、D=150000として、
「綺麗な」が出現する文の数・・・400
「風景」が出現する文の数・・・300
「画像」が出現する文の数・・・2000
「など」が出現する文の数・・・3000
「を」が出現する文の数・・・50000
「が」が出現する文の数・・・40000
「ほしい」が出現する文の数・・・5000
であったとする。このとき、各単語のidfは、
「綺麗な」のidf＝log(150000/400)=2.24
「風景」のidf＝log(150000/300)=2.70
「画像」のidf＝log(150000/2000)=1.88
「など」のidf＝log(150000/3000)=1.70
「を」のidf＝log(150000/50000)=0.478
「が」のidf＝log(150000/40000)=0.57
「ほしい」のidf＝log(150000/2000)=1.88
と計算される。
【００４０】
次に、音声認識結果の文と整形文について、tfidf値を計算し数値ベクトル化する。まず、単語iについてのtfを定義する。ある文の中の単語がK種類あり、単語iの文中における出現頻度をni (1≦i≦K)とすると、その文における単語iについてのtfiは以下のように表される。
【００４１】
【数３】
0006389795.tif 000004
【００４２】
音声認識結果の文の特徴ベクトルを算出する方法を、「綺麗な風景などをがほしい」という音声認識結果の文を例として説明する。それぞれの単語の出現頻度が、
綺麗な→1  風景→1  など→1  を→1  が→1  ほしい→1
であることから、音声認識結果の文における単語の出現頻度の累計数は6である。したがって、各単語のtfは、
綺麗な→1/6  風景→1/6  など→1/6  を→1/6  が→1/6  ほしい→1/6
となる。tfidfはtfとidfの積によって定義されるため、
綺麗な→(1/6)・2.24＝0.37  風景→(1/6)・2.70=0.45  など→(1/6)・1.70=0.28  を→(1/6)・0.478=0.080  が→(1/6)・0.57=0.095  ほしい→(1/6)・1.88=0.31
となる。このtfidfの値の意味は、「を」などの一般的な単語は軽視し、「風景」などの珍しい単語は情報が多いと考え大きい値を割り当てるものである。
【００４３】
整形文の特徴ベクトルを算出する方法を、「綺麗な風景画像がほしい」という整形文を例として説明する。音声認識結果の文と同様に整形文のtfidfを計算すると、
綺麗な→(1/5)・2.24＝0.45  風景→(1/5)・2.70=0.54  画像→(1/5)・1.70=0.34  が→(1/5)・0.57=0.114  ほしい→(1/5)・1.88=0.38
となる。
【００４４】
（３）第三の方法について
第三の方法では、ある文の特徴ベクトルを、その文の各単語の出現頻度を表すベクトルとし、ある文の信頼度特徴ベクトルを、その文の各単語の信頼度を表すベクトルとする。また、複数の整形文の何れかである第一文と上位N個の音声認識結果の文の何れかである第二文との類似度は、その第一文の特徴ベクトルとその第二文の信頼度特徴ベクトルとの距離の近さである。距離の近さとは、例えばcos距離である。ある第一文とは複数の整形文の何れかであり、ある第二文とは上位N個の音声認識結果の文の何れかである。
【００４５】
すなわち、第三の方法では、例えば、音声認識結果の文の信頼度特徴ベクトルの各次元の値を、その音声認識結果の文の各単語の信頼度とする。また、整形文の特徴ベクトルの各次元の値を、単語の出現頻度とする。
【００４６】
音声認識結果には、信頼度（音声認識アルゴリズムがその単語らしいと判断したスコア）が存在する。信頼度は値が大きいほど音声認識結果の信頼性が高いことを示す。第三の方法を採用する場合には、音声認識結果の文と共にその文の各単語の信頼度が類似度計算部３に入力されるものとする。例えば、音声認識結果の文が「綺麗な風景などをがほしい」であり、各単語の信頼度の値が、
綺麗な→0.7  風景→0.5  など→0.3  を→0.2  が→0.6  ほしい→0.9
であったとする。信頼度特徴ベクトルは、信頼度の値をそのまま用いる。よって、信頼度特徴ベクトルの各次元の値は、
綺麗な→0.7  風景→0.5  など→0.3  を→0.2  が→0.6  ほしい→0.9
となる。
【００４７】
整形文記憶部２に記憶されている整形文については、音声認識結果による信頼度の値がないため、代わりに単語の文中における出現頻度を特徴ベクトル化する。例えば、「綺麗な風景画像がほしい」という整形文は、
綺麗な→1  風景→1  など→1  画像→1  ほしい→1
と特徴ベクトル化される。
【００４８】
（４）第四の方法について
第四の方法では、ある文の特徴ベクトルを、その文を音素列に変換したときの音素の3gramの出現頻度を表すベクトルとする。また、ある第一文とある第二文との類似度は、その第一文の特徴ベクトルとその第二文の特徴ベクトルとの距離の近さであるとする。距離の近さとは、例えばcos距離である。ある第一文とは複数の整形文の何れかであり、ある第二文とは上位N個の音声認識結果の文の何れかである。
【００４９】
すなわち、第四の方法では、音声認識結果の文の特徴ベクトルの各次元の値を、当該音声認識結果文中の音素の3gramの出現頻度とする。また、整形文の特徴ベクトルの各次元の値を、当該整形文の中の音素の3gramの出現頻度とする。そして、全ての音声認識結果の文と全ての整形文を音素列に変換し、音声認識結果の文と整形文をそれぞれ音素の3gramの出現頻度により特徴ベクトル化して、cos類似度により類似度を測る。文字列から音素列への変換は、形態素解析後の各単語について、日本語辞書をもとに自動付与する。
【００５０】
特徴ベクトルを算出する方法を、音声認識結果の文「綺麗な風景などをがほしい」と整形文「綺麗な風景画像がほしい」とを例として説明する。音声認識結果の文「綺麗な風景などをがほしい」の音素列は、
kireinahuukeinadowogahosii（・・・A）
となる。整形文記憶部２に記憶された整形文「綺麗な風景画像がほしい」の音素列は、
kireinahuukeigazougahosii（・・・B）
となる。Aの音素列「kireinahuukeinadowogahosii」であれば、特徴ベクトルは全ての音素の3並びの組み合わせの数だけ次元を持ち、特徴ベクトルの各次元の値は、
kir→1, ire→1, rei→1, rin→1, ina→2, nah→1, ahu→1, huu→1, uuk→1, uke→1, kei→1, ein→1, nad→1,ado→1, dow→1, owo→1, wog→1, oga→1,aho→1, hos→1, osi→1, sii→1
であり、他は0となる。Bの音素列「kireinahuukeigazougahosii」であれば、特徴ベクトルの各次元の値は、
kir→1, ire→1, rei→1, rin→1, ina→1, nah→1, ahu→1, huu→1, uuk→1, uke→1, kei→1, ein→1, iga→1, gaz→1,azo→1, zou →1,oug→1,uga→1,aho→1, hos→1, osi→1, sii→1
であり、他は0となる。
【００５１】
（５）第五の方法について
第五の方法では、ある文の特徴ベクトルを、その文の各単語を要素とするベクトルとする。また、ある第一文とある第二文との類似度は、その第一文の特徴ベクトルとその第二文の特徴ベクトルとの意味的類似度とする。意味的類似度は、例えば後述するWordNetを用いて求める。ある第一文とは複数の整形文の何れかであり、ある第二文とは上位N個の音声認識結果の文の何れかである。
【００５２】
Wordnetは任意の2個の単語に対してその類似度を0以上1以下の値で算出する技術である。Wordnetの出力は、0に近いほど意味が似ておらず、1に近いほど意味が似ていることを示す。例えば、「オレンジ」という単語と、「りんご」「クジラ」「オレンジ」の各単語とのWordnetによる意味的類似度は、
(オレンジ，りんご)=0.25
(オレンジ，クジラ)=0.02
(オレンジ，オレンジ)=1
となる。この例では、オレンジとりんごは同じ果物であるため類似度0.25となり、オレンジとクジラは特に関連がないため類似度0.02となり、オレンジとオレンジは単語として完全一致しているため類似度1という値が算出されている。WordNetの具体的な仕組みは、例えば参考文献２などを参照されたい。
〔参考文献２〕Francis Bond, Timothy Baldwin, Richard Fothergill, Kiyotaka Uchimoto, “Japanese SemCor: A Sense-tagged Corpus of Japanese”(2012)
【００５３】
WordNetを用いて意味的類似度の計算を行う例を説明する。具体的な類似度計算は、xiとyiの各次元の単語の全ての組み合わせに対して行う。例えば、音声認識結果の文xが
「この付近の地図を検索」
であり、整形文yが
「この付近の地図を探す」
であったとする。ここで、xを単語ごとに分けると、
（この，付近，の，地図，を，検索）
となり、yを単語ごとに分けると、
（この，付近，の，地図，を，探す）
となる。
【００５４】
このとき、WordNetを用いてそれぞれの単語間の意味的類似度を算出する。その結果が、例えば、次表のようになったとする。この表は、縦軸の単語と横軸の単語の間の意味的類似度をWordNetにより算出したマトリックスとなっている。
【００５５】
【表１】
0006389795.tif 000005
【００５６】
意味的類似度は、全ての類似度の値の総和を、2つの文の単語数の積で割ったものと定義する。この例であれば、
（全ての類似度の値の総和）＝1  +0  +0.2+0  +0  +0  +
0  +1  +0  +0  +0  +0  +
0.2+0  +1  +0  +0.3+0  +
0  +0  +0  +1  +0  +0  +
0  +0  +0.3+0  +1  +0  +
0  +0  +0  +0  +0  +0.9
=6.9
（2つの文の単語数の積）＝5×5=25
であるため、意味的類似度は、6.9÷25=0.276と算出される。
【００５７】
WordNetは日本語で93834単語（2015年4月現在）が登録されている。これに登録されていない単語が出現した場合、その単語に関する全ての他の単語に対する類似度は0とする。
【００５８】
上記（１）から（５）の方法で説明した5つの類似度を重みづけして統合することによって最終的な類似度である統合類似度を算出する。具体的には、下記の式（１）により各類似度を重み付けして統合類似度を求める。
【００５９】
統合類似度＝λ1×（（１）の類似度）+λ2×（（２）の類似度）+λ3×（（３）の類似度）+λ4×（（４）の類似度）+λ5×（（５）の類似度）              ・・・式（１）
ここで、λ1,…,λ5は、各値が0以上であり、合計すると1になる（λ1+λ2+λ3+λ4+λ5=1）重み係数である。重み係数λ1,…,λ5は人手で適切な値を設計する。
【００６０】
統合類似度を用いて音声認識結果の文に対して類似する整形文の検索を行う際、1位からN位の音声認識結果の文の特徴ベクトルxi (1≦i≦N)と、整形文記憶部２に記憶された全ての整形文の特徴ベクトルyj (1≦j≦D)との全ての組み合わせ（N×D通り）に対して式（１）の統合類似度を計算し、一番大きい値を返すyjに対応する整形文とその類似度を算出することも可能である。しかし、全ての組み合わせについて統合類似度を計算すると計算量が膨大となり計算に時間がかかる。そこで、ここではグラフ探索を利用してより高速に算出する方法を用いる。
【００６１】
グラフ探索の手順の例は、以下の通りである。予め特徴ベクトルyj (1≦j≦D)の全ての組み合わせについて、ベクトルの類似度が高い上位k個を保存する。この類似度は先に説明した式（１）を用いて求める。ただし、（３）の方法による信頼度は音声認識結果の文に対してのみ特徴ベクトル化できるものであるので、λ3=0とする。また、kの値は人手で設定し、例えばk=5などが用いられる。
【００６２】
例えば、D=200として、
y1との類似度が高い上位k=5個の特徴ベクトル：y5, y14, y26, y33, y105
y2との類似度が高い上位k=5個の特徴ベクトル：y15, y27, y36, y59, y130
・・・
という対応関係がD通り得られる。この結果得られた対応関係をk-nnグラフと呼ぶ。
【００６３】
k-nnグラフを用いて類似度探索を行う手順は、以下のとおりである。ここでの目的は、ある入力yj (1≦j≦D)となるべく類似度が高いyi (1≦i≦D∧i≠j)を、D-1通り全てについて計算することなく、この対応表を使って近似的にではあるが効率的に求めることである。
【００６４】
入力yjが与えられたとき、まず、ランダムに1つのyiを選ぶ。次に、k-nnグラフの対応表においてyiと類似度の高いk個の特徴ベクトルに限定して、その中からyiと一番類似度が近くなる特徴ベクトルを1つ選ぶ。例えば、先の例において初めにランダムに選ばれた入力yiがy1ならば、y1のk-nnグラフの対応表を参照し、y5, y14, y26, y33, y105のうち一番入力yjと類似度が高くなる、例えばy5を選ぶ。選んだ後、(yj,y1の類似度)<(yj,y5の類似度)であるならば、y1が入力yjに一番近いベクトルであるとして、それを出力する（「停止」と呼ぶ）。そうではなく、(yj,y1の類似度)>(yj,y5の類似度)であるならば、次にy5に着目し、y5のk-nnグラフの対応表を参照し、同様の操作を停止するまで繰り返す。これによって入力yjに一番近いとされた特徴ベクトルyMAXを選択する。この操作を、初期値yiを数回（例えば100回などがよく用いられる）選び直し、同じ手順を繰り返して複数のyMAXを求め、yMAX（100回初期値を利用するならば100通り得られる）として選ばれた特徴ベクトル群のうち、最大の類似度を与えるyMAXを出力する。後述する第九実施形態のように1位だけでなく上位N位を選ぶ場合は、このyMAX群での上位N位を出力する。グラフ探索の手順については、参考文献３に詳しい。
〔参考文献３〕Kazuo Aoyama, Kazumi Saito, and Hiroshi Sawada, “Fast Approximate Similarity Search Based on Degree-Reduced Neighborhood Graphs”, KDD2011, pp. 1055-1063
【００６５】
さらに効率的にグラフ探索を行うために、参考文献３にあるようなk-nnグラフではなくk-DRグラフを用いてもよい。k-DRグラフは、k-nnグラフの対応表のうち余分な部分を削除したグラフである。上述では、k-nnグラフを作る際、y1との類似度が高い上位k=5個の特徴ベクトルは
y5, y14, y26, y33, y105
と表記したが、以降では、インデックスのみを用いて、
1: 5 14 26 33 105
と表記することにする。
【００６６】
k-DRグラフは、基本的には、k-nnグラフをk=1から順にkを増やして作っていくグラフである。例えば、k=5のとき、最終的にk-nnグラフが、
1: 2 3 7 16 29
2: 3 5 10 15 34
・・・
となる場合は、
1: 2
2:
・・・
↓
1: 2
2: 3
・・・
↓
（同様の手順を続ける）
↓
1: 2 3
2: 3
・・・
↓
1: 2 3 
2: 3 5 
・・・
↓
（同様の手順を続ける）
↓
1: 2 3 7 16 29
2: 3 5 10 15 34
・・・
ということになる。k-DRグラフは、このような対応表を作る際、余計な数値は載せないことでコンパクトなグラフを作成することができる。
【００６７】
k-DRグラフを作成する方法の例を具体的に説明する。k-DRグラフを作成する前に、まずランダムに1つのyiを選んでおく。今、グラフが以下のようになっている場合を考える。
【００６８】
1: 2 3 ?
2: 3 5 
・・・
5: 8 17
・・・
ここで、通常ならば、?に1との類似度が3番目に高い7を入れるだけである。しかし、(iと3の類似度)<(iと7の類似度)である場合、1：の対応表に7を入れることは無意味である。なぜならば、この対応表を使って探索する過程で1:にたどり着いた場合、少なくとも3は7に比べて必ずiと類似度が高いため、7が次の候補として選ばれることはあり得ないからである。このように無駄な数字が登録されないため、k-DRグラフは効率的なグラフであると言える。後は先に述べたように順々にkを増やして対応表（グラフ）を作ればよい。
【００６９】
k-DRグラフの探索手順は、k-nnグラフと同様である。
【００７０】
以上のグラフ探索のアルゴリズムは、xと最大順位Nsを入力として、yj (1≦j≦D)の中からxとの類似度の高さが1位からNs位までのyjを出力するものである。この最大類似度の計算は、必ずしも全ての組み合わせを比較した場合と同じ結果が出るわけではなく、高速だが近似的な計算結果を出すものである。これによって選択された1位の文に相当するyjを、類似度が最大の整形文である最大類似度整形文として出力する。
【００７１】
＜整形部４＞
整形部４には、音声認識結果の1位の文、及び、最大類似度整形文が入力される。後述する所定の閾値との比較に基づく処理が行われる場合には、最大類似度整形文に対応する類似度である最大類似度も入力される。整形部４は、以下の処理により、整形結果の文を出力する。
【００７２】
整形部４は、類似度計算部３により決定された最大類似度整形文を整形された音声認識結果として出力する（ステップＳ３）。整形部４は、最大類似度整形文に対応する最大類似度が所定の閾値よりも小さい場合には、整形できる文は整形文記憶部２に存在しないものと判断し、元の音声認識結果の1位の文をそのまま出力する。なお、この整形文４による所定の閾値との比較に基づく処理は行われなくてもよい。
【００７３】
このように、整形文記憶部２に記憶された整形文から、音声認識結果の文に最も類似した整形文を抽出して、その音声認識結果の文の代わりに置き換えることにより整形を行う。類似度計算部３は、（５）の方法によって求められる意味的類似度を考慮して最大類似度整形文を選択するため、従来技術のように表層的な情報のみを扱う場合と比較して、より広い範囲の整形文の中から類似する整形文を選択することができる。また、類似度計算部３はグラフ探索により類似文の検索を行うため、全ての組み合わせについて類似度を計算して最も類似度の高い文を求める場合と比較して、高速に検索することができる。
【００７４】
［第二実施形態］
類似度計算部３の（１）の方法において、単語そのものではなく単語の2gram,3gramの出現頻度を用いてもよい。2gram,3gramとは、2つまたは3つの連続した並びを指す。例えば、「綺麗な風景などをがほしい」という文において単語の3gramを特徴量に用いるとき、特徴ベクトルは全ての単語の3つ並びのパターン全ての次元を持つ。この場合、特徴ベクトルの各次元の値は、
「綺麗な;風景;など」→1、「風景;など;を」→1、「など;を;が」→1、「を;が;ほしい」→1
となり、他は0となる。単語の2gramについても同様である。
【００７５】
［第三実施形態］
類似度計算部３の（１）の方法において、単語そのものではなく文字の出現頻度を特徴量として用いてもよい。例えば、「綺麗な風景などをがほしい」の文字列を特徴量に用いるとき、特徴ベクトルは全ての単語を1文字にした場合の全文字を次元に持つ。この場合、特徴ベクトルの各次元の値は、
「綺」→1、「麗」→1、「な」→1、「風」→1、「景」→1、「な」→1、「ど」→1、「を」→1、「が」→1、「ほ」→1、「し」→1、「い」→1
となり、他は0となる。
【００７６】
文字単体ではなく文字の2gram,3gramを用いてもよい。その場合は、第一実施形態と同様の方法によって特徴ベクトル化する。
【００７７】
［第四実施形態］
類似度計算部３の（１）の方法において、単語そのものではなく、第三実施形態のように文字を特徴として用い、距離尺度は編集距離を用いた類似度を用いてもよい。編集距離は、ある文字列を別の文字列に変換する際に必要な1文字の挿入・置換・削除の回数の最小値を指し、2つの文字列間の異なり度合いを表す。例えば、2つの文字列が
「綺麗な風景などをがほしい」
「綺麗な風景画像がほしい」
であれば、
「綺麗な風景などをがほしい」
→「綺麗な風景などがほしい」（「を」を削除）
→「綺麗な風景画どがほしい」（「な」→「画」に置換）
→「綺麗な風景画像がほしい」（「ど」→「像」に置換）
という3回の操作が必要である。このとき、編集距離は3となる。編集距離を自動的に計算するためには、動的計画法によるマッチング（DPマッチング）を用いればよい。
【００７８】
編集距離は類似度ではなく距離であるため、
【００７９】
【数４】
0006389795.tif 000006
【００８０】
を類似度として用いる。これは、文字列pと文字列qにおける類似度であり、Edit(p,q)は2つの文字列間の編集距離を表す。|p|は文字列の長さ（文字数）を表す。先の例であれば、Edit(p,q)=3, max(|p|,|q|)=max(12,11)=12であるため、
【００８１】
【数５】
0006389795.tif 000007
と計算される。
【００８２】
［第五実施形態］
類似度計算部３の（４）の方法において、音素の3gramではなく、2gramの頻度を用いてもよい。例えば、上記のA「kireinahuukeinadowogahosii」という音素列であれば、特徴ベクトルは全ての音素の2並びの組み合わせの数だけ次元を持つ。各次元の値は、
ki→1, ir→1, re→1, ei→1, in→2, na→2, ah→1, hu→1, uu→1, uk→1, ke→1, ad→1, do→1, ow→1, wo→1, og→1, ga→1, ho→1, os→1, si→1, ii→1
となり、他は0となる。
【００８３】
［第六実施形態］
類似度計算部３において、各特徴量の値が品詞に応じて重みを積算するものとしてもよい。例えば、重みを名詞→2、動詞→3と設定した場合を考える。この重みは人手で付与する。特徴ベクトルの各次元の値が、
綺麗な→1  風景→1  など→1  を→1  探す→1
となっているとする。このとき、形態素解析を用いることによって、
綺麗な→形容動詞  風景→名詞  など→助詞  を→助詞  探す→動詞
という品詞情報を取得しておく。重み付けした後の特徴ベクトルの各次元の値は、名詞に2、動詞に3を積算し、
綺麗な→1  風景→2  など→1  を→1  探す→3
となる。
【００８４】
特徴ベクトルとして単語単体ではなく単語2gramを用いる場合、その2gram間の値の平均を用いる。例えば、先の例ならば、
綺麗な;風景→(1+2)/2=1.5  風景;など→(2+1)/2=1.5  など;を→(1+1)/2=1  を;探す→(1+3)/2=2
となる。
【００８５】
音素の場合は以下のようにする。まず、「綺麗な風景などを探す」に対応する音素列は、
kirenahuukeinadowosagasu
であり、これを単語で分けると、
kireina huukei nado wo sagasu
となる。各単語の重みは、
綺麗な→2  風景→1  など→1  を→1  探す→3
であるため、
kirena→2  huukei→1  nado→1  wo→1  sagasu→3
とする。各音素に該当する重みは単語の重みをそのまま用いる。この場合は、
k, i, r, e, i, n, a→2  h, u, u, k, e, i→1  n, a, d, o→1  w ,o→1  s ,a ,g ,a ,s, u→3
となる。
【００８６】
音素の2gramを用いる場合は、その2音素の間の平均を値として使う。例えば、上記の例では、
ki→2, ir→2, re→2, ei→4, in→2, na→3, ah→1.5, hu→1, uu→1, uk→1, ke→1, in→1, ad→1, do→1, ow→1, wo→1, os→2, sa→3, ag→3, ga→3, as→3, su→3
となる。3gramの場合も同様である。
【００８７】
［第七実施形態］
類似度計算部３の（１）の方法における単語の出現頻度、または（３）の方法における単語の信頼度において、整形文記憶部２に記憶された整形文の単語は、その整形文に出現する単語だけではなく、文中に出現した単語に対応する潜在語を潜在語言語モデル（LWLM: Latent Words Language Model）によって生成し、加えて用いてもよい。LWLMに関する詳細なアルゴリズムは参考文献４を参照されたい。
〔参考文献４〕K. Deschacht, J. D. Belder and M-F. Moens, “The Latent Words Language Model”, Computer Speech and Language, vol. 26, pp. 384-409, 2012
【００８８】
潜在語は、元の単語と文法的役割が同じ単語が出現することが知られている。潜在語を用いる目的は「教えて」が「知りたい」という単語と類似していることを考慮し、類義性を考慮に入れることである。Wordnetは日本語として93834単語しか登録されていないため、Wordnetに登録されていないような単語に対してもLWLMを用いれば類義性を考慮に入れることができると考えられる。
【００８９】
例えば、「この近くのレストランまでの道を教えて」という文があったとする。LWLMは文中に出現する全ての単語に対して潜在語を算出する。潜在語の算出結果は、例えば、以下のようになる。
【００９０】
【表２】
0006389795.tif 000008
【００９１】
潜在語は元の単語1個に対して最大Ns個を算出するものとする。ここで、Nsは正の整数であり、人手で適切な値を設定する。Ns=5などがよく用いられる。潜在語に対して括弧付で表される数値は潜在語の確率値であり、その潜在語の確からしさを表す。
【００９２】
（３）の方法における単語の信頼度における具体例を以下に示す。特徴量として、
この→0.4  近く→0.5  の→0.1  レストラン→0.7  まで→0.5  の→0.6  道→0.7  を→0.9  教えて→0.4
という値を元々持っていたとする。LWLMの結果、上記の表のような潜在語が付与されたとすると、各次元の値は元の値に潜在語の確率値を積算したうえで使用する。上記の例では、もとの単語「教えて」に関しては、「教えて(0.9), 知りたい(0.1)」という潜在語を持っている。もとの単語「教えて」の重みは0.4であるため、
知りたい→0.4×0.1=0.04  教えて→0.4×0.9=0.36
を値として採用することとする。
【００９３】
もとの特徴量は、
この→0.4  近く→0.5  の→0.1  レストラン→0.7  まで→0.5  の→0.6  道→0.7  を→0.9  教えて→0.4
となり、潜在語を考慮した特徴量は、
この→0.4  近く→0.5  の→0.1  レストラン→0.7  まで→0.5  の→0.6  道→0.7  を→0.9  教えて→0.36  知りたい→0.04
となる。単語の頻度を特徴量に用いる（１）の方法においても同様に計算すればよい。
【００９４】
LWLMでは、潜在語は、もとの単語に対して文中の文法的役割が同一の単語が出現するようになっている。LWLMの学習はデータベースの全ての文を用いて予め行っておく。
【００９５】
［第八実施形態］
類似度計算部３の（５）の方法において、意味的類似度の尺度として、Wordnetを用いるのではなく、情報検索に基づく類似度（IR-Similarity）を用いてもよい。IR-Similarityについて詳しくは参考文献５（P.164 ２．４節）に詳しい。
〔参考文献５〕Davide Buscaldi, Joseph Le Roux, Jorge J. Garcia Flores, Adrian Popesu, “LIPN-CORE: Semantic Text Similarity using n-grams, WordNet, SyntacticAnalysis, ESA and Information Retrieval based Features”, ACL, June 13-14, 2013.
【００９６】
IR-Similarityは検索エンジンを用いた類似度である。例えば、以下の2つの文の類似度を測定することを考える。
【００９７】
「綺麗な風景画像がほしい」
「綺麗な風景などをが惜しい」
「綺麗な風景画像がほしい」を検索クエリ（クエリpとする）として検索エンジンにかけ、検索結果の上位K個のページを取得する。このページからテキスト情報のみを抜き出した文書集合をLp={dp1, dp2, …, dpK}とする。また、「綺麗な風景などをが惜しい」（クエリqとする）に対しても同じ処理をし、その結果として得られた文章集合をLq={dq1, dq2, …, dqK}とする。このとき、類似度を、
【００９８】
【数６】
0006389795.tif 000009
【００９９】
とする。ここで、sp(d)は文書dに対するクエリp（文、つまり単語群）のOkapi BM25によるスコアである。Okapi BM25のパラメータはk1=1.2, b=0.75を用いるものとする。Okapi BM25は、その文書におけるクエリの重要度を表す。詳しくは、参考文献６を参照されたい。
〔参考文献６〕Yuanhua Lv, ChengXiang Zhai, “Adaptive Term Frequency Normalization for BM25”, CIKM 2011
【０１００】
［第九実施形態］
類似度計算部３において、最終的に整形文記憶部２から類似度が最大の整形文を出力する際、1位に相当するyjに対応する類似度と整形文を出力するのではなく、上位N個を算出してもよい。その類似度とそれに対応する整形文を整形部４でそのまま出力する。ただし、類似度が予め設定した閾値より小さいものに対応する文は出力しないものとする。こうしてN個の文をユーザに提示し、N個の中からユーザに適切なものを選択させる。Nは人手で適切な値を設計する。例えば、N=5などを用いる。
【０１０１】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１０２】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【０１０３】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０１０４】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０１０５】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１０６】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【０１０７】
１  音声認識部
２  整形文記憶部
３  類似度計算部
４  整形部
【図１】
0006389795.tif 000010
【図２】
0006389795.tif 000011