(57)【要約】  クエリを演算ツリーに構文解析すること、クエリ行列およびトランスクリプト行列を生成すること、クエリ行列およびトランスクリプト行列の相互相関を決定すること、柔らかさマップを相互相関に適用してリテラルの各リテラルについての１つ以上のマッチを決定すること、ならびに演算ツリーを利用して１つ以上のマッチを組み合わせて出力を生成することを含み、演算子の各演算子はマッチについての組み合わせ演算に対応する、方法。
2021534528.tif 000002
【特許請求の範囲】
【請求項１】
トランスクリプトデータソースに対して検索エンジンクエリを適用する方法であって、
クエリを、リテラルと、演算子とを含む、演算ツリーに構文解析することと、
前記リテラルからクエリ行列を生成することと、
前記トランスクリプトからトランスクリプト行列を生成することと、
前記クエリ行列および前記トランスクリプト行列の相互相関を決定することと、
前記リテラルの各リテラルと関連付けられる柔らかさから生成される柔らかさマップを、前記相互相関に適用して、前記リテラルの各リテラルについての１つ以上のマッチを決定することと、
前記演算ツリーおよび前記演算子を利用して前記１つ以上のマッチを組み合わせて、検索結果を生成することと、を含み、前記演算子の各演算子は、前記マッチについての組み合わせ演算に対応する、
方法。
【請求項２】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト単語埋め込み行列に変換することと、
前記クエリ行列および前記トランスクリプト行列のドット積の合計を決定することと、を含む、
請求項１に記載の方法。
【請求項３】
前記クエリ行列および前記トランスクリプト行列からのクエリ単語−トランスクリプト単語ペア、ならびに前記クエリ単語−トランスクリプト単語ペアのうちの各クエリ単語−トランスクリプト単語ペアについての前記ドット積の前記合計が、定量的シソーラス行列内に格納される、請求項２に記載の方法。
【請求項４】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト行列単語埋め込み行列に変換することと、
前記トランスクリプト行列および前記クエリ行列に対してフーリエ変換を実行して、変換されたトランスクリプト行列および変換されたクエリ行列を生成することと、
前記変換されたトランスクリプト行列および前記変換されたクエリ行列の点別の積を決定することと、
前記点別の積に対して逆フーリエ変換を実行して、前記相互相関を決定することと、を含む、
請求項１に記載の方法。
【請求項５】
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト単語埋め込み行列に変換することと、
２つ以上の単語を含む前記リテラルのうちの少なくとも１つを決定することと、
ガウス核を前記トランスクリプト単語埋め込み行列に適用することと、を更に含む、
請求項１に記載の方法。
【請求項６】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
クエリ単語−トランスクリプト単語ペアを決定することと、
定量的シソーラス行列に制御を送信して、前記クエリ単語−トランスクリプト単語ペアのうちの各クエリ単語−トランスクリプト単語ペアについての類似性スコアをもたらすことと、
前記類似性スコアに等しく前記相互相関を設定することと、を含む、
請求項１に記載の方法。
【請求項７】
前記トランスクリプトは、１つ以上の文書を含み、当該方法は、
定量的シソーラス行列に制御を送信して、前記リテラルのうちの各リテラルについての閾値柔らかさを上回る類似性スコアを有する類似の単語をもたらすことと、
前記類似の単語のうちの少なくとも１つを有する前記１つ以上の文書のセットを決定することと、
前記1つ以上の文書の前記セットを前記トランスクリプトとして利用することと、を更に含む、
請求項１に記載の方法。
【請求項８】
前記クエリは、非言語情報を更に含み、当該方法は、非言語情報次元を前記クエリ行列および前記トランスクリプト行列に加えることを更に含む、請求項１に記載の方法。
【請求項９】
前記非言語情報は、感情モデルであり、
前記クエリ行列の前記非言語情報次元は、クエリフラグであり、
前記トランスクリプト行列の前記非言語情報次元は、前記感情モデルの出力である、
請求項８に記載の方法。
【請求項１０】
前記非言語情報は、スピーカメタデータであり、
前記クエリ行列の前記非言語情報次元は、クエリフラグであり、
前記トランスクリプト行列の前記非言語情報次元は、スピーカの表示である、
請求項８に記載の方法。
【請求項１１】
プロセッサと、
命令を格納するメモリと、を含む、
コンピューティング装置であって、
前記命令は、前記プロセッサによって実行されるときに、
検索エンジンクエリを、リテラルと、演算子とを含む、演算ツリーに構文解析し、
前記リテラルからクエリ行列を生成し、
トランスクリプトからトランスクリプト行列を生成し、
前記クエリ行列および前記トランスクリプト行列の相互相関を決定し、
前記リテラルの各リテラルと関連付けられる柔らかさから生成される柔らかさマップを前記相互相関に適用して、前記リテラルの各リテラルについての１つ以上のマッチを決定し、
前記演算ツリーおよび前記演算子を利用して前記１つ以上のマッチを組み合わせて、検索結果を生成する
ように、当該コンピューティング装置を構成し、
前記演算子の各演算子は、前記マッチについての組み合わせ演算に対応する、
コンピューティング装置。
【請求項１２】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト単語埋め込み行列に変換することと、
前記クエリ行列および前記トランスクリプト行列のドット積の合計を決定することと、を含む、
請求項１１に記載のコンピューティング装置。
【請求項１３】
前記クエリ行列および前記トランスクリプト行列からのクエリ単語−トランスクリプト単語ペア、ならびに前記クエリ単語−トランスクリプト単語ペアのうちの各クエリ単語−トランスクリプト単語ペアについての前記ドット積の前記合計が、定量的シソーラス行列内に格納される、
請求項１２に記載のコンピューティング装置。
【請求項１４】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト行列単語埋め込み行列に変換することと、
前記トランスクリプト行列および前記クエリ行列に対してフーリエ変換を実行して、変換されたトランスクリプト行列および変換されたクエリ行列を生成することと、
前記変換されたトランスクリプト行列および前記変換されたクエリ行列の点別の積を決定することと、
前記点別の積に対して逆フーリエ変換を実行して、前記相互相関を決定することと、を含む、
請求項１１に記載のコンピューティング装置。
【請求項１５】
前記命令は、
前記クエリ行列および前記トランスクリプト行列内の各単語についての多次元単語埋め込みを利用して、前記クエリ行列および前記トランスクリプト行列をクエリ単語埋め込み行列およびトランスクリプト単語埋め込み行列に変換し、
２つ以上の単語を含む前記リテラルのうちの少なくとも１つを決定し、且つ
ガウス核を前記トランスクリプト単語埋め込み行列に適用する
ように、当該コンピューティング装置を更に構成する、
請求項１１に記載のコンピューティング装置。
【請求項１６】
前記クエリ行列および前記トランスクリプト行列の前記相互相関を決定することは、
クエリ単語−トランスクリプト単語ペアを決定することと、
定量的シソーラス行列に制御を送信して、前記クエリ単語−トランスクリプト単語ペアのうちの各クエリ単語−トランスクリプト単語ペアについての類似性スコアをもたらすことと、
前記類似性スコアに等しく前記相互相関を設定することと、を含む、
請求項１１に記載のコンピューティング装置。
【請求項１７】
前記トランスクリプトは、１つ以上の文書を含み、
前記命令は、
定量的シソーラス行列に制御を送信して、前記リテラルのうちの各リテラルについての閾値柔らかさを上回る類似性スコアを有する類似の単語をもたらし、
前記類似の単語のうちの少なくとも１つを有する前記１つ以上の文書のセットを決定し、且つ
前記1つ以上の文書の前記セットを前記トランスクリプトとして利用する、
ように、当該コンピューティング装置を構成する、
請求項１１に記載のコンピューティング装置。
【請求項１８】
前記クエリは、非言語情報を更に含み、前記命令は、非言語情報次元を前記クエリ行列および前記トランスクリプト行列に加えるように、当該コンピューティング装置を更に構成する、請求項１１に記載のコンピューティング装置。
【請求項１９】
前記非言語情報は、感情モデルであり、
前記クエリ行列の前記非言語情報次元は、クエリフラグであり、
前記トランスクリプト行列の前記非言語情報次元は、前記感情モデルの出力である、
請求項１８に記載のコンピューティング装置。
【請求項２０】
前記非言語情報は、スピーカメタデータであり、
前記クエリ行列の前記非言語情報次元は、クエリフラグであり、
前記トランスクリプト行列の前記非言語情報次元は、スピーカの表示である、
請求項１８に記載のコンピューティング装置。
【発明の詳細な説明】
【背景技術】
【０００１】
単語(words)または語句(phrases)がテキスト文書(text  document)で使用されたかどうかを決定するために検索クエリエンジン(search  query  engines)が利用されることがある。従来の検索エンジンは、その単語または語句の意味ではなく、使用された実際の単語または語句に焦点を当てる。また、それらの従来の検索エンジンは、正確でも効率的でもない。よって、それらはリアルタイム検索クエリアプリケーションにおいて、或いは全体においてさえ、限定的に使用されることがある。加えて、従来の検索クエリエンジンは、概念についての感情メタデータが豊富な言語(speech)トランスクリプトを検索しない。
【発明の概要】
【０００２】
検索クエリエンジンは、検索クエリをリテラル(literals)と演算子(operators)とを使用して演算ツリー(tree  of  operations)に変換する。次に、クエリ(query)およびトランスクリプト(transcript)を、単語の意味を表す単語埋め込み(word  embeddings)の行列に変換し、２つの行列の相互相関を計算してマッチ(一致)を見出す。幾つかの場合において、大きなトランスクリプト行列の相互相関は、行列のフーリエ変換を利用することによって加速されてよい。その場合、マッチは、柔らかさマップ(softness  map)によって決定されるような柔らかさ閾値を持つ、それらのドット積(内積)である。マッチする単語に加えて、非言語データ（例えば、感情または話者の役割）が、非言語データの様々な部分についてのメトリック(metric)を含むよう単語埋め込み行列の次元を拡張することによって一致させられることがある。
【０００３】
あらゆる特定の要素または行為の議論を容易に識別するために、参照番号中の最上位の桁または複数の桁は、その要素が最初に導入された図番を指す。
【図面の簡単な説明】
【０００４】
【図１】通信システム１００の実施形態を図示している。
【０００５】
【図２】クエリ方法２００の実施形態を図示している。
【０００６】
【図３】演算ツリーの生成方法３００の実施形態を図示している。
【０００７】
【図４】クエリタイプ４００の実施形態を図示している。
【０００８】
【図５】クエリツリー５００の実施形態を図示している。
【０００９】
【図６】単語埋め込み方法６００の実施形態を図示している。
【００１０】
【図７】高速フーリエ変換システム７００の実施形態を図示している。
【００１１】
【図８】高速フーリエ変換方法８００の実施形態を図示している。
【００１２】
【図９】マッチ組み合わせ方法９００の実施形態を図示している。
【００１３】
【図１０】通信システム１０００の実施形態を図示している。
【００１４】
【図１１】クエリ方法１１００の実施形態を図示している。
【００１５】
【図１２】希薄な定量的シソーラス行列生成方法１２００の実施形態を図示している。
【００１６】
【図１３】１つの実施形態に従ったシソーラス１３００を図示している。
【００１７】
【図１４】本発明の実施形態を組み込むことがあるコンピューティングデバイス１４００の例示的なブロック図である。
【発明を実施するための形態】
【００１８】
本明細書に開示されているのは、複数参加者の音声会議のマシン生成された言語(speech)からテキスト(text)へのトランスクリプト(transcripts)であるデータファイルのような構造化されていないまたは軽く構造化されたデータソースから結果を遙かに速く返すためにデータ処理デバイスによって実行されることがある、非従来的な検索エンジンアルゴリズムの実施形態である。具体的には、新しいアルゴリズムは、中央処理装置（ＣＰＵ）およびグラフィックス処理装置（ＧＰＵ）のような現代的なデータ処理集積回路の命令セットアーキテクチャを使用して、テキストから言語へ変換されたトランスクリプトファイルでの実行のために特に効率的な処理の組み合わせを利用する。
【００１９】
図１を参照すると、通信システム１００は、第１の人物１０２、第２の人物１０４、ネットワーク１０６、オーディオ変換システム１０８(audio  transformation  system)、言語テキスト変換器１１０(speech  to  text  converter)、アナログデジタル変換器１１２(analog  to  digital  converter)、濃縮ロジック１１４(enrichment  logic)、デジタルトランスクリプト１１６(digital  transcript)、第３の人物１１８、クエリエンジン１２０(query  engine)、クエリパーサ１２２(query  parser)、行列生成器１２４(matrix  generator)、クエリ単語埋め込み行列１２６(query  word  embedding  matrix)、トランスクリプト単語埋め込み行列１２８(transcript  word  embedding  matrix)、相互相関器１３０(cross-correlator)、比較器１３２(コンパレータ)、柔らかさマップ１３４(softness  map)、および結合器１３６(コンバイナ)を含む。
【００２０】
第１の人物１０２は、ネットワーク１０６、例えば、ＩＰネットワーク、アナログ電話ネットワーク、またはセルラネットワークを介して、第２の人物１０４とオーディオ通信を行う。
【００２１】
通信からのオーディオは録音されてよく、或いはオーディオ変換システム１０８にライブストリーミングされてよく、オーディオ変換システム１０８は、オーディオをメタデータに富んだテキストに変換する。オーディオ変換システム１０８は、言語テキスト変換器１１０と、オーディオを濃縮テキスト(enriched  text)に変換する濃縮ロジック１１４とを含んでよい。オーディオがアナログフォーマットであるならば、オーディオ変換システム１０８は、言語テキスト変換器１１０にデジタルオーディオを提供する前に、アナログデジタル変換器１１２を利用してデジタルフォーマットに変換してよい。
【００２２】
オーディオの濃縮テキストは、デジタルトランスクリプト１１６の１つ以上のデジタルファイルの形態で出力される。第３の人物１１８は、クエリを使用してデジタルトランスクリプト１１６を検索してよい。クエリは、デジタルトランスクリプト１１６と共に、クエリエンジン１２０によって作動される。クエリエンジン１２０は、図２に示すプロセスに従って作動されてよい。
【００２３】
クエリエンジン１２０は、クエリをクエリパーサ１２２に入力して、クエリの単語（リテラル）および演算子から演算ツリーを生成する。クエリパーサ１２２は、図３に示すプロセスに従って演算ツリーを生成してよい。クエリパーサ１２２は、クエリタイプ４００を更に利用して、クエリを演算ツリーに構文解析して(parse)よい。リテラルおよびデジタルトランスクリプト１１６は、クエリ単語埋め込み行列１２６およびトランスクリプト単語埋め込み行列１２８を生成するために行列生成器１２４に入力される。行列は、図６に示すプロセスに従って生成されてよい。これらの２つの行列は、ドット積ペア(dot  product  pairs)を生成するために相互相関器１３０に入力されて、ドット積ペアは、比較器１３２に入力される。大きな行列を有する実施形態のような幾つかの実施形態では、高速フーリエ変換システムを用いて、ドット積を生成してよい。このシステムの実施形態が図７に示されている。比較器１３２は、柔らかさマップ１３４によって決定されるような柔らかさ閾値を有するドット積からのマッチ(一致)を識別する。マッチは、クエリパーサ１２２によってクエリから抽出される演算子に基づいて結合される（結合器１３６）。結合器１３６は、図９に示すプロセスに従って作動されてよい。結合器１３６は、出力を生成する。結合器１３６は、最終的な重みが低すぎるならば、出力の数を、多数の最高の結果、全ての結果、または結果なしに制限してよい。
【００２４】
図２を参照すると、クエリ方法２００(照会方法)が、トランスクリプトを受信する（ブロック２０２）。トランスクリプトは、図１で議論したデジタルトランスクリプト１１６であってよい。次に、クエリが受信される（ブロック２０４）。クエリは、図４を参照して議論するクエリタイプを含んでよい。次に、クエリは、リテラルと演算子とを含む演算ツリーに変換される（ブロック２０６）。演算ツリーは、幹(ステム)としての演算子と、葉(リーフ)としてのリテラルとを含む。演算子は、単項または二進(バイナリ)、すなわち、それぞれ、演算ツリー上の下位レベルへの１つまたは２つの接続であってよい。演算ツリーは、図３に示すプロセスによって生成されてよい。他のツリー生成アルゴリズムが利用されてよい。リテラルおよびトランスクリプトは、それぞれ、単語埋め込み行列に変換される（ブロック２０８）。単語埋め込みは、制御メモリ構造内に格納されてよい。単語埋め込みは、５０〜１０００次元のような多次元であってよい。効率および精度を最適化するために、３００次元単語埋め込みが利用されてよい。単語埋め込みは、図６に示すプロセスに従って生成されてよい。埋め込みの次元は、他の非言語情報を格納するために拡張されてよい。例えば、話者の役割（すなわち、「エージェント(agent)」対「発信者(caller)」）または感情的な内容（話者がどれぐらい怒っていたか基づく０．０〜１．０）が含められてよい。上述の感情モデルのような「柔らかな(soft)」出力については、それがドット積においてより高いマッチを保持する限り（すなわち、０．９の点が１つは高いマッチ）、トランスクリプト埋め込みの次元は、モデル出力を含むように拡張されてよく、クエリ埋め込みは、クエリフラグ（０対１または同様のもの）を含むように拡張されてよい。３００次元単語埋め込みを有する任意の例示的なベクトルについては、非言語情報を表すために、追加の「３０１番目」以上の次元が含められる。ハードメタデータ（すなわち、話者の役割）については、この同じ方法が利用されてよく、或いは、そのメタデータフラグに一致するトランスクリプトセグメントをフィルタリングするために、検索インデックスが利用されてよい。各リテラルは、その独自のクエリ行列を有してよい。トランスクリプトおよびクエリの相互相関が計算される（ブロック２１０）。相互相関は、以下によって決定されてよい。
【数１】
2021534528.tif 000003
式１
【００２５】
ここで、Ｃは、相互相関であり、Ｔは、トランスクリプト行列であり、Ｑは、クエリ行列であり、ｌは、トランスクリプト中の単語数に基づいて決定されるトランスクリプト行列の長さである。より大きなトランスクリプト行列のような、幾つかの実施態様において、相互相関は、行列のフーリエ変換および畳み込み定理(convolution  Theorem)を利用して決定される。例示的なシステムが図７に示されており、プロセスが図８に示されている。閾値行列サイズを利用して、高速フーリエ変換システム７００が利用されるかどうかを決定してよい。相互相関は、各リテラルについて決定されてよい。次に、相互相関を柔らかさマップ(softness  map)と比較して、マッチを決定する（ブロック２１２）。柔らかさマップは、所与の（複数の）リテラルの柔らかさの程度に基づいてよい。柔らかさマップは、各リテラルについての閾値を返す。何故ならば、各リテラルは、異なる柔らかさを有することがあるからである。相互相関は、マッチを決定するために、柔らかさ行列からの閾値と比較される。閾値を超える各リテラルについて相互相関は、マッチであると決定される。マッチおよび演算子を利用して、演算ツリーを実行して、出力を返す（ブロック２１４）。これは図９に示すプロセスに従って実行されてよい。クエリ方法２００は、出力を決定するために、分路ヤードアルゴリズム(shunting-yard  algorithm)を利用してもよい。各演算子は、マッチに対する効果を決定するために格納される合成ルール(composition  rules)を有してよい。各リテラルについてのマッチは、リテラルについて複数のマッチが決定されるならば、演算ツリー内のリテラルおよび実行された演算ツリーの複数の順列を置き換えることがある。出力される前に、更なる閾値を実行して、それらの出力を低い重みで除去してよい。出力は、マッチの場所、マッチの重み、クエリ、マッチ、任意の抽出などを含んでよい。
【００２６】
幾つかの実施形態では、クエリが語句に対して実行されてよい。相互相関は、より長い語句で良く挙動するが、語順序は、意味に影響を与える。よって、順序が狂っていることは、ペナルティを課されることがある一方で、ある程度の単語の並び替えを許可することがある。１つの方法は、トランスクリプト埋め込み行列を柔らかいクエリ中の核(kernel)（例えば、ガウス核(Gaussian  kernel)）と合成することである。これは単語の場所が数箇所不鮮明にして、単語の並び替えがある程度許容されるようになる。畳み込みは、クエリ埋め込み行列で実行されてもよい。これは相互相関と機能的に同じであり、以下によって決定される。
【数２】
2021534528.tif 000004
式２
【００２７】
ここで、Ｂは、結果として得られた不鮮明な行列であり、Ｃは、不鮮明にされた行列であり、Ｋは、核であり、ｌは、不鮮明にされた行列の長さである。核の例は、Ｋ＝［０．０５，０．１，０．７，０．１，０．０５］である。
【００２８】
図３を参照すると、演算ツリー生成方法３００はクエリを受信する（ブロック３０２）。（複数の）複合クエリインジケータ(compound  query  indicator)の存在が決定される（ブロック３０４）。演算ツリー生成方法３００が、インジケータが存在しないと決定するならば（決定ブロック３０６）、演算ツリー生成方法３００は、演算子が存在するかどうかを決定する（決定ブロック３０８）。存在しないならば、リテラルが決定される（ブロック３１０）。柔らかさのようなリテラルへのあらゆる変更も決定される。演算子が存在すると決定されるならば、その演算子は決定される（ブロック３１２）。次に、演算子はブロック３１８に送られる。
【００２９】
複合クエリインジケータが存在すると決定されるならば、最内側インジケータが初期化される（ブロック３１４）。インジケータは、括弧のセットであってよい。数学的演算を利用して、どのインジケータが最内側にあるかを決定してよい。２つのインジケータの両方が最内側にあると考えられることがあるならば、１つが選択される。１つのそのようなスキームは、左から右に最初にあるインジケータを選択することである。次に、最内側の演算子が決定され、現在の演算子として設定される（ブロック３１６）。カウンタが「１」に設定される（ブロック３１８）。カウンタは、一般的に、他の実施形態では、任意の数または他の値に初期化されてよい。現在の演算子がレベル「カウンタ＋１」に配置される（ブロック３２０）。（複数の）リテラルは、現在の演算子のために決定される（ブロック３２２）。それらのリテラルは、レベル「カウンタ」に配置され、現在の演算子に接続される（ブロック３２４）。次に、演算ツリー生成方法３００は、別のインジケータまたは演算子が存在するかどうかを決定する（決定ブロック３２６）。存在するならば、現在の演算子は、より高いレベルで次の接続される演算子のためのリテラルとして格納される（ブロック３２８）。次のインジケータが決定される（ブロック３３０）。別の演算子が検出されるが、インジケータが決定されない場合、演算ツリー生成方法３００は、その演算子がインジケータ内にあるものとして扱ってよい。次のインジケータがより高いレベルにあるならば、カウンタは増分される（ブロック３３２）。次の演算子が決定される（ブロック３３４）。次の演算子は、現在の演算子として設定される（ブロック３３６）。次に、演算ツリー生成方法３００は、ブロック３２０から開始する。リテラルのみがひとたび決定されると或いは追加の演算子またはインジケータが存在しないと、演算ツリー生成方法３００は終了する（ブロック３３８）。
【００３０】
図４を参照すると、クエリ制御メモリ構造４０２に格納されてよいクエリタイプ４００が示されている。クエリタイプ４００は、リテラル４０４と、語句演算子４０６(phrase  operators)と、会話演算子４０８(conversation  operators)と、セグメント変更子４１０(segment  modifiers)と、複合クエリ４１２(compound  queries)と、抽出子４１４(extractors)と、時間演算子４１６(time  operators)と、メタデータ４１８(metadata)とを含んでよい。上記は、クエリタイプ４００の網羅的なリストを構成しない。
【００３１】
リテラル４０４はクエリから抽出され、トランスクリプトと比較される。リテラル４０４は、単語または語句のまわりの引用符によって示されてよい。例えば、リテラル４０４は、「衝突(crash)」、「紛失クレジットカード(lost  credit  card」などであってよい。単一の引用符は、「衝突」のような、幾つかの実施形態において利用されてもよい。他の実施形態では、リテラル４０４のための他のインジケータが利用されてよい。インジケータは、どのテキストがトランスクリプトと比較されるべきかを決定するために使用される。リテラル４０４は、関連する柔らかさ(softness)を有する。リテラル４０４は、デフォルト(初期設定)の柔らかさ０を有してよい。しかしながら、この柔らかさは、類似のマッチを「緩める(loosen  up)」ために引用される単語または語句の前に加えられる１つ以上の上付き波形符号（〜）のような、柔らかさインジケータによって増加されてよい（意味論的には、意味において音を出さない(not  sound)と類似を意味する）。１つの実施形態において、１つの上付き波形符号(tilde)は、複数(plurals)または同根(conjugates)のような類似の形態とマッチする。〜「衝突する(crash)」は、「衝突する(crashes)」または「衝突している(crashing)」と一致する。２つの上付き波形符号は、類似語とマッチする。例えば、〜〜「衝突(crash)」は、「事故(accident)」または「衝突(collision)」とマッチする。３つの上付き波形符号は、関連する言い回し(phrasing)とマッチする。例えば、〜〜〜「良い１日を(have  a  nice  day)」は、「私は貴方の１日が素晴らしいことを願う(I  hope  your  day  is  great)」とマッチする。リテラル４０４と関連付けられる柔らかさを利用して、潜在的なマッチについての閾値を決定し、柔らかさマップ(softness  map)に組み込んでよい。
【００３２】
語句演算子４０６は、２つのこと（例えば、リテラル４０４）について言語セグメント内を探索するために利用される。例示的な語句演算子４０６は、「近く(near)」、「または(or)」、「次に(then)」を含む。例えば、〜〜「衝突」、近く、「ホンダ」というクエリは、〜〜「衝突」および「ホンダ」の両方を探す。〜〜「衝突」または「チケット」というクエリは、〜〜「衝突」または「チケット」の一方または両方を探す。〜〜「衝突」、次に、「警察報告書(police  report)」というクエリは、〜〜「衝突」および「警察報告書」の両方を順番に探す。すなわち、「私が事故を起こし、次に、彼らは警察報告書を書いた(I  had  an  accident  and  then  they  wrote  a  police  report)」というトランスクリプトはマッチするが、「私は衝突後に警察報告書を発見した(I  found  the  police  report  after  the  crash)」というトランスクリプトはマッチしない。語句演算子４０６は、演算ツリー内に配置され、リテラル４０４のマッチがあるならば、それらを組み合わせるために利用される。
【００３３】
会話演算子４０８は、会話全体に亘って２つのことを探索するために利用される。例示的な会話演算子４０８は、「および(and)」、「または(or)」および「後に(later)」を含む。「および(and)」という演算子は、両方のリテラルを含む会話を探し出す。〜〜「紛失したカード」および「２週間」というクエリは、以下のような会話とマッチすることがある。
もしもし、お電話ありがとうございます(Hello  thanks  for  calling)。
・・・
私は見つからないカードを報告したいです(I  want  to  report  a  missing  card)。
・・・
新しいカードは１〜２週間で届くはずです(The  new  card  should  arrive  in  one  to  two  weeks)。
・・・
【００３４】
しかしながら、対照的に、「近く(near)」という演算子はマッチしないことがある。なぜならば、それらは異なる言語セグメントに跨がるからである。「または(or)」という演算子は、一方のリテラルまたはその両方を含む会話を探す。その使用は、語句スキャナに対する文脈(コンテキスト)によって決定される。発信者、〜〜「紛失したカード」、または、発信者、「２週間」、というクエリは、以下の会話とマッチすることがある。
もしもし、お電話ありがとうございます(Hello  thanks  for  calling)。
・・・
私は見つからないカードを報告したいです(I  want  to  report  a  missing  card)。
・・・
新しいカードは５日で届くはずです(The  new  card  should  arrive  in  five  days)。
・・・
【００３５】
「後に(later)」という演算子は、両方のリテラルを順番に含む会話を探す。例えば、〜〜〜「私は私のパスワードをリセットする」、後に、〜「ありがとう」というクエリは、以下の会話と一致することがある。
もしもし、お電話ありがとうございます(Hello  thanks  for  calling)。
・・・
私は私のパスワードをリセットする必要があります(I  need  my  password  reset)。
・・・
ありがとうございます(Thank  you)。
・・・
【００３６】
しかしながら、最後の「ありがとうございました(thank  you)」が省略されたならば、「ありがとう(thanks)」が会話の初めに言われたにも拘わらず、会話はマッチしない。
【００３７】
セグメント変更子４１０は、セグメントを特定の特性に制限するか或いはセグメントを何らかの他の方法で変更するためにセグメントの左側に配置されてよい追加の変更子である。例示的なセグメント変更子４１０は、「エージェント(agent)」、「発信者(caller)」および「しない(not)」を含む。「エージェント」セグメント変更子は、エージェントが次の語句を言う場合に当て嵌まる。例示的なクエリは、エージェント〜〜「聞けて嬉しい(great  to  hear)」である。「発信者」セグメント変更子は、発信者が以下の語句を言う場合に当て嵌まる。例示的なクエリは、発信者〜〜「非常に役立つ(very  helpful」である。「しない」セグメント変更子は、以下の語句が起こらない場合に当て嵌まる。例示的なクエリは、しない、〜〜「苦情(claim)」、である。加えて、しない、エージェント、〜〜「すみません」が、エージェントが謝ることのない会話とマッチするように、（順番が意味に影響を及ぼし得るが）、セグメント変更子４１０は、積み重ねられてよい。
【００３８】
複合クエリ４１２は、より複雑なクエリを構築するために利用される。複合物クエリ４１２は、１つの実施形態において、括弧の利用によって示されてよい。他の実施形態は、複合クエリ４１２を示す記号(シンボル)を利用してよい。内部スキャナは評価され、次に、外部スキャナと組み合わされる。例は、（〜〜「衝突」、近く、〜〜「警察報告書」、または、〜〜〜「苦情を提出する」、である。この語句は、衝突および警察報告書が両方とも述べられている場合または苦情が提出されている場合（或または両方である場合）に当て嵌まる。しかしながら、「警察報告書」のみはマッチしない。複合クエリ４１２は、（（（〜〜「衝突」、近く、「警察報告書」）、または、〜〜〜「苦情を提出する」）、後に、エージェント、〜〜「ごめんなさい」）、および、発信者、しない、〜〜「ありがとうございます」、または、「苦情を手伝ってくださりありがとうございました」のように、複数回行われてよい。
【００３９】
抽出子４１４は、概念を表す中括弧「｛｝」によって示されることがある特殊な語句である。幾つかの実施形態において、抽出子４１４は、恰も２つの上付き波形符号を有するものとして扱われ、よって、省略されることができる。〜〜「こんにちは。私の名前は｛｝です。」は、「はい。私の名前はジョージです。」とマッチすることがある。ありそうなマッチの他の例は、｛名｝−アンソニー、スティーブ；｛姓｝−リチャードソン、エルナンデス；｛氏名｝−アンソニー・リチャードソン、スティーブ・エルナンデス；｛日付｝−３月５日、クリスマス；｛時間｝−午前５時半、正午；｛挨拶｝−こんにちは、おはようございます。｛丁寧｝−ありがとう、どうぞ；｛肯定的｝−素敵、素晴らしい、見事；｛否定的｝−酷い、恐ろしい、悲しい；｛会社｝−マイクロソフト（登録商標）；｛郵便番号｝−９０２１０；｛肩書き｝−様、嬢、博士；および｛電話番号｝−８６７５３０９を含む。
【００４０】
時間演算子４１６は、スキャナに対して時間制約を課す。［＜３０ｓ］が３０秒未満、［＜５ｓ］が５秒未満、および［＜５ｍ］が５分未満であるような、大括弧、ならびに未満演算子、数字、および単位のような、インジケータを利用することによって、最大持続時間またはある量の時間未満が経過したことが、特定されてよい。「利率」［＜３０ｓ］「ａ．ｐ．ｒ．」というクエリは、「利率」後の３０秒未満の「ａ．ｐ．ｒ．」という語句を探す。最小持続時間は、最大持続時間と類似するが、語句の間に特定の量の時間よりも多くがあることを必要とする。例は、「＞２０ｓ」が２０秒よりも多い、「＞１００ｓ」が１００秒よりも多い、「＞１５ｍ」が１５分よりも多いである。開始トークンおよび終了トークンは、電話の開始および終了を指定するために利用されてよい時間演算子４１６である。たとえば、｛開始｝［＜３０ｓ］「電話ありがとう」は、「電話ありがとう」が最初の３０秒内に言われることを探す。同様に、｛終了｝は、電話の終了を示すことができる。「今日は何かあった」［＞１ｍ］｛終了｝というクエリは、「今日は何かあった」が電話の終了の１分以上前に言われたことを強制することがある。
【００４１】
メタデータ４１８は、日付、開始時間、持続時間、またはユーザが提供するメタデータのような、電話メタデータに制約を課すために利用されてよい。メタデータクエリは、先ず、実行されてよく、次に、スキャナは、結果として得られるサブセットに対して実行される。
【００４２】
図５を参照すると、クエリツリー５００が、第１のリテラル５０２と、第１の演算子５０４と、複合クエリ５０６と、第２のリテラル５０８と、第２の演算子５１０と、第３のリテラル５１２とを含む。クエリツリー５００は、〜〜「紛失」、および、（〜〜「デビット」、次に、「カード」）というクエリから生成される。次に、クエリは、「私は私のクレジットカードを置き間違えたと思う。」というトランスクリプトと比較される。
【００４３】
クエリは、複合クエリインジケータ、ここでは、括弧を有するので、クエリのその部分は、最初に演算される。第２の演算子５１０は、複合クエリ５０６内の演算子であると決定され、クエリツリー５００の第２のレベルに配置される。第２の演算子５１０についてのリテラル、第２のリテラル５０８、および第３のリテラル５１２が決定され、第２の演算子５１０に接続されたクエリツリー５００の第１のレベルに配置される。リテラルの単語または語句および関連する柔らかさが決定され、次に、それはトランスクリプトと比較するために利用される。次に、次の演算子、すなわち、第１の演算子５０４が決定され、クエリツリー５００の第３のレベルに配置される。次に、接続子(connector)は、第１の演算子５０４について決定され、それらは、第１のリテラル５０２および第２の演算子５１０である。第１のリテラル５０２は、その単語または語句、およびトランスクリプトと比較するために利用されることが決定された関連する柔らかさも有する。
【００４４】
図６を参照すると、単語埋め込み方法６００が、クエリまたはトランスクリプトについての複数の単語を決定する（ブロック６０２）。単語埋め込み方法６００は、クエリおよびトランスクリプトの両方に対して実行されてよい。クエリまたはトランスクリプトベクトルは、単語数に等しい長さで生成される（ブロック６０４）。第１の単語が選択され（ブロック６０６）、現在の単語として設定される（ブロック６０８）。次に、現在の単語についての埋め込みベクトルが決定される（ブロック６１０）。埋め込みベクトルは、事前に決定され、検索されるために格納されてよい。埋め込みベクトルは、幾つかの実施形態において、５０〜１０００次元の間であってよい。埋め込みベクトルは、クエリまたはトランスクリプトベクトルに配置される（ブロック６１２）。埋め込みベクトルは、クエリベクトルまたはトランスクリプトベクトル内の単語を置き換える。次に、単語埋め込み方法６００は、別の単語が存在するかどうかを決定する（決定ブロック６１４）。存在するならば、次の単語が選択され（ブロック６１６）、単語埋め込み方法６００はブロック６０８から実行される。ひとたび単語がそれらの単語埋め込みと置き換えられると、単語埋め込み方法６００は終了する。
【００４５】
図７を参照すると、高速フーリエ変換システム７００が、クエリ単語埋め込み行列７０２と、トランスクリプト単語埋め込み行列７０４と、フーリエ高速変換器７０６と、相互相関器７０８と、および逆フーリエ高速変換器７１０とを含む。
【００４６】
クエリ単語埋め込み行列７０２およびトランスクリプト単語埋め込み行列７０４は、行列生成器から受信されてよい。フーリエ高速変換器７０６が、比較のためのドット積を生成するときに相互相関器７０８の性能を加速するために、クエリ単語埋め込み行列７０２およびトランスクリプト単語埋め込み行列７０４に対してフーリエ変換を実行する。相互相関器７０８は、点別乗算を実行し、結果を逆フーリエ高速変圧器７１０に送ってよい。次に、相互相関器７０８の出力は、逆フーリエ変換を使用して、逆フーリエ高速変換器７１０によって逆変換されてよい。高速フーリエ変換システム７００は、図８に示すプロセスに従って作動させられてよい。
【００４７】
高速フーリエ変換システム７００は、相互相関を実行するためのデフォルトシステムまたは代替システムであってもよい。行列サイズのような係数に基づく閾値を利用して、高速フーリエ変換システム７００を利用するかどうかを決定してよい。
【００４８】
図８を参照すると、高速フーリエ変換方法８００は、トランスクリプト行列およびクエリ行列を受信する（ブロック８０２）。フーリエ変換がトランスクリプト行列およびクエリ行列に適用される（ブロック８０４）。点別乗算が行列間に適用される（ブロック８０６）。逆フーリエ変換が行列の点別積に適用される（ブロック８０８）。次に、結果として得られた「ドット積」は、あらゆるマッチを決定するために比較器に送信される。
【００４９】
図９を参照すると、マッチ組み合わせ方法９００が、リテラルをマッチで置き換える（ブロック９０２）。リテラルは、演算ツリーの一部として受信されることがある。マッチは、比較器から受信されることがある。演算ツリー内のレベル数が決定される（ブロック９０４）。最低レベルが選択される（ブロック９０６）。そのレベルでの第１のマッチのペアが選択される（ブロック９０８）。複数のペアが同じレベルにあるならば、１つが無作為に選択されてよく、あるいは、直列に実行されるならば、最初に実行されるべき位置（例えば、最も左）によって選択されてよい。ペアは、並列に評価されてよい。単項演算子の場合、その演算子のリテラルが選択される。幾つかのシナリオにおいて、演算されるべき「リテラル」は、例えば、複合クエリのためのように、（複数の）演算子に対して作用している演算子の結果である。接続演算子が決定される（ブロック９１０）。演算子に対応する演算が決定される（ブロック９１２）。演算は、演算子と共に格納されてよく、（複数の）リテラル上で実行されるように検索されてよい。例示的な演算は、両方のリテラルにマッチすることを要求する「および(and)」演算子を含む。新しい開始は、２つの元々のリテラルの開始の最小である。新しい終了は、２つの終了の最大である。新しいマッチは、および(and)と連結される元の２つの元々のマッチストリング（すなわち、「クレジット」および「カード」）である。新しいクエリは、類似の方法において組み合わせられる。重みは、入力の重みの積である。このようにして、「および(and)」は、２つの相互相関の積でマッチのように振る舞う。「または(or)」演算子は、それが重みの積というよりもむしろ総計を生むことを除いて、「および(and)」と同様に振る舞う。「次に(then)」演算子は、「および(and)」のように振る舞うが、時間の順序付けが強制されることを要求する。（単項演算子である）「しない(not)」演算子は、入力信号を反転させ、両端に小さなマッチ領域を追加するので、それは「次に(then)」演算子と協働する。演算は、リテラルに適用され、ペアにされ、あるいはその他にされる（ブロック９１４）。（複数の）演算子は、ペアにされたマッチの結果に変更される（ブロック９１６）。演算ツリーは縮小され、演算子の位置は、今や、（複数の）リテラル上で実行された演算の結果、または演算子の以前の置換を含むことがある。幾つかの実施形態では、マッチを潜在的な出力として除去するために、演算が実行された後に、閾値が適用される。マッチ組み合わせ方法９００は、そのレベルに別のペアが存在するかどうかを決定する（決定ブロック９１８）。もし存在するならば、次のパッチのペアが選択される（ブロック９２０）。上記のように、１つのリテラルまたは減少された演算子が、単項演算子のために選択されます。次に、マッチ組み合わせ方法９００は、ブロック９１０からの次のペアに対して実行される。
【００５０】
ひとたびレベルが演算子によって低減されると、マッチ組み合わせ方法９００は、別のレベルが存在するかどうかを決定する（決定ブロック９２２）。もし存在するならば、次のレベルが選択され（ブロック９２４）、マッチ組み合わせ方法９００はブロック９０８からの次のレベルに対して実行される。ひとたび全てのレベルが低減されると、出力が生成される。出力は、開始と、終了と、重みと、クエリと、マッチと、抽出とを含んでよい。他の情報が提供されてよい。出力は、例えば、出力を強調するために、トランスクリプトに適用されてもよい。次に、マッチ組み合わせ方法９００は、終了する（完了ブロック９２６）。
【００５１】
図１０を参照すると、通信システム１０００が、第１の人物１００２と、第２の人物１００４と、ネットワーク１００６と、オーディオ変換システム１００８と、言語テキスト変換器１０１０と、アナログデジタル変換器１０１２と、濃縮ロジック１０１４と、デジタルトランスクリプト１０１６と、第３の人物１０１８と、クエリエンジン１０２０と、クエリパーサ１０２２と、検索エンジン１０２４と、定量的シソーラス行列１０２６と、結合器１０２８とを含む。
【００５２】
第１の人物１００２は、ネットワーク１００６、例えば、ＩＰネットワーク、アナログ電話ネットワーク、またはセルラネットワークを介して、第２の人物１００４とオーディオ通信を行っている。
【００５３】
通信からのオーディオは、録音されてよく、あるいはオーディオ変換システム１００８にストリーミングされてよく、オーディオ変換システムは、音声をメタデータに富んだテキストに変換する。オーディオ変換システム１００８は、言語テキスト変換器１０１０と、オーディオを濃縮テキストに変換する濃縮ロジック１０１４とを含んでよい。オーディオがアナログフォーマットであるならば、オーディオ変換システム１００８は、デジタルオーディオを言語テキスト変換器１０１０に提供する前にデジタルフォーマットに変換するために、アナログデジタル変換器１０１２を利用してよい。
【００５４】
オーディオの豊富化されたテキストは、デジタルトランスクリプト１０１６の１つ以上のデジタルファイルの形態で出力される。第３の人物１０１８は、クエリを使用してデジタルトランスクリプト１０１６を検索してよい。クエリは、デジタルトランスクリプト１０１６と共に、クエリエンジン１０２０によって演算される。クエリエンジン１０２０は、図１２に示すプロセスに従って作動させられてよい。
【００５５】
クエリエンジン１０２０は、クエリパーサ１０２２にクエリを入力して、クエリの単語（リテラル）および演算子から演算ツリーを生成する。クエリパーサ１０２２は、図３に示すプロセスに従って演算ツリーを生成してよい。クエリパーサ１０２２は、更に、クエリタイプ４００を利用して、クエリを演算ツリーに構文解析してよい。リテラルおよびデジタルトランスクリプト１０１６は、検索エンジン１０２４に入力され、検索エンジンは、定量的シソーラス行列１０２６からマッチを検索する。定量的シソーラス行列１０２６は、図１２に示すプロセスに基づいて生成されてよい。マッチは、クエリパーサ１０２２によってクエリから抽出される演算子に基づいて組み合わされる（結合器１０２８）。結合器１０２８は、図９に示すプロセスに従って作動させられてよい。
【００５６】
図１１を参照すると、トランスクリプトが受信される（ブロック１１０２）。クエリも受信される（ブロック１１０４）。クエリは、リテラルと演算子とを含む演算ツリーに変換される（ブロック１１０６）。このステップは、図３に示すプロセスに従って実行されてよい。リテラルおよびトランスクリプトは、単語のベクトルに変換される（ブロック１１０８）。各々のクエリ単語−トランスクリプト単語ペアについて格納された値が検索される（ブロック１１１０）。値は、スパース行列(sparse  matrix)に格納されてよい。スパース行列は、図１２に示すプロセスに従って生成されてよい。複数のシソーラスが各々の柔らかさレベルについて生成されてよい。大きな文書セットが従来の検索インデックス（すなわち、ハッシュインデックス付きテーブル）に格納されるならば、単語類似性のスパース行列は、クエリを類似の単語に「分解する(explode)」ために利用されてもよい。分解されたクエリは、演算子のための類似の合成ルール(composition  rules)を有してもよい。これはスキャナアルゴリズムの近似バージョンが従来の検索インデックスに対して前処理として実行されることを可能にする。例えば、クエリが〜〜「紛失」であるならば、それは従来の検索インデックスに対して「紛失した(lost)」、「誤配置した(misplaced)」、「見当たらない(missing)」などの厳しいクエリに分解されてよい。単一単語のクエリについて、これは厳密である。語句のマッチについて、これは概算(approximation)であるが、閾値を正しく設定することによって、これは近似値(close  approximation)であることがある。検索された値は、マッチとして設定される（ブロック１１１２）。マッチおよび演算子は、演算ツリーを実行して、出力をもたらすために利用される（ブロック１１１４）。これは図９に示すプロセスに従って実施されてよい。
【００５７】
別の実施形態において、クエリ方法１１００は、複数の文書を含むトランスクリプトを前処理するために利用される。検索は、非常に関連性の高い文書の小さなセットに対して完全なスキャナ行列演算を実行するために文書の数を減少させるために利用されることがある。すなわち、トランスクリプトは、最初に複数の文書を含むことがある。クエリ方法１１００が適用され、図２に示すプロセスのような完全なスキャナ演算を実行するために、類似の単語を有するそれらの文書がトランスクリプト内に保持される。
【００５８】
図１２を参照すると、ドット積が２つの単語ベクトルの間で実行される（ブロック１２０２）。閾値柔軟性(thresholding  softness)がドット積に対して実行される（ブロック１２０４）。結果は格納されるスパース行列（ブロック１２０６）。例示的なシソーラスが図１３に示されている。
【００５９】
図１３を参照すると、シソーラス１３００が、ａａｒｄｖａｒｋ、紛失(lost)、誤配置(misplaced)、およびシマウマ(zebra)という単語についての類似性スコア１３０２を含む。類似性スコア１３０２は、図１２に示すプロセスによって決定されてよい。クエリが図示の単語のうちの１つと共に受信されるとき、シソーラス１３００が検索されてよい。次に、類似性スコアは、別の（複数の）探索を構築するために、（複数の）類似単語と共に利用されてよい。（複数の）類似の単語は、それらの単語を有する文書のセットを減らすために利用されてもよい。例えば、紛失(lost)がクエリ単語であるならば、誤配置(misplaced)が類似単語として選択されることがある。何故ならば、類似性スコアは０．９であるからである。しかしながら、ａａｒｄｖａｒｋおよびシマウマ(zebra)は選択されないことがある。何故ならば、類似性スコアは０．１であるからである。
【００６０】
図１４は、本発明の実施形態を組み込むことがあるコンピューティングデバイス１４００（またはコンピューティング装置）の例示的なブロック図である。図１４は、本明細書に記載する技術的プロセスの態様を実行する機械システムを単に例示したものであり、特許請求の範囲を限定するものでない。当業者は、他の変形、修正、および代替を認識するであろう。１つの実施形態において、コンピューティングデバイス１４００は、典型的には、モニタまたはグラフィカルユーザインターフェース１４０２と、データ処理システム１４２０と、通信ネットワークインターフェース１４１２と、（複数の）入力デバイス１４０８と、（複数の）出力デバイス１４０６と、同等物とを含む。
【００６１】
図１４に示すように、データ処理システム１４２０は、バスサブシステム１４１８を介して多数の周辺デバイスと通信する１つ以上のプロセッサ１４０４を含んでよい。これらの周辺デバイスは、（複数の）入力デバイス１４０８と、（複数の）出力デバイス１４０６と、通信ネットワークインターフェース１４１２と、揮発性メモリ１４１０および不揮発性メモリ１４１４のような記憶装置サブシステムとを含んでよい。
【００６２】
揮発性メモリ１４１０および／または不揮発性メモリ１４１４は、コンピュータ実行可能な命令を格納してよく、よって、プロセッサ１４０４に適用されて、プロセッサ１４０４によって実行されるときに、本明細書に開示するプロセスの実施形態を実施する、ロジック１４２２を形成する。
【００６３】
（複数の）入力デバイス１４０８は、データ処理システム１４２０に情報を入力するためのデバイスおよび機構を含む。これらは、キーボードと、キーパッドと、モニタまたはグラフィカルユーザインターフェース１４０２に組み込まれるタッチスクリーンと、音声認識システムのようなオーディオ入力デバイスと、マイクロホンと、他のタイプの入力デバイスとを含んでよい。様々な実施形態において、（複数の）入力デバイス１４０８は、コンピュータマウス、トラックボール、トラックパッド、ジョイスティック、ワイヤレスリモート、描画タブレット、音声コマンドシステム、眼トラッキングシステム、および同等物として具現されてよい。（複数の）入力デバイス１４０８は、典型的には、ユーザが、ボタンまたは同等物のクリックのようなコマンドを介してモニタまたはグラフィカルユーザインターフェース１４０２上に現れる、オブジェクト、アイコン、制御領域、テキストおよび同等物を選択することを可能にする。
【００６４】
（複数の）出力デバイス１４０６は、データ処理システム１４２０から情報を出力するためのデバイスおよび機構を含む。これらは、当技術分野でよく理解されているように、モニタまたはグラフィカルユーザインターフェース１４０２、スピーカ、プリンタ、赤外線ＬＥＤなどを含んでよい。
【００６５】
通信ネットワークインターフェース１４１２は、通信ネットワーク（例えば、通信ネットワーク１４１６）およびデータ処理システム１４２０の外部のデバイスへのインターフェースを提供する。通信ネットワークインターフェース１４１２は、他のシステムからデータを受信し、他のシステムにデータを送信するための、インターフェースとして機能してよい。通信ネットワークインターフェース１４１２の実施形態は、イーサネットインターフェース、モデム（電話、衛星、ケーブル、ＩＳＤＮ）、（非同期）デジタル加入者回線（ＤＳＬ）、ＦｉｒｅＷｉｒｅ、ＵＳＢ、ＢｌｕｅＴｏｏｔｈ（登録商標）またはＷｉＦｉのような無線通信インターフェース、近距離通信無線インターフェース、セルラインターフェース、および同等物を含んでよい。
【００６６】
通信ネットワークインターフェース１４１２は、アンテナ、ケーブル、および同等物を介して、通信ネットワーク１４１６に連結されてよい。幾つかの実施形態において、通信ネットワークインターフェース１４１２は、データ処理システム１４２０の回路基板上に物理的に一体化されてよく、あるいは、幾つかの場合には、「ソフトモデム(soft  modems)」または同等物のような、ソフトウェアまたはファームウェアにおいて実装されてよい。
【００６７】
コンピューティングデバイス１４００は、ＨＴＴＰ、ＴＣＰ／ＩＰ、ＲＴＰ／ＲＴＳＰ、ＩＰＸ、ＵＤＰおよび同等物のようなプロトコルを使用して、ネットワークを通じた通信を可能にする論理を含んでよい。
【００６８】
揮発性メモリ１４１０および不揮発性メモリ１４１４は、本明細書に記載するプロセスの様々な実施形態を実装するためにコンピュータ可読データおよび命令を記憶するように構成される有形媒体の例である。他のタイプの有形媒体は、取り外し可能なメモリ（例えば、差し込み可能なＵＳＢメモリデバイス、モバイルデバイスＳＩＭカード）、ＣＤ−ＲＯＭ、ＤＶＤのような光記憶媒体、フラッシュメモリのような半導体メモリ、非一時的な読み出し専用メモリ（ＲＯＭ）、バッテリバックアップされた揮発性メモリ、ネットワーク化された記憶デバイス、および同等物を含む。揮発性メモリ１４１０および不揮発性メモリ１４１４は、本発明の範囲内に入る開示のプロセスおよびその他の実施形態の機能性を提供する基本プログラミングおよびデータ構造を格納するように構成されてよい。
【００６９】
本発明の実施形態を実装する論理１４２２は、揮発性メモリ１４１０および／または不揮発性メモリ１４１４に格納されてよい。前記論理１４２２は、揮発性メモリ１４１０および／または不揮発性メモリ１４１４から読み出されて、プロセッサ１４０４によって実行されてよい。揮発性メモリ１４１０および不揮発性メモリ１４１４は、論理１４２２によって使用されるデータを格納するためのリポジトリを提供してもよい。
【００７０】
揮発性メモリ１４１０および不揮発性メモリ１４１４は、プログラム実行中に命令およびデータを格納するためのメインランダムアクセス記憶装置（ＲＡＭ）と、読み出し専用の非一時的命令が格納される読み出し専用記憶装置（ＲＯＭ）とを含む、多数のメモリを含んでよい。揮発性メモリ１４１０および不揮発性メモリ１４１４は、プログラムおよびデータファイルのための永続的（不揮発性）記憶装置を提供するファイル格納サブシステムを含んでよい。揮発性メモリ１４１０および不揮発性メモリ１４１４は、リムーバブルフラッシュメモリのようなリムーバブル格納システムを含んでよい。
【００７１】
バスサブシステム１４１８は、データ処理システム１４２０の様々なコンポーネントおよびサブシステムが意図したように互いに通信することを可能にするための機構を提供する。通信ネットワークインターフェース１４１２は、単一のバスとして概略的に示されているが、バスサブシステム１４１８の幾つかの実施形態は、複数の別個のバスを利用してよい。
【００７２】
コンピュータデバイス１４００がスマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、ラックマウント型コンピュータシステム、コンピュータサーバ、またはタブレットコンピュータデバイスのようなデバイスであってよいことが、当業者に容易に明らかであろう。当技術分野で一般的に知られているように、コンピューティングデバイス１４００は、複数のネットワーク化されたコンピューティングデバイスの集合として実装されてよい。更に、コンピューティングデバイス１４００は、典型的には、そのタイプおよび性質が当技術分野でよく知られているオペレーティングシステム論理（図示せず）を含む。
【００７３】
本明細書中で使用される用語は、関連する技術分野におけるそれらの通常の意味、または文脈におけるそれらの使用によって示される意味を付与されるべきであるが、明示的な定義が提供されるならば、その意味が支配する。
【００７４】
「回路構成(circuitry)」は、この文脈において、少なくとも１つの別個の電気回路、少なくとも１つの集積回路を有する電気回路、少なくとも１つの特定用途向け集積回路を有する電気回路、コンピュータプログラムによって構成された汎用コンピューティングデバイス（例えば、本明細書に記載するプロセスまたはデバイスを少なくとも部分的に実行するコンピュータプログラムによって構成される汎用コンピュータ、または本明細書に記載するプロセスまたはデバイスを少なくとも部分的に実行するコンピュータプログラムによって構成されるマイクロプロセッサ）を形成する回路、メモリデバイス（例えば、ランダムアクセス記憶装置の形態）を形成する回路、または通信デバイス（例えば、モデム、通信スイッチ、または光電気機器）を形成する回路を指す。
【００７５】
「ファームウェア(firmware)」は、この文脈において、読み出し専用記憶装置または媒体に格納されるプロセッサ実行可能な命令として具現されるソフトウェア論理を指す。
【００７６】
「ハードウェア(hardware)」は、この文脈において、アナログまたはデジタル回路として具現される論理を指す。
【００７７】
「論理(ロジック)(logic)」は、この文脈において、機械メモリ回路、非一時的な機械可読媒体、および／または、その材料および／または材料−エネルギ構成を通じて、デバイスの動作に影響を与えるために適用されることがある制御および／または手順信号、および／または（抵抗、インピーダンス、キャパシタンス、インダクタンス、電流／電圧定格などのような）設定および値を含む、回路構成を指す。磁気媒体、電子回路、電気および光メモリ（揮発性および不揮発性の両方）、およびファームウェアが、論理の例である。論理は、純粋な信号またはソフトウェア自体を特に除外する（しかしながら、ソフトウェアを含む、それによって、物質の構成を形成する、機械メモリを除外しない）。
【００７８】
「ソフトウェア(software)」は、この文脈において、機械メモリ（例えば、読み出し／書き込み揮発性または不揮発性メモリまたは媒体）内のプロセッサ実行可能な命令として実装される論理を指す。
【００７９】
「定量的シソーラス行列(quantitative  thesaurus  matrix)」は、この文脈において、クエリ単語−トランスクリプト単語ペアのインデックスを有する類似性スコアの行列を指す。
【００８０】
「演算ツリー(tree  of  operations)」は、この文脈において、リテラル上の演算子の演算の順序およびリテラルとのマッチを示す構造を指す。
【００８１】
「トランスクリプト単語埋め込み行列(transcript  word  embedding  matrix)」は、この文脈において、各単語をＮ次元表現（単語埋め込み）に変換させたトランスクリプト行列を指す。Ｎ＝３００、および、「やあ、私の名前はアルです(Hi  my  name  is  Al」というトランスクリプトについて、トランスクリプト単語埋め込み行列は、５×３００行列である。
【００８２】
「クエリ単語埋め込み行列(query  word  embedding  matrix)」は、この文脈において、各単語をＮ次元表現（単語埋め込み）に変換させたクエリ行列を指す。Ｎ＝３００、および、「今日は美しい。」というクエリについて、クエリ単語埋め込み行列は、３×３００行列である。
【００８３】
「クエリ(query)」は、この文脈において、少なくとも１つのリテラルを含み、複数のリテラルおよび演算子を含むことがある、一連の記号(シンボル)を指す。例えば、「紛失(lost)」、次に(then)、「カード(card)」は、紛失およびカードという２つのリテラル、ならびに、次にという演算子を含む。
【００８４】
「リテラル(literal)」は、この文脈において、単語または語句を指す。例えば、「カード」。
【００８５】
「クエリ単語−トランスクリプト単語ペア(query  word-transcript  word  pair)」は、この文脈において、クエリ行列からの単語とトランスクリプト行列からの単語とを組み合わせて決定される単語のペアを指す。例えば、「紛失」というクエリおよび「私は私のカードを置き間違えた」というトランスクリプトについて、［紛失、私］、［紛失、置き間違い］、［紛失、私］、および［紛失、カード］という４つのペアがある。
【００８６】
「単語埋め込み(word  embedding)」は、この文脈において、同じ意味を持つ単語がコンパクトなベクトル空間内で類似の表現を有するテキストについての学習された表現を指す。高密度表現の利点は、一般化力(generalization  power)である。すなわち、単語が文脈でどのように使われるかの特定の特徴が、それらの類似の意味に対する手がかりを提供するならば、単語埋め込み表現は、これらの類似性を反映することがある。単語埋め込みは、個々の単語が予め定義されたベクトル空間内で実数値ベクトルとして表現される技術の等級である。各単語は、１つのベクトルにマッピングされ、ベクトル値は、例えば、ニューラルネットワークを使用して、学習されることができる。各単語は、しばしば数十または数百の次元の実数値ベクトルで表現される。これは、ワンホットエンコーディング(one-hot  encoding)のような疎な単語表現(sparse  word  representations)に必要とされる数千または数百万の次元と対照的である。語彙中の各単語は、単語の異なる側面を符号化する特徴ベクトルによって表現される。よって、各単語は、ベクトル空間内の点(ポイント)と関連付けられる。特徴の数（故に、ベクトルの次元）は、語彙のサイズよりもはるかに小さい。分散ベクトル表現は、単語の使用法に基づいて学習される。これは、類似の方法で使用される単語が、類似のベクトル表現を有することをもたらして、自然にそれらの意味を取り込むことを可能にする。これは、明示的に管理されていない限り、異なる単語が、それらがどのように使用されるかに拘わらず、異なる表現を有する、単語のバッグモデル(bag  of  words  model)における、鮮明ではあるが脆弱な表現と対照的であり得る。言語理論の根底にあるのは、類似の文脈を持つ単語が類似の意味を持つということである。「ある単語の意味は文脈中の他の単語によって理解されるべきである(You  should  know  a  word  by  the  company  it  keeps)」。
【００８７】
「柔らかさ(softness)」は、この文脈において、単語間の関連性の程度を指す。例えば、２の柔らかさは同義語に対応することがある。
【００８８】
「クエリ行列(query  matrix)」は、この文脈において、リテラル内の単語の数に対応し且つそのリテラルを含む長さを有する、ベクトルを指す。「カード(card)」というクエリについてのクエリ行列は、［カード］の１×１行列でありる。「今日は美しいです(today  is  beautiful)」というクエリについてのクエリ行列は、３×１行列、すなわち、［今日、です、美しい］である。
【００８９】
「クエリフラグ(query  flag)」は、この文脈において、特定の非言語情報がクエリ内の単語に利用されるべきであるインジケータを指す。例えば、「１」は利用を示すことがあり「０」は非利用を示すことがある。
【００９０】
「マッチ(matches)」は、この文脈において、柔らかさマップを超える相互相関を指す。
【００９１】
「柔らかさマップ(softness  map)」は、この文脈において、所与の柔らかさに対応する閾値を指す。例えば、柔らかさ１は、０．９５の柔らかさマップに対応することがある。
【００９２】
「非言語情報(non-speech  information)」は、この文脈において、単語自体でない、感情、話し手などのような、単語の意味に関する情報を指す。
【００９３】
「相互相関(cross-correlation)」は、この文脈において、他方に対する一方の変位の関数としての２つの系列の類似性の尺度を指す。
【００９４】
「トランスクリプト行列(transcript  matrix)」は、この文脈において、トランスクリプト中の単語数に対応し且つそのトランスクリプトのそれらの単語を含む長さを有する、ベクトルを指す。「やあ、私の名前はＡｌです(Hi,  my  name  is  Al)」のトランスクリプト行列は、［やあ、私、名前、アル］の５×１行列である。
【００９５】
「演算子(operator)」は、この文脈において、１つまたは２つのリテラルに対して実行されるべき演算の記号的表現を指す。例えば、および(and)、次に(then)、または(or)などである。
【００９６】
「類似性スコア(similarity  score)」は、この文脈において、柔らかさ値についての２つの単語間の類似性の尺度を指す。２つの単語についての類似性スコアは、２つの単語のＮ次元単語ベクトルの相互相関によって決定されてよい。
【００９７】
本明細書において、「１つの実施形態」または「（ある）実施形態」への言及は、同じ実施形態に言及していることがあるが、同じ実施形態を必ずしも言及しているわけではない。文脈が他のことを明確に要求しない限り、明細書および特許請求の範囲を通じて、「含む(comprise)」という単語、「含む(comprising)」という単語、および同等表現は、排他的または網羅的な意味においてではなく、包括的な意味において、すなわち、「含むが、〜に限定されない」という意味で解釈されるべきである。単数または複数を使用する語は、単数のものまたは複数のものに明示的に限定されない限り、複数または単数をそれぞれ含む。加えて、この明細書において使用されるとき、「本明細書において」、「上記」、「下記」および類似の意味を有する単語は、この出願全体を指し、この出願の如何なる特定の部分も指さない。請求項が２つ以上の項目のリストを参照して「または」という単語を使用するとき、その単語は、明示的に一方に限定されない限り、単語の以下の解釈、すなわち、そのリスト中の項目のいずれか、そのリスト中の項目の全ておよびそのリスト中の項目の任意の組み合わせの全てを包含する。本明細書中で明示的に定義されていないあらゆる用語は、関連技術の当業者によって一般的に理解されるような、それらの慣用的な意味を有する。
【００９８】
本明細書に記載する様々な論理関数演算は、前記演算または関数を反映する名詞または名詞句を使用して言及される論理において実装されてよい。例えば、関連演算(association  operation)は、「関連器(associator)」または「相関器」(correlator)によって実行されてもよく、同様に、切換え(switching)は、「スイッチ(switch)」によって実行されてよく、選択(selection)は、「選択器(セレクタ)(selector)」によって選択されてよいなどである。
【図１】
2021534528.tif 000005
【図２】
2021534528.tif 000006
【図３】
2021534528.tif 000007
【図４】
2021534528.tif 000008
【図５】
2021534528.tif 000009
【図６】
2021534528.tif 000010
【図７】
2021534528.tif 000011
【図８】
2021534528.tif 000012
【図９】
2021534528.tif 000013
【図１０】
2021534528.tif 000014
【図１１】
2021534528.tif 000015
【図１２】
2021534528.tif 000016
【図１３】
2021534528.tif 000017
【図１４】
2021534528.tif 000018
【国際調査報告】
2021534528.tif 000019