(57)【特許請求の範囲】
【請求項１】
コンピュータ実装可能のクラスタリングツールであって、該クラスタリングツールは、
複数の入力発言を示すインプットデータを受信し、前記インプットデータの中の発言に同時に出現する、少なくとも２以上のワードを示すワードクラスタを生成するように構成されたクラスタリングコンポーネントであって、前記クラスタリングコンポーネントは、
前記インプットデータを処理して、前記インプットデータの中の１または複数のワードの組それぞれについて、少なくとも１つのワード出現ベクトルまたはワード同時出現ベクトルｖ＝（ｖ1，ｖ2）を生成するワード出現ベクトル・ワード同時出現ベクトルジェネレータであって、前記ｖ1は前記インプットデータの第１の入力発言に対応し、前記ｖ2は前記インプットデータの第２の入力発言に対応し、前記ｖが、前記１または複数のワードの組のうち、所定のワードまたは所定のワードの組についてのものであるとき、前記ｖ1は当該所定のワードまたは所定のワードの組が前記第１の入力発言に出現しているかどうかに応じて１か０のいずれかであり、前記ｖ2は当該所定のワードまたは所定のワードの組が前記第２の入力発言に出現しているかどうかに応じて１か０のいずれかである、ワード出現ベクトル・ワード同時出現ベクトルジェネレータと、
少なくとも２つのワード出現ベクトルまたはワード同時出現ベクトルを受信し、前記少なくとも２つのワード出現ベクトルまたはワード同時出現ベクトル間のベクトルドット積を計算し、上位三角部分、下位三角部分、および複数の対角線上の位置を有する左右対称のワード同時出現マトリクスを生成し、前記少なくとも２つのワード出現ベクトルまたはワード同時出現ベクトルのワードの同時出現の頻度を提供するベクトルドット積コンポーネントであって、前記ワード同時出現マトリクスの処理は、前記マトリクスの前記上位三角部分または前記下位三角部分に限定され、認識エラーに起因する反復ワードクラスタを除外するために前記複数の対角線上の位置は計算されない、ベクトルドット積コンポーネントと
を含み、
前記ベクトルドット積コンポーネントの出力を処理し、前記複数の入力発言中で出現頻度しきい値を超える、前記少なくとも２以上のワードの同時出現について前記ワードクラスタを出力するクラスタリングコンポーネントと、
前記クラスタリングコンポーネントから前記出力されたワードクラスタを受信し、前記出現頻度しきい値を超える前記出力されたワードクラスタについて文法要素を生成し、音声認識コンポーネントによって使用される閉じた文法要素の集合に、前記ワードクラスタの前記文法要素を追加するよう構成された文法生成コンポーネントと
を備えたことを特徴とするクラスタリングツール。
【請求項２】
請求項１に記載のクラスタリングツールにおいて、類似性メトリックに基づいてワードクラスタをマージするマージコンポーネントをさらに備えたことを特徴とするクラスタリングツール。
【請求項３】
請求項１に記載のクラスタリングツールにおいて、プルーニング基準に基づいてワードクラスタをプルーニングするプルーニングコンポーネントをさらに備えたことを特徴とするクラスタリングツール。
【請求項４】
請求項１に記載のクラスタリングツールにおいて、ワードクラスタに含まれる各ワードの位置情報を利用して、ワードクラスタに最も頻繁なワード順序を示すラベルを付ける報告コンポーネントをさらに含むことを特徴とするクラスタリングツール。
【請求項５】
インプットデータの中の発言に同時に出現する、少なくとも２以上のワードを示すワードクラスタを生成するコンピュータによって実施する方法であって、
複数の入力発言を示すインプットデータを受信するステップと、
前記インプットデータの中の１または複数のワードの組それぞれについて、少なくとも１つのワード出現ベクトルまたはワード同時出現ベクトルｖ＝（ｖ1，ｖ2）を生成するステップであって、前記ｖ1は前記インプットデータの第１の入力発言に対応し、前記ｖ2は前記インプットデータの第２の入力発言に対応し、前記ｖが、前記１または複数のワードの組のうち、所定のワードまたは所定のワードの組についてのものであるとき、前記ｖ1は当該所定のワードまたは所定のワードの組が前記第１の入力発言に出現しているかどうかに応じて１か０のいずれかであり、前記ｖ2は当該所定のワードまたは所定のワードの組が前記第２の入力発言に出現しているかどうかに応じて１か０のいずれかである、ステップと、
少なくとも２つのワード出現ベクトルまたはワード同時出現ベクトル間のベクトルドット積を計算して、上位三角部分、下位三角部分、および複数の対角線上の位置を有する左右対称のワード同時出現マトリクスを生成し、前記少なくとも２つのワード出現ベクトルまたはワード同時出現ベクトルのワードの同時出現の頻度を提供するステップであって、前記ワード同時出現マトリクスの処理は、前記マトリクスの前記上位三角部分または前記下位三角部分に限定され、認識エラーに起因する反復ワードクラスタを除外するために前記複数の対角線上の位置は計算されない、ステップと、
前記複数の入力発言中で出現頻度しきい値を超える、前記少なくとも２以上のワードの同時出現についてワードクラスタを生成するステップと、
前記生成されたワードクラスタについて文法要素を生成し、音声認識コンポーネントによって使用される閉じた文法要素の集合に、前記ワードクラスタの前記文法要素を追加するステップと
を含むことを特徴とする方法。
【請求項６】
請求項５に記載の方法において、さらに
閉じたボキャブラリ音声認識コンポーネントからの未認識音声データをログに記録するステップと、
フリーフォーム音声認識システムを使用して前記ログに記録された音声データを認識してインプットデータを出力するステップと、
を含むことを特徴とする方法。
【請求項７】
請求項５に記載の方法において、さらに
ワードクラスタに含まれる各ワードの位置情報を利用して、最も頻繁なワード順序を示すラベルと出現頻度を含むワードクラスタを出力するステップを含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法において、さらに
ワードクラスタを出力する前にクラスタデータをプルーニングするステップを含むことを特徴とする方法。
【請求項９】
請求項５に記載の方法において、さらに
類似ワードクラスタをマージするステップを含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インプットデータの中のワードまたはワード組み合わせに対してワードクラスタを生成するクラスタリングツールに関する。
【背景技術】
【０００２】
電話ルーティングシステムなどの音声認識アプリケーションでは、閉じた文法またはレキシコン(closed grammar or lexicon)が採用されることがよくある。例えば、会社の電話ディレクトリシステム(company telephone directory system)用の音声認識アプリケーションで使用されている文法には、会社の従業員の固有名のリストが含まれていることがある。このような文法には、音声認識アプリケーションから与えられたプロンプトまたは指示に対する起り得るレスポンスが含まれていることもある。従って、例えば、音声認識アプリケーションは“Who would you to speak to?（どなたに御用ですか）”と尋ねることがある。これを受けてユーザが“John Doe”と応答したとすると、その時点でこのアプリケーションはそのコールをJohn Doeの内線に転送する。しかし、このようなシステムでは、プロンプトに対するユーザのインプットまたはレスポンスが閉じた文法の中にないと、そのアプリケーションはユーザのレスポンスを認識できないので問題が起ることになる。例えば、“Who would you to speak to?（どなたに御用ですか）”というプロンプトに対するレスポンスとして、ユーザは「会社のストア」と応答することがある。音声認識アプリケーションによって使用される閉じた文法またはレキシコンの中にそのレスポンスが含まれていないと、そのレスポンスは未認識とされることになる。認識不能を受け入れるようにシステムをチューニングすることは非常に時間を消費し、コストのかかることである。
【０００３】
以上は単に一般的背景を説明したものであり、請求項に記載の主題の範囲を判断する際の一助として使用されるものではない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
未認識の音声データまたは他のインプットデータの中に見つかったワードに対するワードクラスタを生成するクラスタリングツール(clustering tool)を提供することを課題にしている。本明細書に開示されている実施形態では、これらのクラスタは認識パフォーマンスを向上するように閉じた文法を改良するために使用されている。
【課題を解決するための手段】
【０００５】
以下の簡単な説明は、下述する「詳細な説明」に詳しく説明されている概念のいくつかを選んで簡単に紹介するものである。この簡単な説明は請求項に記載の主題の主要特徴または基本的特徴を特定するものではなく、また請求項に記載の主題の範囲を判断する際の一助として使用されるものでもない。
【発明を実施するための最良の形態】
【０００６】
以下では、ワードクラスタを特定するシステムについて説明する。なお、本システムを詳細に説明する前に、本システムを配置できる環境の一実施形態について説明する。
【０００７】
図１は、本発明の実施形態を実現ができる適当なコンピューティングシステム環境１００の例を示す図である。このコンピューティングシステム環境１００は、適当なコンピューティング環境の単なる一例であり、本発明の使用または機能の範囲についてなんらの制限があることを示唆するものではない。また、このコンピューティング環境１００は、例示の動作環境１００に図示されているコンポーネントのいずれに関しても、あるいはその組み合わせに関しても、なんらの依存関係または要求条件があるものと解釈されるものでもない。
【０００８】
本発明の実施形態は、他の多数の汎用または特殊目的のコンピューティングシステム環境または構成と共に動作するものである。本発明の種々実施形態で使用するのに適している周知コンピューティングシステム、環境、および／または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、テレホニシステム、上記に挙げたシステムまたはデバイスのいずれかを含んでいる分散コンピューティング環境などがあるが、これらに限定されない。
【０００９】
以下では、プログラムモジュールのように、コンピュータによって実行されるコンピュータ実行可能命令の一般的コンテキストの中で本発明の実施形態が説明されていることがある。一般的に、プログラムモジュールの中には、特定のタスクを実行し、あるいは特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。一部の実施形態は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行されるような、分散コンピューティング環境で実施されることを目的としている。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のコンピュータ記憶媒体に置かれており、その中にはメモリストレージデバイスが含まれている。
【００１０】
図１を参照して説明すると、一部の実施形態を実現する例示システムは、コンピュータ１１０の形体をした汎用コンピューティングデバイスを装備している。コンピュータ１１０のコンポーネントとしては、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１があるが、これらに限定されない。システムバス１２１は、数種タイプのバス構造のいずれにすることも可能であり、その中には、種々のバス構造のいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれている。例を挙げると、そのようなアーキテクチャとしては、ＩＳＡ(Industry Standard Architecture)バス、ＭＣＡ(Micro Channel Architecture)バス、ＥＩＳＡ(Enhanced ISA)バス、ＶＥＳＡ(Video Electronics Standards Association)ローカルバス、およびMezzanineバスとも呼ばれるＰＣＩ(Peripheral Component Interconnect)バスがあるが、これらに限定されない。
【００１１】
コンピュータ１１０は、種々のコンピュータ可読媒体を装備しているのが一般である。コンピュータ可読媒体としては、コンピュータ１１０によってアクセス可能であれば、どのような媒体でも利用可能であり、その中には揮発性および不揮発性媒体で、取り外し可能および取り外し不能媒体の両方が含まれている。例を挙げると、コンピュータ可読媒体としては、コンピュータ記憶媒体と通信媒体があるが、これらに限定されない。コンピュータ記憶媒体としては、コンピュータ可読情報、データ構造、プログラムモジュールまたはプログラムデータなどの情報をストアしておくためのいずれかの方法またはテクノロジで実現された揮発性および不揮発性で、取り外し可能および取り外し不能の媒体があるが、これらに限定されない。コンピュータ記憶媒体の中には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリや他のメモリテクノロジ、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）や他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージや他の磁気ストレージデバイス、または必要とする情報をストアするために使用可能で、コンピュータ１１０によってアクセス可能である他のどのような媒体も含まれるが、これらに限定されない。通信媒体はコンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波などの変調データ信号や他のトランスポートメカニズムで具現化しているのが一般であり、その中にはいずれかの情報配信媒体が含まれている。ここで「変調データ信号(modulated data signal)」という用語は、その特性の１つまたは２以上が信号の中の情報を符号化するような形でセットまたは変更されている信号を意味している。例を挙げると、通信媒体には、ワイヤド（有線）ネットワークや直接ワイヤドコネクションなどのワイヤド媒体、および音響、ＲＦ、赤外線および他のワイヤレス（無線）媒体などのワイヤレス媒体が含まれているが、これらに限定されない。上記に挙げたものを任意に組み合わせたものも、当然にコンピュータ可読媒体の範囲に含まれる。
【００１２】
システムメモリ１３０には、リードオンリメモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形体をしたコンピュータ記憶媒体も含まれる。スタートアップ期間のようにコンピュータ１１０内のエレメント間で情報を転送するのを支援する基本ルーチンで構成された基本入出力システム（ＢＩＯＳ）１３３は、ＲＯＭ１３１に格納されているのが代表的である。ＲＡＭ１３２は、処理ユニット１２０によって即時にアクセス可能であり、および／または現在処理中であるデータおよび／またはプログラムモジュールを収めているのが一般である。例を挙げると、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７が示されているが、これらに限定されない。
【００１３】
コンピュータ１１０は、その他の取り外し可能／取り外し不能の揮発性／不揮発性コンピュータ記憶媒体を装備していることもある。図１には、取り外し不能の不揮発性磁気媒体との間で読み書きするハードディスクドライブ１４１、取り外し可能の不揮発性磁気ディスク１５２との間で読み書きする磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの取り外し可能の不揮発性光ディスク１５６との間で読み書きする光ディスクドライブ１５５が示されているが、これらは単なる一例である。例示の動作環境で使用できる、その他の取り外し可能／取り外し不能の揮発性／不揮発性コンピュータ記憶媒体しては、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらに限定されない。ハードディスクドライブ１４１は、インタフェース１４０のような取り外し不能メモリインタフェースを通してシステムバス１２１に接続されているのが代表的であり、磁気ディスクドライブ１５１と光ディスクドライバ１５５は、インタフェース１５０のような取り外し可能メモリインタフェースによってシステムバス１２１に接続されているのが代表的である。
【００１４】
上述し、図１に図示のドライブおよびそれぞれの関連コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータをコンピュータ１１０のためにストアしている。例えば、図１には、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７をストアするものとして示されている。なお、これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであることもあれば、異なっていることもある。ここで、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７に異なる番号が付けられているのは、最低限でも、これらが異なるコピーであることを示すためである。
【００１５】
ユーザは、キーボード１６２などのインプットデバイス、マイクロホン１６３、およびマウスやトラックボール、タッチパッドなどのポインティングデバイス１６１を通してコマンドおよび情報をコンピュータ１１０に入力することができる。その他のインプットデバイス（図示せず）としては、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。これらおよびその他のインプットデバイスは、システムバスに結合されたユーザインプットインタフェース１６０を通して処理ユニット１２０に接続されていることが多いが、パラレルポートやゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造によって接続されていることもある。モニタ１９１や他のタイプのディスプレイデバイスも、ビデオインタフェース１９０のようなインタフェースを介してシステムバス１２１に接続されている。モニタのほかに、コンピュータは、スピーカ１９７やプリンタ１９６などの他の周辺アウトプットデバイスを装備していることもあり、これらはアウトプット周辺インタフェース１９５を通して接続されていることがある。
【００１６】
コンピュータ１１０は、リモートコンピュータ１８０のような１または２以上のリモートコンピュータとの論理的コネクションを使用してネットワーキング環境で操作される。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ノードであることがあり、コンピュータ１１０に関連して上述したエレメントの多くまたはすべてを備えているのが一般である。図１に図示の論理的コネクションとしては、ローカルエリアネットワーク（ＬＡＮ）１７１とワイドエリアネットワーク（ＷＡＮ）１７３があるが、その中には、その他のネットワークが含まれていることもある。このようなネットワーキング環境は、オフィス、企業内コンピュータネットワーク、イントラネット、およびインターネットでは普通になっている。
【００１７】
ＬＡＮネットワーキング環境で使用されるときは、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を通してＬＡＮ１７１に接続されている。ＷＡＮネットワーキング環境で使用されるときは、コンピュータ１１０は、インターネットのようなＷＡＮ１７３上の通信を確立するモデム１７２または他の手段を備えているのが代表的である。モデム１７２は内蔵型と外付け型があり、ユーザインプットインタフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続されていることがある。ネットワーキング環境では、コンピュータ１１０に関連して図示されているプログラムモジュールまたはその一部はリモートメモリストレージデバイスにストアされていることがある。例を挙げると、図１には、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０上に置かれているものとして示されているが、これに限定されない。以上から理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間の通信リンクを確立する他の手段を使用することも可能である。
【実施例】
【００１８】
本明細書に説明されているワードクラスタリングの応用分野としては、音声認識システムまたは音声アプリケーションがある。図２に示すように、そのような音声認識アプリケーション２００の１つとして、閉じたボキャブラリ音声認識コンポーネント(closed vocabulary speech recognition component)２０２を含んでいるものがあり、そのコンポーネント２０２には、図示のように、フィーチャエクストラクタ（feature extractor：特徴抽出機能）２０４、デコーダ２０６、モデル２０８および閉じた文法またはレキシコン(closed grammar or lexicon)２１２が含まれている。ここで閉じたボキャブラリ音声認識コンポーネントとは、コンポーネント２０２が文法またはレキシコン(lexicon)２１２の中に見つかったワードまたは音声単位だけを認識することを意味している。これは、音声インプットがいずれかの文法またはレキシコンの中に見つかったどうかに関係なく、最良の推測認識(best guess recognition)をその音声インプットに基づいて出力するディクテーションタイプ(dictation type)の音声認識システムとは対照的である。モデル２０８の例としては、音響モデル(acoustic model)と言語モデル(language model)があり、フィーチャエクストラクタ２０４とデコーダ２０６の例としては、公知の音声認識コンポーネントがあり、これらの詳細なオペレーションは、本システムの範囲を逸脱しない限り大幅に変化することがある。基本的に、音声認識コンポーネント２０２は、フィーチャエクストラクタ２０４、閉じた文法２１２およびモデル２０８を公知のように使用して、インプット音声信号２１４を受信し、それをデコーダ２０６で復号化する。そのあと、コンポーネント２０２は認識結果２１６を出力する。
【００１９】
図２に図示のアプリケーションは、閉じたボキャブラリ音声認識コンポーネント２０２によって認識されなかった音声をログに記録するログ記録(logging)コンポーネント２２０を含んでいる。ログに記録された未認識音声２２２は、フリーフォーム(free-form)／ディクテーション音声認識コンポーネント２２４に与えられる。認識コンポーネント２２４は、文法またはレキシコン２１２に見つかったワードに限定されることなく、音声インプットに基づいて音声認識結果２２６を出力する。従って、コンポーネント２２４が認識結果２２６を出力するのは、閉じたボキャブラリ音声認識コンポーネント２０２から与えられた未認識音声に対してである。音声認識結果２２６を生成するステップは、図３のフローチャートに具体的に示されている。図示のように、インプット音声信号２１４は、ステップ２３０において音声認識コンポーネント２０２に与えられる。このインプット音声信号２１４は、ステップ２３２において閉じた文法またはボキャブラリ２１２を使用して認識され、閉じたボキャブラリ音声認識コンポーネント２０２からの未認識音声はステップ２３４においてログに記録される。ログに記録された未認識音声２２２は、ステップ２３６に示すように、フリーフォーム／ディクテーション音声認識コンポーネント２２４に与えられ、そこで認識される。
【００２０】
ステップ２３０−２３６で生成された認識結果２２６は、図４に示すように、クラスタリングツール(clustering tool)２４２のためのインプットデータ２４０（例えば、テキストインプット）となるものである。図４に図示の実施形態では、クラスタリングツール２４２は、フリーフォーム音声認識結果２２６を処理してワードクラスタ(word cluster)２４６を生成するクラスタリングコンポーネント(clustering component)２４４を含んでいる。ワードクラスタ２４６とは、インプットデータの中の複数の発言に同時に出現するワードの集合のことである。クラスタリングツール２４２は、図示の例に示すように、ワードクラスタ２４６を生成し、出力するためのプルーニングコンポーネント(pruning component)２４８、マージコンポーネント(merge component)２５０および報告(reporting component)２５２も含んでいる。
【００２１】
プルーニングコンポーネント２４８とマージコンポーネント２５０はクラスタを生成するためにクラスタリングツール２４２によって使用される。プルーニングコンポーネント２４８は、クラスタリングコンポーネント２４４から出力されたクラスタを、１または２以上のプルーニング基準(pruning criteria)に基づいてプルーニング（枝取り）する構成になっている。マージコンポーネント２５０は、クラスタリングコンポーネント２４４によって生成されたクラスタを、類似性メトリック(similarity metric)２５６に基づいてマージする。図示の実施形態では、プルーニング基準２５４の中に、出現頻度しきい値(frequency threshold)２６０、コンパクトネス設定値(compactness setting)２６２、およびトリビアルワードリスト(trivial word list)２６４を含めることができる。この基準２５４は、比較的関係のないデータを統計的に除去するために使用される。プルーニングされ、マージされたデータは、ワードクラスタ２４６を報告するために報告コンポーネント２５２に与えられる。
【００２２】
以上から理解されるように、図４には３つのプルーニング基準２６０、２６２、２６４が示されているが、アプリケーションは３つのプルーニング基準に限定されるものでも、開示された３つのプルーニング基準を必要とするものでもない。プルーニングとマージングは以下に詳しく説明されている。
【００２３】
図示の実施形態では、クラスタリングツール２４２によって報告されたクラスタ２４６は、文法生成コンポーネント(grammar generator component)２６６に与えられる。この文法生成コンポーネント２６６は、望みのクラスタ２４６を組み入れるように、閉じたボキャブラリ音声認識コンポーネント２０２の閉じた文法またはレキシコン２１２を更新するために使用することができる。図示のように、文法生成コンポーネント２６６は、更新前の文法２１２を受け取り、文法またはレキシコン２１２およびどのクラスタ２４６を文法２１２に組み入れるかを選択したユーザセレクションインプット２７２に基づいて、更新した文法またはレキシコン２７０を生成する。
【００２４】
図５は、クラスタリングコンポーネント２４４の一実施形態の詳細を示すブロック図である。図５に図示の実施形態では、クラスタリングコンポーネント２４４は、インプットデータ２４０からクラスタを同時出現ワード組み合わせとして生成するために、ワード出現ベクトルジェネレータ(word occurrence vector generator)２９０、ワード同時出現ベクトルジェネレータ(work co-occurrence vector generator)２９２およびベクトルドット積コンポーネント(vector dot product component)２９４を含んでいる。
【００２５】
図６は、クラスタリングコンポーネント２４４のオペレーションの一実施形態を示すフロー図である。図６のステップ３００に示すように、インプットデータ２４０はクラスタリングコンポーネント２４４に与えられる。例示のように、インプットデータ２４０には、１または２以上のワードを含む複数の発言(utterance)または音声エントリが含まれている。複数のワード発言または音声エントリを含む例示インプットデータ２４０は、下表Ｉに示されている。
【００２６】
【表１】
0005214461.tif 000002
【００２７】
ステップ３０２に示すように、ワード出現ベクトル(word occurrence vector  WOC)は、インプット音声データ２４０の中に見つかったワードごとにワード出現ベクトルジェネレータ２９０によって生成される。このワード出現ベクトル（ＷＯＶ）は、v=(v1, v2,..,vi,…,vn)として表わすことができる。ただし、ｎはインプットデータ２４０の中の発言またはエントリの数であり、ｖはその出現ベクトルに対応するワードが対応する発言の中に出現しているかどうかに応じて“１”か“０”のどちらかである。
【００２８】
以上のように、表Ｉのインプットデータの場合、ワード“company”、“store”、“property”および“the”の各々に対するワード出現ベクトルは下表ＩＩに示されている。
【００２９】
【表２】
0005214461.tif 000003
【００３０】
従って、ワード“company”の場合、ワード出現ベクトルは、表Ｉ中のエントリまたは発言（番号１−５）の各々にワード“company”が現れているので、v= (1,1,1,1,1)になっている。ワード“store”に対するワード出現ベクトルは、ワード“store”が一番目、二番目および四番目の発言に現れ、三番目と五番目の発言に現れていないので、v=(1,1,0,1,0)になっている。以下、同様である。
【００３１】
ステップ３０４において、ベクトルドット積はペアのワード出現ベクトルの間で計算され、インプットデータ２４０の中のワードペアのすべてについてクラスタまたはワード同時出現マトリクスＭが生成される。ワード出現マトリクスＭのワード同時出現マトリクス要素Ｍｉ，ｊは、インプットデータの中のワードｉとｊの同時出現を表わしている。ただし、ｉとｊは各々インプットデータの中のワードペアのワードを表わしている。
【００３２】
例えば、ワード出現ベクトルｖｉとｖｊをもつワードｉとｊの場合、ドット積
【００３３】
【数１】
0005214461.tif 000004
【００３４】
は、ｎ個の発言またはエントリの各々の中のワードｉとｊのすべての共同出現(joint occurrence)の総和である。従って、ベクトルドット積からは、ワードｉとｊがインプットデータの中に共同して現れる回数が得られる。これらのワードがどの発言にも共同で現れない場合は、そのドット積はゼロであり、このことは、これらの２ワードがクラスタまたはワード組み合わせを形成していないことを意味している。
【００３５】
ワード同時出現マトリクスＭが左右対称であるのは、ベクトルドット積が交換可能(commutative)であるため、処理がマトリクスの上位または下位三角形部分に限定されているからである。この処理の複雑さを単純化するために、マトリクスＭの対角線上の位置を計算しないで済んでいるのは、通常、反復ワードクラスタ、例えば、下表ＩＩＩ中のワードクラスタ“the”と“the”が認識エラーに起因しているからである。Ｍの対角線から外れた上位三角部分、つまり、Ｍi,j（ただし、ｊ＞ｉ）だけが２ワードクラスタのすべてを見つけるために計算され、同じワードを複数回繰り返すことによって形成されるクラスタは除外されている。同時出現マトリクスのマトリクス要素Ｍi,jの値は、ワードｉとｊの同時出現の頻度、つまり、インプットデータの中のワードクラスタ（ｉ，ｊ）の出現頻度である。
【００３６】
従って、表Ｉのインプットデータ２４０の場合、その同時出現マトリクスは、下表ＩＩＩに示すとおりである。
【００３７】
【表３】
0005214461.tif 000005
【００３８】
図６のステップ３０５に示すように、ステップ３０４で見つかったワードクラスタ（ｉ，ｊ）は、計算負荷を低減し、計算スピードを向上するために、出現頻度しきい値２６０（図４に図示）に基づいてプルーニングされる。具体的には、クラスタデータは、発言の集合に一度だけ現れるものでも、すべてのワードクラスタを含んでいるので、プルーニングコンポーネント２４８は、クラスタが最小限の回数だけ表れるようにするために、図示のように最小しきい値を使用する。例えば、上表ＩＩＩにおいて、クラスタ“the”と“property”がプルーニングされるのは、そのクラスタが最小出現頻度しきい値２６０を満たしていないからである。しきい値を高く設定すると、直接に計算負荷が低減され、実行時間が高速化されることになる。しきい値２６４は、望み通りに、ユーザがインプットすることも、事前にプログラムすることもできる。
【００３９】
ワード同時出現ベクトル（ＷＣＶ）は、ブロック３０６に示すような出現頻度しきい値を持つ２ワードクラスタごとに生成される。次に、ワード同時出現ベクトル（ＷＣＶ）またはクラスタは、ブロック３０８に示すようにリストに付加される。ワード同時出現ベクトル（ＷＣＶ）、つまり、ｖｊ..ｋは、最小クラスタサイズしきい値２６０より大でもある、非ゼロのマトリクス要素Ｍi,jについて、ワード同時出現ベクトルｖｊ−ｖｋに対してＡＮＤ（または同等のスカラ乗算）演算子を適用することによってステップ３０６で生成され、パイ積方程式１に示すようにワードペアの同時出現ベクトルが生成される。
【００４０】
【数２】
0005214461.tif 000006
【００４１】
ＷＣＶｖｊ..ｋのすべての要素を総和すると、番号がｊからｋまでのすべてのワードからなるワードクラスタの出現頻度が得られる。
【００４２】
表Ｉと表ＩＩＩのインプットデータとマトリクス要素のワード同時出現ベクトルは、下表ＩＶに示されている。
【００４３】
【表４】
0005214461.tif 000007
【００４４】
ステップ３０４−３０８のプロセスは、ブロック３１０に示すようにリストに追加される追加のワード同時出現ベクトルまたはクラスタがなくなるまで繰り返されて、追加のワード組み合わせ（３ワード、４ワードなど）が生成される。具体的には、ベクトルドット積は各々ワード同時出現ベクトルについて計算される。ベクトルドット積
【００４５】
【数３】
0005214461.tif 000008
【００４６】
からは、ｎ個の発言の集合に対して取られたワードクラスタ(j...k-1)およびワードｋの結合出現(joint occurrence)のすべての総和が得られる。これにより、より大きなワードクラスタ(j...k)が得られ、ドット積の結果はその大きなクラスタの出現頻度に等しくなっている。
【００４７】
言い換えれば、ステップ３０６の各ＷＣＶj..k-1について、ＷＯＶｋを倍にすると、追加のクラスタを見つけるために最小クラスタサイズしきい値より大きな非ゼロのドット積が得られるかどうかを確かめるチェックが行なわれる。以上から理解されるように、ＷＣＶj..kがゼロのベクトルであること（つまり、クラスタでないこと）を推量するには、ＷＣＭマトリクス要素Ｍj,k…Ｍr-1,kの中からシングルゼロを見つけるだけで十分である。このようなケースでは、ベクトルのＡＮＤをとる必要がない。さらに、より大きなユニーククラスタすべてを列挙するために拡張する必要があるのは、上位ハイパ三角形(upper hyper-triangle)だけである。
【００４８】
また、以上から理解されるように、クラスタリングツール２４２は、ｎｘｎ個の同時出現マトリクスではなく、より大きなクラスタをストアするリストデータ構造を実現することができる。これは、より大きなクラスタがまばらになる可能性があり、そのためリストデータ構造の方が効率的であるためである。
【００４９】
上述したクラスタリングコンポーネント２４４からは、２、３およびそれ以上のワード組み合わせを含むクラスタまたはワード組み合わせの存在と出現頻度が得られる。上述したクラスタリングコンポーネント２４４では、すべての演算はビット単位(bit-wise)のＡＮＤと加算を用いて実行することができる。このことは、アルゴリズムが非常に高速になり、本質的に並列演算で実現され、スケーラブルにできることを意味している。例えば、６４ワードベクトルは、６４ビット幅の実装で並列に処理することができる。
【００５０】
上述したようにクラスタが形成されるとき、またはクラスタが形成されたあと、クラスタはプルーニング基準２５４（図４に図示）に基づいてプルーニングされる。追加のプルーニング機能は、図７に図示のフロー図を参照して詳しく説明されている。
【００５１】
ステップ３２４において、プルーニングコンポーネント２４８は、図示のようにコンパクトネス設定値または制約条件(constraint)２６２を使用して、同時出現ワードが相互に近接していないクラスタを除去またはプルーニングする。一般的に、インプット発言の中で相互に近接していない同時出現ワードは、より信頼できるクラスタを形成すると考えられている。従って、プルーニングコンポーネント２４８はワード位置データを利用して、同時出現ワードがコンパクトネス設定値内にない（すなわち、コンパクトネス設定値で示された相互の所定数のワード内にない）クラスタをプルーニングする。
【００５２】
ステップ３２６において、プルーニングコンポーネント２４８は、図示のようにトリビアルワードまたはクラスタ（例えば、“a [X][X]and”）のデータストアを使用して、アウトプットクラスタを散乱させるクラスタデータを低減する。これとは対照的に、プルーニングコンポーネント２４８は、“I am”、“yes, thanks”などように、有効なクラスタの可能性があるクラスタを除去しない。
【００５３】
クラスタリングコンポーネント２４４によって生成され、プルーニングコンポーネント２４８によってプルーニングされた類似クラスタは、図７のステップ３２８に示すようにマージされる。クラスタは、二次的クラスタが単に一次的クラスタの誤表現または誤スペリングであるとの可能性に基づいてプルーニングされる。このことがよく起るのは、あるスペリングまたはフレーズ形式が、例えば、“wheel”と“reel”のように、別のスペリングまたはフレーズ形式と音響的に非常に似ている音声認識においてである。別の例として、“company still”は“company store”の誤表現となることがある。
【００５４】
マージの対象となるクラスタを特定する方法には、種々のものがある。類似クラスタをマージする一実施形態では、（認識ラティス(recognition lattice)におけるように）音声認識システムによって出力された交互認識(alternate recognitions)のリスト（またはｎ最良リスト）がレビューされている。別の実施形態では、類似性または距離メトリックは、音響的類似性または混同性に基づいてクラスタ間の類似性または距離を特定するように実現されている。クラスタは、類似性または距離しきい値に基づいてマージされる。
【００５５】
例えば、ｎ個の発言に対する主要認識結果の集合はR = ｛r1,r2,...,rn｝で表わされ、クラスタリングコンポーネント２４４によって形成されたクラスタはC = ｛c1,c2,...,cp｝で表わされたとする。任意の所与の認識結果ｒ１の交互認識結果の集合はAlt(r1)で表わされる。新しいｐｘｐ正方形マトリクスが作成され、初期にはすべてがゼロであるマージ可能性マトリクス(merge likelihood matrix)と名付けられている。この交互認識結果は、∀p,q：ｑ∈Alt(p)∧ｐ∈Cｉ∧ｑ∈Cｊによって得られるマージ可能性マトリクスのマージマトリクス要素ＭＬＭｉｊを生成するために処理される。マージマトリクスの対応するマージ要素がセットしたしきい値を超えているクラスタ(i, j)、すなわち、∀i,j：MLMi,j＞Threshold→Merge(i,ｊ)がマージされる。
【００５６】
マージされたクラスタは、マージされた２クラスタのうち大きい方、例えば、出現頻度が最も大きいクラスタのラベルを用いてラベルが付けられ（すなわち、認識ストリング）、出現数／出現頻度はマージされるクラスタの出現頻度の和である。なお、左右対称であるために、マージ可能性マトリクスＭＬＭの対角線から外れた上位（または下位）三角形要素だけが処理される。
【００５７】
別の実施形態では、クラスタは、クラスタが音響的にどれだけ混同しているかの類似性メトリックを使用して音響的類似性に基づいてマージされる。すべてのクラスタのペアは、音響的類似性メトリックに基づいて評価され、非常に類似しているクラスタがマージされる。これは、マージすべきクラスタがなくなるまで繰り返し行なわれる。音響的類似性または距離および音響的混同性を計算する種々のシステムは公知であるので、詳細に説明することは省略する。
【００５８】
報告コンポーネント２５２は、クラスタリングコンポーネント２４４によって生成されたクラスタを報告する。一実施形態では、報告コンポーネント２５２は２または複数のワードクラスタのすべての存在および出現頻度を報告する（すなわち、非ゼロのマトリクス要素を記録することにより）。各クラスタには、図７のステップ３３０に示すように、クラスタ内のワードに基づいて報告コンポーネント２５２によってラベルが付けられる。
【００５９】
一実施形態では、報告コンポーネント２５２はワード位置情報(word position information)を利用してクラスタにラベルを付ける。例えば、インプットデータが“elevator not working”の１０の発言を含むコールログからの場合には、クラスタリングコンポーネントは、ワードの順序に関係なく“working”、“not”および“elevator”の組み合わせが現れる１０個のインスタンスを見つける。報告コンポーネント２５２はワード位置情報を利用して、クラスタ10: “elevator not working”を出力するか、あるいはラベルを付けてクラスタのワード順序が得られるようにする。
【００６０】
ワード順序は、クラスタデータの中でワードクラスタ間で異なることがある。例えば、インプットデータに“elevator not working”が１０回出現し、“not working elevator”が１回出現している場合は、クラスタリングコンポーネント２４４は、“elevator not working”と“not working elevator”の両方の発言に対して“not”、“elevator”および“working”のワーク組み合わせのクラスタを見つける。
【００６１】
報告コンポーネント２５２は、最も頻繁なまたは最も安定したワード順序を使用して、クラスタを報告し、またはクラスタにラベルを付けるように構成することができる。従って、図示の実施形態では、報告コンポーネント２５２は、9:“elevator not working”および1:“not working elevator”のように、２つのフラグメント化クラスタを報告するのではなく、10:“elevator not working”のラベルを付けたシングルクラスタを報告する。
【００６２】
ワードクラスタには、クラスタワードとクラスタワードの間に現れる中間クラスタワードを含めることができる。例えば、次のように発言集合からのワード“building”および“reception”を含むクラスタの場合、
1) “building one reception”
2) “building two reception”
3) “building four reception”
報告コンポーネント２５２はワード位置情報を使用して、“building”と“reception”の間に“ワイルドカードワード”があることを判断する。従って、クラスタは“cluster 3:Building [X]reception”として報告される。
【００６３】
ワード順序とワイルドカードは、クラスタの中の発言について異なることがある。一実施形態では、報告コンポーネント２５２は統計的プロセスを利用して、クラスタについて統計的により関係のあるワード順序またはワイルドカード位置と番号にラベルを付ける。例えば、データ集合の中に20回現れるワード“travel”および“Florida”の２ワードクラスタの場合、ワード“travel”がワード“Florida”の２ワード前に20回のうち18回現れ、すなわち、18:(“travel”[x][x]“Florida”)であり、およびワード“Florida”がワード“travel”の1ワード前に1回現れ、すなわち、1:(“Florida”[x]“travel”)であり、ワード“travel”の3ワード前に1回現れ、すなわち、1:(“Florida”[x][x][x] “travel”)の場合には、「平均」位置が次のクラスタラベル、すなわち、20:(“travel”[X][X]“Florida”で報告される。
【００６４】
このコンポーネントは、バブルソート(bubble sort)または他の適当なソートを利用して、次の相対位置を処理することができる。これにより、ラベル付けが最も頻繁な相対順序で行なわれることが保証される。
【００６５】
例えば、上記クラスタのワード“travel”および“Florida”の場合、関連のワード順序は次のように判断される。
【００６６】
ワード“Florida”の平均／予想相対位置（出現頻度ｘ位置の総和）を次のように判断する。すなわち、18 x 4 + 2 x 1 = 72 + 2 = 74
ワード“travel”の平均／予想相対位置（出現頻度ｘ位置の総和）を次のように判断する。すなわち、18 x 1 + 1 x 2 + 1 x 5 = 25
“travel”の平均相対位置は“Florida”よりも低いので、相対順序付け（バブルソートによって判断された）は“travel”、“Florida”となる。
【００６７】
次に、ワード“travel”と“Florida”の間のワイルドカードの平均／予想数が次のように（ワイドルカードの数の総和ｘ出現頻度）／（クラスタの数）に基づいて判断される。すなわち、2 x 18  1 x 1  3 x 1)/20 = 1.6。これは2に丸められる。
【００６８】
従って、クラスタの最終的クラスタラベルは(“travel”[X][X]“Florida”となる。
【００６９】
以上、ｎ個のセンテンスまたは発言の集合の中に現れるサイズ２またはそれ以上のすべての既存ワードクラスタを見つける方法を説明してきた。この方法の実施形態の応用例として音声認識システム用に文法外の発言クラスタを判断する場合があるが、本発明はこの特定応用例に限定されない。
【００７０】
本発明の主題を構造上の特徴および／または方法上のアクトに特有の用語で説明してきたが、当然に理解されるように、請求項に記載された主題は上述した特定の特徴またはアクトに必ずしも限定されない。むしろ、上述した特定の特徴とアクトは請求項に記載の主題を実現する形態例として開示されたものである。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態を使用または実現することができるコンピューティング環境の実施形態の一例を示すブロック図である。
【図２】音声認識アプリケーションの実施形態を示すブロック図である。
【図３】図４のクラスタリングツールのためにデータを生成するステップを示すフローチャートである。
【図４】インプットデータの中のワードクラスタを特定するためのクラスタリングツールの実施形態を示すブロック図である。
【図５】図４のクラスタリングツールのクラスタリングコンポーネントの実施形態を示すブロック図である。
【図６】インプットデータからワードクラスタを生成するステップを示すフローチャートである。
【図７】ワードクラスタを報告する事後処理ステップを示すフローチャートである。
【図１】
0005214461.tif 000009
【図２】
0005214461.tif 000010
【図３】
0005214461.tif 000011
【図４】
0005214461.tif 000012
【図５】
0005214461.tif 000013
【図６】
0005214461.tif 000014
【図７】
0005214461.tif 000015