IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特表-クエリ生成パターンのチューニング 図1
  • 特表-クエリ生成パターンのチューニング 図2
  • 特表-クエリ生成パターンのチューニング 図3
  • 特表-クエリ生成パターンのチューニング 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-12
(54)【発明の名称】クエリ生成パターンのチューニング
(51)【国際特許分類】
   G06F 16/33 20190101AFI20240104BHJP
【FI】
G06F16/33
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023536950
(86)(22)【出願日】2021-10-25
(85)【翻訳文提出日】2023-06-16
(86)【国際出願番号】 CN2021125994
(87)【国際公開番号】W WO2022134824
(87)【国際公開日】2022-06-30
(31)【優先権主張番号】17/131,978
(32)【優先日】2020-12-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ボクスウェル、ステファン アーサー
(72)【発明者】
【氏名】ブレイク、カイル マシュー
(72)【発明者】
【氏名】フロスト、キース グレゴリー
(72)【発明者】
【氏名】バーニア、スタンレー ジョン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175GC03
5B175HA01
(57)【要約】
検索クエリ結果を最適化するためのコンピュータ実施方法が開示される。コンピュータ実施方法は、第1の自然言語クエリを受信することと、第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、各検索クエリ・パターンに割り当てられた重みと、第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、第1の自然言語クエリに対する、1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、検索クエリ・パターンに割り当てられた重みを、第1の自然言語クエリに対する検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することとを含む。
【特許請求の範囲】
【請求項1】
検索クエリ結果を最適化するためのコンピュータ実施方法であって、
第1の自然言語クエリを受信することと、
前記第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、
前記複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、
各検索クエリ・パターンに割り当てられた前記重みと、前記第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、
前記第1の自然言語クエリに対する、前記1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、
前記複数の検索クエリ・パターン内の検索クエリ・パターンに割り当てられた前記重みを、前記第1の自然言語クエリに対する前記検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することと
を含む、コンピュータ実施方法。
【請求項2】
第2の自然言語クエリを受信することと、
前記第2の自然言語クエリを、前に提出された自然言語クエリと比較することと、
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致することを決定することと
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致すると決定したことに応答して、
最適重み付き検索クエリ・パターンが、前記前に提出された一致する自然言語クエリに関連付けられることを決定することと、
前記前に提出された一致する自然言語クエリに関連付けられた前記最適重み付き検索クエリ・パターンと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する1つまたは複数の最適重み付きキーワード・クエリを生成することと、
前記第2の自然言語クエリに対する、前記1つまたは複数の最適重み付きキーワード・クエリからの1つまたは複数の検索結果を返すことと
をさらに含む、請求項2に記載のコンピュータ実施方法。
【請求項4】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致しないと決定したことに応答して、
デフォルト検索クエリ・パターンに割り当てられたデフォルト重みと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する、1つまたは複数のデフォルト重み付きキーワード・クエリを生成すること
をさらに含む、請求項2に記載のコンピュータ実施方法。
【請求項5】
前記第2の自然言語クエリと、前記前に提出された自然言語クエリとの間の前記一致は、(i)共有された意味構造、(ii)共有された構文構造、(iii)共有された文の構造、および(iv)共有された文脈のうちの1つまたは複数に基づく、請求項2に記載のコンピュータ実施方法。
【請求項6】
最適重み付き検索クエリ・パターンは、特定の自然言語検索クエリに対して、最も多数の関連性のある検索結果を取り出すように決定された、重み付き検索クエリ・パターンである、請求項3に記載のコンピュータ実施方法。
【請求項7】
最適重み付き検索クエリ・パターンは、特定の自然言語クエリに対して、最も正確に解答するように決定された、重み付き検索クエリ・パターンである、請求項3に記載のコンピュータ実施方法。
【請求項8】
検索クエリ結果を最適化するためのコンピュータ・プログラム製品であって、1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令とを備え、前記プログラム命令は、
第1の自然言語クエリを受信することと、
前記第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、
前記複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、
各検索クエリ・パターンに割り当てられた前記重みと、前記第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、
前記第1の自然言語クエリに対する、前記1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、
前記複数の検索クエリ・パターン内の検索クエリ・パターンに割り当てられた前記重みを、前記第1の自然言語クエリに対する前記検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することと
を行うための命令を含む、コンピュータ・プログラム製品。
【請求項9】
第2の自然言語クエリを受信することと、
前記第2の自然言語クエリを、前に提出された自然言語クエリと比較することと、
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致することを決定することと
を行うための命令をさらに備える、請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致すると決定したことに応答して、
最適重み付き検索クエリ・パターンが、前記前に提出された一致する自然言語クエリに関連付けられることを決定することと、
前記前に提出された一致する自然言語クエリに関連付けられた前記最適重み付き検索クエリ・パターンと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する1つまたは複数の最適重み付きキーワード・クエリを生成することと、
前記第2の自然言語クエリに対する、前記1つまたは複数の最適重み付きキーワード・クエリからの1つまたは複数の検索結果を返すことと
を行うための命令をさらに備える、請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致しないと決定したことに応答して、
デフォルト検索クエリ・パターンに割り当てられたデフォルト重みと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する、1つまたは複数のデフォルト重み付きキーワード・クエリを生成すること
を行うための命令をさらに備える、請求項9に記載のコンピュータ・プログラム製品。
【請求項12】
前記第2の自然言語クエリと、前記前に提出された自然言語クエリとの間の前記一致は、(i)共有された意味構造、(ii)共有された構文構造、(iii)共有された文の構造、および(iv)共有された文脈のうちの1つまたは複数に基づく、請求項9に記載のコンピュータ・プログラム製品。
【請求項13】
最適重み付き検索クエリ・パターンは、特定の自然言語検索クエリに対して、最も多数の関連性のある検索結果を取り出すように決定された、重み付き検索クエリ・パターンである、請求項10に記載のコンピュータ・プログラム製品。
【請求項14】
最適重み付き検索クエリ・パターンは、特定の自然言語クエリに対して、最も正確に解答するように決定された、重み付き検索クエリ・パターンである、請求項10に記載のコンピュータ・プログラム製品。
【請求項15】
検索クエリ結果を最適化するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
コンピュータ・プログラム命令とを備え、
前記コンピュータ・プログラム命令は、前記1つまたは複数のコンピュータ・プロセッサによる実行のために、前記1つまたは複数のコンピュータ可読記憶媒体に記憶され、
前記コンピュータ・プログラム命令は、
第1の自然言語クエリを受信することと、
前記第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、
前記複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、
各検索クエリ・パターンに割り当てられた前記重みと、前記第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、
前記第1の自然言語クエリに対する、前記1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、
前記複数の検索クエリ・パターン内の検索クエリ・パターンに割り当てられた前記重みを、前記第1の自然言語クエリに対する前記検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することと
を行うための命令を含む、コンピュータ・システム。
【請求項16】
第2の自然言語クエリを受信することと、
前記第2の自然言語クエリを、前に提出された自然言語クエリと比較することと、
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致することを決定することと
を行うための命令をさらに備える、請求項15に記載のコンピュータ・システム。
【請求項17】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致すると決定したことに応答して、
最適重み付き検索クエリ・パターンが、前記前に提出された一致する自然言語クエリに関連付けられることを決定することと、
前記前に提出された一致する自然言語クエリに関連付けられた前記最適重み付き検索クエリ・パターンと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する1つまたは複数の最適重み付きキーワード・クエリを生成することと、
前記第2の自然言語クエリに対する、前記1つまたは複数の最適重み付きキーワード・クエリからの1つまたは複数の検索結果を返すことと
を行うための命令をさらに備える、請求項16に記載のコンピュータ・システム。
【請求項18】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致しないと決定したことに応答して、
デフォルト検索クエリ・パターンに割り当てられたデフォルト重みと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する、1つまたは複数のデフォルト重み付きキーワード・クエリを生成すること
を行うための命令をさらに備える、請求項16に記載のコンピュータ・システム。
【請求項19】
前記第2の自然言語クエリと、前記前に提出された自然言語クエリとの間の一致は、(i)共有された意味構造、(ii)共有された構文構造、(iii)共有された文の構造、および(iv)共有された文脈のうちの1つまたは複数に基づく、請求項16に記載のコンピュータ・システム。
【請求項20】
最適重み付き検索クエリ・パターンは、(i)特定の自然言語検索クエリに対して、最も多数の関連性のある検索結果を取り出すこと、または(ii)特定の自然言語クエリに対して、最も正確に解答することのうちの少なくとも1つによって決定された、重み付き検索クエリ・パターンである、請求項17に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に検索クエリの分野に関し、より詳細には、検索クエリ結果を最適化するために検索クエリ・パターンをチューニングすることに関する。
【背景技術】
【0002】
検索クエリまたはウェブ検索クエリは、情報の必要性を満たすために用いられる特定の検索語または用語に基づくクエリである。検索クエリは通常、特定の節、ドキュメント、またはウェブページなど、検索クエリに関係する情報を取り出すために、ユーザが検索エンジンに入力する実際の語、または一連の語である。通常、検索クエリはウェブ・ベースであり、ユーザは、コンピュータ、ハンドヘルド・モバイル・デバイス、またはスマート・デバイスなど、電子デバイスのユーザ・インターフェースの使用を通して、検索クエリをウェブ検索エンジンに入力する。
【0003】
検索クエリ・パターン(すなわち、「検索パターン」、「クエリ・パターン」、「文字列検索アルゴリズム」、または「文字列一致アルゴリズム」)は、所与の検索クエリに基づいて、1つまたは複数のキーワード・クエリを生成するための、1つまたは複数の予め規定された規則を含む。例えば、クエリ・パターン[weather in X]は、用語「weather」と、[weather in Paris]、[weather in France]、および[weather near me]など、地理的位置を識別する用語[X]とを含むすべてのクエリを表し得る。
【0004】
キーワード・クエリは、検索クエリ・パターンと、ユーザの検索クエリから引き出された1つまたは複数の部分文字列とから形成された、特定のクエリである。例えば、検索クエリ「What is the Capital of France?」と、検索クエリ・パターン[X of Y]とを所与として、キーワード・クエリ[Capital of France]が形成され得る。
【発明の概要】
【0005】
本発明の一実施形態による、検索クエリ結果を最適化するためのコンピュータ実施方法が開示される。コンピュータ実施方法は、第1の自然言語クエリを受信することを含む。コンピュータ実施方法は、第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することをさらに含む。コンピュータ実施方法は、複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることをさらに含む。コンピュータ実施方法は、各検索クエリ・パターンに割り当てられた重みと、第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することをさらに含む。コンピュータ実施方法は、第1の自然言語クエリに対する、1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することをさらに含む。コンピュータ実施方法は、検索クエリ・パターンに割り当てられた重みを、第1の自然言語クエリに対する検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することをさらに含む。
【0006】
本発明の他の実施形態による、検索クエリ結果を最適化するためのコンピュータ・プログラム製品が開示される。コンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令とを含む。プログラム命令は、第1の自然言語クエリを受信するための命令を含む。プログラム命令は、第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択するための命令をさらに含む。プログラム命令は、複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てるための命令をさらに含む。プログラム命令は、各検索クエリ・パターンに割り当てられた重みと、第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成するための命令をさらに含む。プログラム命令は、第1の自然言語クエリに対する、1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価するための命令をさらに含む。プログラム命令は、検索クエリ・パターンに割り当てられた重みを、第1の自然言語クエリに対する検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更するための命令をさらに含む。
【0007】
本発明の他の実施形態による、検索クエリ結果を最適化するためのコンピュータ・システムが開示される。コンピュータ・システムは、1つまたは複数のコンピュータ・プロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、コンピュータ・プログラム命令とを備え、コンピュータ・プログラム命令は、1つまたは複数のコンピュータ・プロセッサによる実行のために、1つまたは複数のコンピュータ可読記憶媒体に記憶される。プログラム命令は、第1の自然言語クエリを受信するための命令を含む。プログラム命令は、第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択するための命令をさらに含む。プログラム命令は、複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てるための命令をさらに含む。プログラム命令は、各検索クエリ・パターンに割り当てられた重みと、第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成するための命令をさらに含む。プログラム命令は、第1の自然言語クエリに対する、1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価するための命令をさらに含む。プログラム命令は、検索クエリ・パターンに割り当てられた重みを、第1の自然言語クエリに対する検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更するための命令をさらに含む。
【0008】
本開示に含まれる図面は、本明細書に組み込まれ、その一部となる。それらは、本開示の実施形態を例示し、説明と共に、本開示の原理を説明するために役立つ。図面は、単にいくつかの実施形態の例示であり、本開示を限定しない。
【図面の簡単な説明】
【0009】
図1】本発明の少なくとも1つの実施形態による、情報検索のための、全体的に100として示される、コンピューティング・システムの機能ブロック図である。
図2】本発明の少なくとも1つの実施形態による、検索クエリ生成パターンをチューニングするための動作ステップを示すフロー・チャート図である。
図3】本発明の少なくとも1つの実施形態による、特定の検索クエリに対して、所定の検索クエリ・パターンおよび重みを生成し、割り当てるための動作ステップを示すフロー・チャート図である。
図4】本発明の少なくとも1つの実施形態による、検索クエリ・プログラム101を実行するために適した、全体的に400として示される、コンピュータの構成要素を示すブロック図である。
【発明を実施するための形態】
【0010】
本明細書で述べられる実施形態は、様々な修正形態および代替の形を受けることが可能であり、その詳細は、例として図面に示されており、詳しく述べられる。しかし、述べられる特定の実施形態は、限定的な意味で解釈されるものではないことを理解するべきである。むしろ、本開示の範囲に含まれるすべての修正形態、等価形態、および代替形態を包含することが意図される。
【0011】
本発明は、一般に検索クエリの分野に関し、より詳細には検索クエリ結果を最適化するように、検索クエリ・パターンをチューニングすることに関する。
【0012】
ウェブ検索エンジンなど、情報検索システムを用いるとき、個人によって、彼等がどのようにクエリを構築するか、および特定の検索クエリに基づいて取り出すことを個人が期待する情報は、大きく変わり得る。しばしば、同様な情報を求めるユーザは、異なる検索クエリを入力する。一部のユーザは短い質問を好む場合があり、他の人はより冗長なものを好み得る。同様に一部のユーザは、情報検索システムがすべてのケースでの語(例えば、find、finds、finding)を考慮することを期待して特定の語(例えば、find)を含め得るのに対して、他の人は物事をより柔軟に言葉で表現する(例えば、find[])。しかし、検索クエリにおける、異なる語、順序、および語の組合せの使用は、異なる結果を生じ得る。しばしばユーザは、彼等が探し求めている正しい結果を受け取るために、彼等の検索クエリを複数回変更する必要がある。しかし、本発明の実施形態は、個人は、彼等が彼等自身で彼等の検索クエリを複数回変更した後でも、依然として、彼等の所望の検索結果を見出すことができない場合があることを認識する。さらに、本発明の実施形態は、個人に、彼等の所望の結果を見出すために、連続して検索クエリを変更および改良するように時間をかけることを要求することは、面倒で、時間がかかり得ることを認識する。
【0013】
本発明の実施形態は、特定のユーザに対して検索クエリ・パターンを、その期待される結果を最適化するように、自動的にチューニングすることによって、上記の欠陥を改善する。本発明の実施形態によれば、所与の検索クエリに対して、2つ以上の検索クエリ・パターンから複数のキーワード・クエリが生成される。一実施形態では、2つ以上の検索クエリ・パターンのそれぞれに、初期重みが与えられ、それぞれの検索クエリ・パターンから生成されたそれぞれのその後のキーワード・クエリには、検索クエリ・パターンに与えられた重みに対応する重みが、割り当てられる。各キーワード・クエリによって返された結果の関連性が分析される。それぞれのキーワード・クエリを通じて返された、各結果の精度または関連性が、次いで評価される。一実施形態では、隣接する状態を任意に選ぶために、反復的山登りアルゴリズムが用いられる(例えば、1つずつ、選択された検索クエリ・パターンの1つの重みをインクリメントすることにより)。新たな状態は、所与の検索クエリに対して、それぞれの検索クエリからキーワード・クエリを構築し、ドキュメントのコーパスを検索し、所与の検索クエリに対するスコアを評価することによって、評価される。一実施形態では、重みは、所与の検索クエリに対して、最適な数の検索結果が達成されるまで、山登りアルゴリズムによって節が評価されるのに従って、リアルタイムで調整される。最適な数の検索結果を達成した、それぞれのキーワード・クエリに割り当てられた重み付けされた値は、後の同様なキーワード・クエリでの使用のために保存される。そうすることで、本発明のシステムは、所定の重みを、同様な将来生成されるキーワード・クエリに自動的に割り当てることができ、それによって特定の個人のために返される結果を最適化する。
【0014】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含み得る。
【0015】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、およびこれらの任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または線材を通して伝送される電気信号など、それ自体が一時的信号であるものと解釈されるものではない。
【0016】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワークまたはその組合せを通じて外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0017】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++(R)などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む、電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0018】
本明細書において本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0019】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を通じて実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用を実施するための手段を作成するように、マシンを生じるべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに供給され得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用の態様を実施する命令を含んだ製品を備えるように、特定のやり方で機能するようにコンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはその組合せに指示することができる、コンピュータ可読記憶媒体に記憶され得る。
【0020】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、コンピュータ実施プロセスを生じるべく、一連の動作ステップがコンピュータ、他のプログラム可能な装置、または他のデバイス上で行われるようにさせることができる。
【0021】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表し得る。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際は、実質的に同時に実行されることができ、またはブロックは関わる機能性に応じて、時には逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは作用を行う、または専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0022】
本発明の様々な実施形態の説明は、例示のために提示されたが、網羅的であること、または開示される実施形態に限定されることを意図されていない。当業者には、述べられる実施形態の範囲から逸脱せずに、多くの変更形態および変形形態が明らかになるであろう。本明細書で用いられる専門用語は、実施形態の原理、実用的な応用例、もしくは市場で見出される技術に対する技術的改良を最もよく説明するように、または当業者が本明細書で開示される実施形態を理解することを可能にするように選ばれている。
【0023】
次に図を参照して、本発明が詳しく述べられる。図1は、本発明の少なくとも1つの実施形態による、全体的に100として示される、情報検索のためのコンピューティング・システムの機能ブロック図である。図1は、単に一実装形態の例示を示すのみであり、異なる実施形態が実施され得る環境に関して何らかの限定を暗に示すものではない。示される環境に対して、当業者により多くの変更形態が、「特許請求の範囲」によって記載される本発明の範囲から逸脱せずになされ得る。
【0024】
コンピューティング・システム100は、ネットワーク140を通して相互接続された、ユーザ・デバイス110と、サーバ120と、記憶デバイス130とを含む。ユーザ・デバイス120は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマート・フォン、ウェアラブルデバイス(例えば、スマート・グラス、スマート・ウォッチ、e-テキスタイル、ARヘッドセットなど)、または当技術分野で知られている任意のプログラム可能なコンピュータ・システムなどの、ユーザのコンピューティング・デバイスを表し得る。一般に、ユーザ・デバイス110は、機械可読プログラム命令を実行し、ネットワーク140などのネットワークを通じて、サーバ120、記憶デバイス130、および他のデバイス(図示せず)と通信する能力を有する、任意のプログラム可能な電子デバイスまたはプログラム可能な電子デバイスの組合せを表すことができる。ユーザ・デバイス120は、本発明の実施形態による、図3に関してさらに詳しく示され述べられるような構成要素を含み得る。
【0025】
ユーザ・デバイス110は、ユーザ・インターフェース112と、アプリケーション114とをさらに含む。ユーザ・インターフェース112は、ユーザ・デバイス110などのエンド・ユーザ・デバイスのユーザと、デバイス上に常駐する複数のアプリケーション(例えば、アプリケーション114)との間のインターフェースをもたらすプログラムである。ユーザ・インターフェース112などの、ユーザ・インターフェースは、プログラムがユーザに提示する情報(グラフィック、テキスト、および音など)と、ユーザがプログラムを制御するために使用する制御シーケンスとを参照する。多様なタイプのユーザ・インターフェースが存在する。一実施形態では、ユーザ・インターフェース112は、グラフィカル・ユーザ・インターフェースである。グラフィカル・ユーザ・インターフェース(GUI)は、グラフィック・アイコン、およびテキストベースのインターフェース、タイプされたコマンド・ラベル、またはテキスト・ナビゲーションと対比した、二次的表示などの、視覚的インジケータを通して、コンピュータ・キーボードおよびマウスなどの、電子デバイスとユーザが対話することを可能にするタイプのユーザ・インターフェースである。コンピューティングにおいて、GUIは、キーボードにコマンドがタイプされる必要がある、コマンドライン・インターフェースの認識された急峻な学習曲線に対応して導入された。GUIでの動作は、しばしばグラフィック要素の直接の操作を通して行われる。別の実施形態では、ユーザ・インターフェース112は、スクリプトまたはアプリケーション・プログラミング・インターフェース(API)である。
【0026】
アプリケーション114は、ユーザ・デバイス110上で動作する、1つまたは複数のアプリケーション(例えば、アプリケーション・スイート)を表すものとすることができる。様々な例示の実施形態では、アプリケーション114は、ユーザ・インターフェース112を通じて、ユーザ・デバイス110のユーザが、検索クエリを入力し、検索結果を見るために利用するアプリケーションとすることができる。他の実施形態では、アプリケーション114は、他のモバイル・デバイス・アプリケーションとすることができる(例えば、ウェブ・ブラウザ、企業固有メッセージング・アプリケーション、ソーシャル・メディア・アプリケーションなど)。例えば、アプリケーション114は、サーバ120に関連付けられたクライアント側アプリケーションである(例えば、検索クエリ・プログラム101に関連付けられたクライアント側アプリケーション)。
【0027】
さらなる実施形態では、アプリケーション114は、本発明の様々な実施形態による、検索クエリ・プログラム101の処理ステップを行うように動作することができる(すなわち、アプリケーション114は、ユーザ・デバイス110上で動作する、検索クエリ・プログラム101を表すものとすることができる)。例えば、ユーザ・デバイス110のユーザは、アプリケーション114を利用して自然言語クエリを入力し、ユーザ・デバイス110上で(例えば、ユーザ・インターフェース112を通じて)、結果を見ることができる。いくつかの実施形態では、表示された検索結果が関連性のあるものかどうかを示すようにユーザに要求する、ポップアップ・ウィンドウが、ユーザ・インターフェース112を通じて、アプリケーション114上に現れる。一実施形態では、ユーザから収集されたフィードバック・データは、将来のクエリのためのキーワード・クエリを構築するために用いられる検索クエリ・パターンを、改善するまたは「微調整」するために用いられる。一実施形態では、収集されたフィードバック・データは、特定の検索クエリ・パターンに割り当てられた重みが、増加されるべきか、減少されるべきかどうかについて、例えば、機械学習を通じた、訓練としてさらに用いられ得る。同様にフィードバック・データは、特定の検索クエリ・パターンと、それに割り当てられた重みとが、同様な将来のクエリでの使用のために、自動的に選択されるべきかどうかを学習するために用いられ得る。
【0028】
例示の実施形態において、サーバ120は、デスクトップ・コンピュータ、コンピュータ・サーバ、または当技術分野で知られている任意の他のコンピュータ・システムとすることができる。いくつかの実施形態において、サーバ120は、コンピューティング環境100の構成要素(例えば、ユーザ・デバイス110、記憶システム130、および図に示されない他のデバイス)によってアクセスされたとき、単一のシームレスなリソースのプールとして動作する、クラスタ化されたコンピュータおよび構成要素(例えば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど)を利用するコンピュータ・システムを表す。一般に、サーバ120は、コンピュータ可読プログラム命令を実行する能力を有する、任意の電子デバイスまたは電子デバイスの組合せを表すものである。サーバ120は、本発明の実施形態による、図3に関してさらに詳しく示され述べられるような構成要素を含み得る。
【0029】
サーバ120は、検索クエリ・プログラム101を含み、これは自然言語処理モジュール122と、構文パーサ・モジュール124とをさらに含む。一実施形態では、自然言語処理(NPL)モジュール122は、入力検索クエリを分析するために用いられる検索クエリ・プログラム101の構成要素またはサブプログラムである。自然言語処理は、自然言語データを処理するための、言語学、コンピュータ・サイエンス、および人工知能のサブフィールドである。様々な実施形態において、自然言語処理モジュール122は、例えば、語の区分化またはトークン化の使用を通して、入力検索クエリを語に分離する。語の区分化は、連続したテキストの語への分離である。例えば、ユーザから受信された入力検索クエリは、複数の語を含み、個々の語に分離される。トークン化は、一連の入力文字のセクションを分解し、分類するプロセスである。例えば、個々の語は、キーワード、語句、トークン、または部分文字列に分解される。例えば、クエリ「what is the capital city of Spain?」は、次の部分文字列またはトークンに分解され得る:[what]、[is]、[the]、[capital]、[city]、[of]、および[Spain]。一実施形態では、検索クエリ・パターンに従って、ストップ・ワードが除去される。ストップ・ワード(例えば、a、an、theなど)は、検索結果の識別において助けとなる追加の情報をもたらさない、言語において用いられる普通の語である(すなわち、結果に影響を及ぼさない語)。例えば、検索クエリ「what is the capital city of Spain?」は、ストップ・ワード[「is」]、[「the」]、および[「of」]を含む。ストップ・ワードが除去された後、クエリをクエリ・パターンに突き合わせるときに、次の部分文字列またはトークンのみが用いられ得る:[「capital」]、[「city」]、および[「Spain」]。
【0030】
一実施形態では、自然言語処理モジュール122は、トークンまたは部分文字列に対して、品詞タグ付けを行う。品詞タグ付け(すなわち、文法的タグ付け)は、テキスト内の語を、それの定義と、それの文脈との両方に基づいて、特定の品詞に対応するものとしてマークアップするプロセスである。例えば、自然言語処理モジュール122は、語の定義、および入力検索クエリ内で語が用いられる文脈に基づいて、名詞、動詞、形容詞などとして、個々の語にタグ付けすることができる。一実施形態では、検索クエリ・パターンから構築されるキーワード・クエリを生成するとき、所定の品詞を有する語のみが用いられる。一例として、パターン[動詞]+[形容詞]+[名詞]を有する正規表現を所与として、クエリ「who ran the fastest at the Olympics?」は、次のキーワード・クエリを生じ得る:[「ran」](動詞)[「fastest」](形容詞)、および「[Olympics]」(名詞)。
【0031】
一実施形態では、構文パーサ・モジュール124は、入力検索クエリを分析するために用いられる検索クエリ・プログラム101の構成要素またはサブプログラムである。構文パーシング(すなわち、構文解析またはパーシング)は、形式文法の規則を用いて自然言語を分析するプロセスである。ここで文法規則は、個々の語ではなく、語のカテゴリおよびグループに適用される。例えば、クエリ「Why did the chicken cross the road?」は、主語と述語とを含み、主語(the chicken)は名詞句であり、述語(cross the road)は動詞句である。
【0032】
サーバ120は、記憶デバイス130を利用して、コーパス132および節134など、様々な情報を記憶し、取り出す。記憶デバイス130は、データベース・サーバ、ハード・ディスク・ドライブ、またはフラッシュ・メモリなど、サーバ120およびユーザ・デバイス110によってアクセスされ、利用され得るデータを、記憶する能力を有する任意のタイプの記憶デバイスによって実施され得る。一実施形態では、記憶デバイス130は、複数の記憶デバイスと、サーバ120内のデータの集合とを表すことができる。
【0033】
コーパス132は、ドキュメントまたは構造化された情報のセットである。本明細書で用いられるコーパスとは、いくつかの電子的節で、各節は一意に識別可能であるものとして一般に理解され得る。例えば、コーパス132は、ファイルもしくはファイルのセット、ウェブページもしくはウェブページのセット、データベース、または記憶デバイス130に記憶された任意のタイプの構造化されたデータとすることができる。いくつかの実施形態では、検索クエリ・プログラム101は、キーワード・クエリを、コーパス132と突き合わせて、コーパス132からの1つまたは複数の検索結果を返す。他の実施形態では、検索クエリ・プログラム101は、キーワード・クエリを、ウェブベースのデータと突き合わせて、ウェブ検索エンジンなど、インターネット接続可能のプラットフォームを通じて、1つまたは複数の検索結果(例えば、統一資源位置指定子(URL)またはウェブページに含まれる情報)を返す。
【0034】
節134は、書かれた作品、またはデータの断片の、一部分またはセクションである。いくつかの実施形態では、検索クエリ・プログラム101は、ページネーションのプロセスによって、ドキュメントを分解する(すなわち、電子的ページネーションまたは「電子ページング」)。ページネーションは、ワード・ドキュメントまたはウェブサイトなど、電子データセットのコンテンツを、個別の電子ページに分割または分離するプロセスである。ページネーションはしばしば、いくつかの異なるページにわたる分割されたコンテンツへの直接のアクセスを可能にするために、データベースおよびウェブ・アプリケーションで用いられる。例えば、ページネーションは、検索エンジン結果ページ上に限られた数の結果を表示するため、またはフォーラム・スレッドを見るときに、限られた数の投稿(post)を示すために用いられ得る。分割されたコンテンツへのアクセスは、ユーザ・インターフェース・パターン(すなわち、「ページネーション・パターン」、または「ページネーション・デザイン・パターン」)、すなわち、コンテンツがどのように分割されるかを指定する機械論理規則のセットの形でもたらされる(例えば、第1のページに第1の5,000語、第2のページに第2の5,000語、・・・、最後のページに残りの、余りの語、またはドキュメントは、10ページごとに分解され、これは24ページのドキュメントは、2つの10ページ・セクションと、1つの4ページ・セクションとに分解されることを意味する)。これらの機械論理規則は、コンテンツがどのように別々のページに分割されるかを定める。
【0035】
本発明の様々な実施形態による、検索クエリ・プログラム101は、検索クエリ・パターンを選択および加工し、それによって、クエリ自体の文脈または構文/意味構造あるいはその両方に基づいて、検索クエリからキーワード・クエリが構築される。一実施形態では、新たなクエリの文脈または構文/意味構造あるいはその両方のうちの少なくとも1つを、前のクエリのそれと比較することに基づいて、新たなクエリに対するキーワード・クエリを構築するために、特定の検索クエリ・パターンが選択され、それらに重みが割り当てられる。訓練フェーズの間に過去の同様なクエリに対して、最適な数の検索結果(クエリに正しく答える最も多数の結果)を達成した、特定の検索クエリ・パターンに割り当てられた重み付けされた値が、同様な将来の生成されるクエリに対する結果を取り出すために、自動的に選択される。そうすることで、クエリに対して返される最上位にリストされた検索結果は、ユーザが探している最も可能性が高い情報を得るように、ユーザがそれらの検索クエリ自体を変更する必要なしに、最初にクエリを答えるように最も関連性がある可能性が高くなる。
【0036】
初期の訓練フェーズでは、クエリが受信され、所定の数の検索クエリ・パターンが選択される。一実施形態では、検索クエリ・パターンは、正規表現の形をとり得る。正規表現(すなわち、「regex」または「regexp」)は、検索パターンを定義する一連の文字である。一実施形態では、検索クエリ・パターンは、構文グラフ・マッチング構成要素の形をとり得る。意味的グラフ・マッチングは、クエリの連想的および文脈的性質の分析を可能にする。意味的マッチングは、クエリ内の構文、意味、および構造情報に基づいて、明示的および暗黙的の両方で導き出される情報の取り出しを含む。しかし、検索クエリ・パターンを訓練する、または他の形で微調整するために用いられる検索クエリ・パターンは、検索クエリ・パターンの、任意の知られているタイプ、および知られているタイプの組合せを含み得ることが理解されるべきである。一実施形態では、検索クエリ・プログラム101は、検索クエリ・パターンを記憶デバイス130に記憶し、およびそれから取り出す。
【0037】
一実施形態では、検索クエリ・パターンは、以下のうちの少なくとも1つまたは複数を含む。
(1)以下の能力を有するパターン(P)
a.クエリの特定の部分文字列(A)を認識する、および
b.(A)内に特定の部分文字列(B)を識別する
(2)検索トークン、および特定の部分文字列(B)がその中に置かれるべき、ゼロ個以上のスロットを表す、1つまたは複数のフォーマッティング文字列
(3)特定の部分文字列(B)がその中に配置されるべき順序を示す、(B)に対する部分文字列のラベルのリスト、および
(4)負でない実数の形での重み。
【0038】
一実施形態では、検索クエリ・パターン(P)は、正規表現の形をとり、特定の部分文字列(A)および(B)は、名前が付けられた捕捉グループを用いて識別される。一実施形態では、検索クエリ・パターン(P)は、構文グラフ・マッチング構成要素の形をとり、特定の部分文字列(A)を識別するために、構文/意味的関係または依存性が用いられ、(A)内の特定の部分文字列(B)は、全体の検索クエリ・パターン(P)内の構文トークンによって識別される。
【0039】
一実施形態では、検索クエリ・プログラム101は、相対スコア乗数(すなわち、「ブースト」または「重み」)を、特定のクエリに対して選択された各検索クエリ・パターンに割り当てる。相対スコア乗数は、検索結果の関連性ランキングに影響を与える。例えば、2の相対スコア乗数ランキングは、1の相対スコア乗数ランキングと比べて、2倍影響力が大きくなる。
【0040】
一実施形態では、検索クエリ・プログラム101は、検索クエリ・パターンからキーワード・クエリを構築する。例えば、クエリから導き出されるトークンは、検索クエリ・パターンと突き合わされる。一実施形態では、特定の検索クエリ・パターンに割り当てられた相対スコア乗数はまた、検索クエリ・パターンによって生成された各キーワード・クエリに割り当てられる。例えば、検索クエリ・パターン「(?<=( |^))(?<field1>\\w+)(?=( |\\??$))」が、クエリ「What is the capital of France?」に対して選択されたと仮定すると、ここで(?<=( |^))は、「このトークンの左にスペースまたは文字列の始点が存在するべきである」ことを意味し、(?<field1>\\w+)は、「トークン自体がfield1に関連付けられた1つまたは複数の文字(スペースまたは句読点ではない)からなる」ことを意味し、および(?=( |\\??$))は、「トークンの右にスペースが存在するべきである、または疑問符が存在するべきである」ことを意味する。この検索クエリ・パターンに基づいて、次の2つのキーワード・クエリが生成され得る:[capital][France]。したがって、この検索クエリ・パターンに、相対スコア乗数[2.0]が割り当てられ、次いで相対スコア乗数[2.0]はまた、次のように各キーワード・クエリに割り当てられ得る:[capital^2.0][France^2.0]。
【0041】
一実施形態では、1つまたは複数の節134は、各クエリに対してコーパス132から取り出される。各重み付き検索クエリ・パターンから返された1つまたは複数の節134の関連性、およびそれによって各重み付き検索クエリ・パターンから構築された重み付きキーワード・クエリが分析され、評価される。一実施形態では、評価ステップは、節のうちのどれだけ多くが質問に正しく答えるかの、簡単なカウントを用い得る。一実施形態では、評価ステップは、各節のスコアの合計を用い、各節に対するスコアは、節が質問に正しく答えた場合、1/n(nは節のランク)であり、そうでなければ0である。しかし、任意の知られているタイプのスコアリングが用いられ得ることが、理解されるべきである。
【0042】
一実施形態では、コーパス132に加えて、解答集(answer key)が用意され、これはいくつかのクエリからなり、各クエリは、(i)自然言語質問、(ii)質問に正しく答える節のリスト(たまたま単に、質問に正しく答えない文脈において回答文字列を含んだ節を含まない)、および(iii)質問に正しく答えない節のリストを含む。一実施形態では、コーパス132は、各質問に対して、各節が「質問に正しく答える」または「質問に正しく答えない」としてラベル付けされるように、注釈付けされる。一実施形態では、質問に正しく答えるすべての節はそのように注釈付けされ、および注釈付けされないすべての他の節は、質問に正しく答えないものと想定される。一実施形態では、節が質問に正しく答えるかどうかに関して、節が評価されるのに従って、主題のエキスパートによってリアルタイムで判断がなされる。これらの判断は、互いに同様なキーワード・クエリに直面したときに節が2回以上取り出されることが、起こり得る場合に保存され得る。
【0043】
一実施形態では、山登りアルゴリズムは、検索クエリ・パターンのうちの1つまたは複数の相対スコア乗数を変更する。山登りアルゴリズムは、解に対して漸増的に変化させることによって、問題に対するより良い解を見出すことを試みる。一実施形態では、検索クエリ・プログラム101は、1つまたは複数のクエリに対して最適な数の関連性のある検索結果を得るために、1つまたは複数の検索クエリ・パターンに対する相対スコア乗数を連続的に調整する。一実施形態では、各検索クエリ・パターンに、1.0の初期相対スコア乗数が割り当てられ、返されるそれらの節の関連性に基づいて、上向きまたは下向きに調整され得る。
【0044】
例示的実施形態において、検索クエリ・パターンは正規表現の形であり、検索クエリ・パターンに対する評価メトリックは、どれだけ多くの検索結果が関連性があるかの簡単なカウントからなるものと仮定する。言い換えれば、検索クエリ・パターンに対する評価メトリックは、特定の検索クエリ・パターンから構築された、所与のキーワード・クエリに対して、どれだけ多くの関連性のある検索結果が返されるかに基づく。この例示的実施形態のために、以下の3つの検索クエリ・パターン(JSON形式で表される)が用意される。
【0045】
SQPパターン#1:
”pattern”:”(?<=( |^))(?<field1>\\w+)(?=( |\\??$))”,
”formattingString”:[”%s”],
”fields”:[”field”],
”weight”:1
【0046】
SQPパターン#2:
”pattern”:”(?<=( |^))(?<field1>\\w+) of (?<field2>\\w+)(?=(|\\??$))”,
”formattingString”:[”%s of %s”],
”fields”:[”field1”,”field2”],
”weight”:1
【0047】
SQPパターン#3:
”pattern”:”(?<=( |^))(?<field1>\\w+) of (?<field2>\\w+)(?=(|\\??$))”,
”formattingString”:[”%s %s”],
”fields”:[”field2”,”field1”],
”weight”:1
【0048】
この例示的実施形態で続けて、(i)「What is the capital of France?」と、「Which is the capital city of Spain?」との2つクエリがあると仮定する。上記で列挙された3つのSQPに基づいて、以下のキーワード・クエリ(ストップ・ワードを除去した後)が、第1のクエリ「What is the capital of France?」に対して生成され得る。
【0049】
SQP#1:[capital^1.0][France^1.0]
SQP#2:[capital of France^1.0]
SQP#3:[France capital^1.0]
【0050】
上記で列挙されたキーワード・クエリに従って、以下の節134がコーパス132から返され得る。
(1)「Paris is the capital of France.It has many fine museums and a lot of history.」
(2)「Capital punishment in France was banned in 2007.」
(3)「France is a capital place to visit if you like museums and gigantic radio towers.」
解答集に基づいて、第1の節はクエリに関連性があるが、第2および第3の節は関連性がないと決定され得る。
【0051】
同様に、上記で列挙された3つのSQPに基づいて、以下のキーワード・クエリ(ストップ・ワードを除去した後)が、第1のクエリ「Which is the capital city of Spain?」に対して生成され得る。
【0052】
SQP#1:[capital^1.0][city^1.0][Spain^1.0]
SQP#2:[city of Spain^1.0]
SQP#3:[Spain city^1.0]
【0053】
上記で列挙されたキーワード・クエリに従って、以下の節134がコーパス132から返され得る。
(1)「The president took the time to visit Madrid,the capital city of Spain.」
(2)「The 1978 Spanish Constitution bans capital punishment in Spain.」
(3)「Madrid is the capital and largest city in Spain.」
解答集に基づいて、第1および第3の節はクエリに関連性があるが、第2の節は関連性がないと決定され得る。3つのSQPによって生成された、キーワード・クエリによって返された6つの節のうち、3つだけが関連性があり、したがって、3のスコアが各SQPパターンに割り当てられ得る。
【0054】
この例示的実施形態でさらに続けて、山登りアルゴリズムは、3つのSQPに対して、重みの新たなセットを選ぶ。例えば、重みの新たなセットが、3つのSQPのそれぞれに次のように割り当てられると仮定する。SQP#1[1.0]、SQP#2[2.0]、およびSQP#3[1.0]。ここで、SQP#2の重みまたはブーストは、[1.0]から[2.0]に増加されており、対応するキーワード・クエリ([capital of France^2.0])が、2倍、影響力が大きいことを意味する。
【0055】
3つのSQPに割り当てられた新たな重みに基づいて、以下のキーワード・クエリ(ストップ・ワードを除去した後)が、第1のクエリ「What is the capital of France?」に対して再び生成され得る。
【0056】
SQP#1:[capital^1.0][France^1.0]
SQP#2:[capital of France^2.0]
SQP#3:[France capital^1.0]
【0057】
上記で列挙されたキーワード・クエリに従って、以下の節134がコーパス132から返され得る。
(1)「The Paris Agreement is an agreement signed in the capital of France in 2016.The capital of France was chosen to host because the capital of France has many conveniently located restaurants.」
(2)「Paris is the capital of France.It has many fine museums and a lot of history.」
(3)「Paris,the capital of France,has hosted many conferences and ceremonies.」
解答集に基づいて、3つすべての節は、クエリに関連性がある(および、SQPに割り当てられた重みの第1のセットを用いて返された前の検索結果に比べて、厳密な語句「capital of France」を含む可能性が高い)ことが決定され得る。
【0058】
同様に、3つのSQPに割り当てられた新たな重みに基づいて、以下のキーワード・クエリ(ストップ・ワードを除去した後)が、第2のクエリ「Which is the capital city of Spain?」に対して再び生成され得る。
【0059】
SQP#1:[capital^1.0][city^1.0][Spain^1.0]
SQP#2:[city of Spain^2.0]
SQP#3:[Spain city^1.0]
【0060】
上記で列挙されたキーワード・クエリに従って、以下の節134がコーパス132から返され得る。
(1)「The capital of Spain was Toledo until 1561,when the capital city of Spain was changed.」
(2)「The president took the time to visit Madrid,the capital city of Spain.」
(3)「Madrid is the capital and largest city in Spain.」
【0061】
解答集に基づいて、第2および第3の節はクエリに関連性があるが、第1の節は関連性がないことが決定され得る。3つのSQPによって生成されたキーワード・クエリによって返された6つの節のうち、5つは関連性があり、したがって、新たに割り当てられた重み[1.0][2.0][1.0]に基づいて、5のスコアが各SQPパターンに割り当てられ得る。これは最初に割り当てられた重み[1.0][1.0][1.0]に基づいて、前の3のスコアに対する改善であるので、プロセスは継続することができ、山登りアルゴリズムは、関連性のある節134の最適数(例えば、すべての節が質問に正しく答える、または質問に正しく答える節の数が、重みの増加に応答して、増加を停止している)が返されるまで、第2のSQPに割り当てられる重みを増加させることができる。
【0062】
一実施形態では、検索クエリ・プログラム101は、所定の重み付き検索クエリ・パターンを、新たな検索クエリに適用する。一実施形態では、所定の重み付き検索クエリ・パターンは、新たな検索クエリに一致するまたは最も類似の、前の同様なものに対して用いられた最適重み付き検索クエリ・パターンの事前の決定に基づく。
【0063】
一実施形態では、検索クエリ・プログラム101は、前の検索クエリと新たな検索クエリとの間に一致があると決定された場合、前の検索クエリのために用いられた所定の重み付き検索クエリ・パターンを、新たな検索クエリ・パターンに対して生成する。一実施形態では、2つの検索クエリは、限定はされないが、それらの意味構造、構文構造、文の構造、および文脈のうちの1つまたは複数に、少なくとも部分的に基づいて、一致することができる。
【0064】
一実施形態では、検索クエリ・プログラム101は、新たな検索クエリとの最も高度の類似度、または新たな検索クエリ・パターンとの所定の閾値より高い類似度あるいはその両方を有する、前の検索クエリを識別したことに基づいて、前の検索クエリのために用いられた所定の重み付き検索クエリ・パターンを、新たな検索クエリに対して生成する。一実施形態では、2つの検索クエリの間の類似度は、限定はされないが、それらの意味構造、構文構造、文の構造、および文脈のうちの1つまたは複数に、少なくとも部分的に基づく。
【0065】
一実施形態では、検索クエリ・プログラム101が、前の検索クエリと新たな検索クエリとが同じトピックに関係すると決定した場合、検索クエリ・プログラム101は、前の検索クエリに対して前に決定された、最適重み付き検索クエリ・パターンに基づいて、新たな検索クエリに対する所定の重み付き検索クエリ・パターンを生成する。
【0066】
例えば、前の入力検索クエリ「What is the weather in Miami?」に対して決定された、前の重み付き検索クエリ・パターンは、後に、新たな検索クエリ入力「What is the weather in Boston?」に割り当てられ得る。この例では、検索クエリ・プログラム101は、前の検索クエリと新たな検索クエリとは、共に気象および場所についてであることを検出し得る。この例で続けて、第1の検索クエリ「What is the weather in Miami?」に対して、以下の重み付き検索クエリ・パターンが最適検索結果を受信したと決定されたと仮定する。
【0067】
SQP#1:[weather^1.0][Miami^1.0]
SQP#2:[weather in Miami^2.0]
【0068】
検索クエリ「What is the weather in Miami?」に対する、前に決定された最適重み付き検索クエリ・パターンに基づいて、検索クエリ・プログラム101は、以下のように、新たな検索クエリ「What is the weather in Boston?」に対する、同じ重み付き検索クエリ・パターンをさらに生成する。
【0069】
SQP#1:[weather^1.0][Boston^1.0]
SQP#2:[weather in Boston^2.0]
【0070】
図2は、本発明の少なくとも1つの実施形態による、ユーザ・デバイス上の検索クエリ・パターンを最適化するための動作ステップを示す、全体的に200として示される、フロー・チャート図である。図2は一実装形態の例示を示すのみであり、異なる実施形態が実施され得る環境に関して何らかの限定を暗に示すものではない。示される環境に対して、多くの変更形態が、当業者により「特許請求の範囲」によって記載される本発明の範囲から逸脱せずになされ得る。
【0071】
ステップS202で、検索クエリ・プログラム101は、1つまたは複数のクエリを受信する。例えば、1つまたは複数のクエリは、自然言語の質問の形で提示される。別の例では、1つまたは複数のクエリは、複数語の節の形で提示される。しかし、検索クエリ・プログラム101は、当業者によって一般に知られている任意のタイプのクエリを、受信および処理し得ることが理解されるべきである。
【0072】
ステップS204で、検索クエリ・プログラム101は、クエリを複数の部分文字列またはトークンに分割する。一実施形態では、検索クエリ・プログラム101は、「a」、「an」、「the」その他などの、ストップ・ワードを除去する。一実施形態では、検索クエリ・プログラム101は、例えば、名前が付けられた捕捉グループによって、関係する特定の部分文字列またはトークンを識別する。
【0073】
ステップS206で、検索クエリ・プログラム101は、2つ以上の検索クエリ・パターンを選択する。一実施形態では、2つ以上の検索クエリ・パターンは、1つまたは複数のクエリ自体に基づいて選択される。例えば、検索クエリ・プログラム101は、クエリの文脈、構文、または意味構造あるいはその組合せのうちの1つまたは複数、および訓練目的のために用いられた過去のクエリに対する新たなクエリの類似性に、少なくとも部分的に基づいて、検索クエリ・パターンを選択する。一実施形態では、検索クエリ・プログラム101は、ランダムに、2つ以上の検索クエリ・パターンの任意の変形または組合せを選択する。
【0074】
ステップS208で、検索クエリ・プログラム101は、ステップS206で選択された各検索クエリ・パターンに重みを割り当てる。一実施形態では、重みは、負でない実数からなる、相対スコア乗数である。
【0075】
ステップS210で、検索クエリ・プログラム101は、ステップS206で選択された各検索クエリ・パターンから、1つまたは複数のキーワード・クエリを構築する。
【0076】
ステップS212で、検索クエリ・プログラム101は、ステップS210で構築された各キーワード・クエリに、重みを割り当てる。一実施形態では、各検索クエリ・パターンに割り当てられた初期重みも、それぞれの検索クエリ・パターンから生成された、対応するキーワード・クエリに割り当てられる。例えば、ステップS208で選択された、選択された検索クエリ・パターンに、[1.0]の初期重みが割り当てられる場合、[1.0]の重みを有する選択された検索クエリ・パターンから構築された、任意のキーワード・クエリに同様に[1.0]の重みが割り当てられる。
【0077】
ステップS214で、検索クエリ・プログラム101は、各キーワード・クエリに基づいて節を識別する。ステップS216で、検索クエリ・プログラム101は、各キーワード・クエリに基づいて、返された節の関連性を評価する。
【0078】
決定ステップS218で、検索クエリ・プログラム101は、各検索クエリ・パターンに割り当てられた重みを調整するかどうかを決定する。検索クエリ・パターンに割り当てられた重みは調整される必要があると決定された場合(決定ステップS218「はい」の分岐)、検索クエリ・プログラム101は、ステップS212に進む。検索クエリ・パターンに割り当てられた重みは調整される必要がないと決定された場合(決定ステップS218「いいえ」の分岐)、処理は終わり、検索クエリ・プログラム101は終了する。
【0079】
図3は、本発明の少なくとも1つの実施形態による、特定の検索クエリに対して、所定の重み付き検索クエリ・パターンを生成し、割り当てるための動作ステップを示す、全体的に300として示される、フロー・チャート図である。図3は一実装形態の例示を示すのみであり、異なる実施形態が実施され得る環境に関して何らかの限定を暗に示すものではない。示される環境に対して、当業者により多くの変更形態が、「特許請求の範囲」によって記載される本発明の範囲から逸脱せずになされ得る。
【0080】
ステップS302で、検索クエリ・プログラム101は、ユーザから検索クエリを受信する。ステップS304で、検索クエリ・プログラム101は、検索クエリを、前の提出された検索クエリと比較する。
【0081】
決定ステップS306で、検索クエリ・プログラム101は、ユーザから受信された検索クエリと、前に提出された検索クエリとの間の一致が検出されるかどうかを決定する。2つの検索クエリの比較は、同じ個人によって提出されている必要はないことが理解されるべきである。むしろ、一個人によって提出された新たな検索クエリは、異なる個人によって提出された前の検索クエリと比較され得る。一実施形態では、検索クエリ・プログラム101は、検索クエリが、過去の検索クエリと同一である場合、一致を検出する。一実施形態では、検索クエリ・プログラム101は、2つの検索クエリの間で、最も高度の類似度、または所定の閾値より高い類似度を識別したことに基づいて一致を検出する。一実施形態では、複数の一致が検出される場合、検索クエリ・プログラム101は、検索クエリ・パターン一致を比較することができる。一実施形態では、各比較に対してスコアが割り当てられ、新たなクエリと比べて最も高いスコアを有する検索クエリが、一致として選択される。一致が検出されると決定された場合(決定ステップS306「はい」の分岐)、検索クエリ・プログラム101は、決定ステップS308に進む。一致が検出されないと決定された場合(決定ステップS306「いいえ」の分岐)、検索クエリ・プログラム101は、ステップS310に進む。
【0082】
決定ステップS308で、検索クエリ・プログラム101は、一致した検索クエリに関連付けられた、最適重み付きクエリ・パターンがあるかどうかを決定する。一実施形態では、最適重み付きクエリ・パターンは、特定の検索クエリに対して、最も多数の関連性のある結果を取り出すように決定されたパターンである。一実施形態では、最適重み付きクエリ・パターンは、特定の検索クエリに正しく答える、最も関連性のある検索結果を取り出すように決定された重み付きクエリ・パターンである。一致したクエリに関連付けられた最適重み付きクエリ・パターンがないと決定された場合(決定ステップS308「いいえ」の分岐)、検索クエリ・プログラム101は、ステップS310に進む。一致したクエリに関連付けられた最適重み付きクエリ・パターンがあると決定された場合(決定ステップS308「はい」の分岐)、検索クエリ・プログラム101は、ステップS312に進む。
【0083】
ステップS310で、検索クエリ・プログラム101は、デフォルト重み付きクエリ・パターンに基づいて、1つまたは複数の重み付きキーワード・クエリを生成する。例えば、[1.0]のデフォルト重みが、デフォルト・クエリ・パターンから生成された各キーワード・クエリに割り当てられる。
【0084】
ステップS312で、検索クエリ・プログラム101は、最適重み付き検索クエリ・パターンに基づいて、1つまたは複数のキーワード・クエリを生成する。
【0085】
ステップS314で、検索クエリ・プログラム101は、ステップS310またはS312で生成された1つまたは複数の重み付きキーワード・クエリに基づいて、検索結果を返す。
【0086】
図4は、本発明の少なくとも1つの実施形態による、検索クエリ・プログラム101を実行するために適した、全体的に400として示される、コンピューティング・デバイスの構成要素を示すブロック図である。コンピューティング・デバイス400は、1つまたは複数のプロセッサ404(1つまたは複数のコンピュータ・プロセッサを含む)と、通信ファブリック402と、RAM416およびキャッシュ418を含んだメモリ406と、自然言語処理モジュール122および構文パーサ・モジュール124を含んだ検索クエリ・プログラム101をさらに含む永続ストレージ408と、通信ユニット412と、I/Oインターフェース414と、ディスプレイ422と、外部デバイス420とを含む。図4は一実施形態の例示を示すのみであり、異なる実施形態が実施され得る環境に関して何らかの限定を暗に示すものではないことが理解されるべきである。示される環境に対して、多くの変更形態がなされ得る。
【0087】
示されるように、コンピューティング・デバイス400は、コンピュータ・プロセッサ404、メモリ406、永続ストレージ408、通信ユニット412、および入出力(I/O)インターフェース414の間の通信をもたらす、通信ファブリック402を通して動作する。通信ファブリック402は、プロセッサ404(例えば、マイクロプロセッサ、通信プロセッサ、およびネットワーク・プロセッサ)、メモリ406、外部デバイス420、およびシステム内の任意の他のハードウェア構成要素の間で、データまたは制御情報を渡すために適した任意のアーキテクチャを用いて実装され得る。例えば、通信ファブリック402は、1つまたは複数のバスを用いて実装され得る。
【0088】
メモリ406および永続ストレージ408は、コンピュータ可読記憶媒体である。示される実施形態において、メモリ406は、ランダムアクセス・メモリ(RAM)416と、キャッシュ418とを含む。一般に、メモリ406は、任意の適切な揮発性または不揮発性の、1つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【0089】
検索クエリ・プログラム101ためのプログラム命令は、メモリ406の1つまたは複数のメモリを用いたそれぞれのコンピュータ・プロセッサ404のうちの1つまたは複数による実行のために、永続ストレージ408に、またはより一般的には、任意のコンピュータ可読記憶媒体に記憶され得る。永続ストレージ408は、磁気ハード・ディスク・ドライブ、ソリッドステート・ディスク・ドライブ、半導体記憶デバイス、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶する能力を有する任意の他のコンピュータ可読記憶媒体とすることができる。
【0090】
永続ストレージ408によって用いられる媒体も、リムーバブルとすることができる。例えば、永続ストレージ408のために、リムーバブル・ハード・ドライブが用いられ得る。他の例は、永続ストレージ408の一部でもある別のコンピュータ可読記憶媒体上への転送のためにドライブに挿入される、光および磁気ディスク、サム・ドライブ、およびスマート・カードを含む。
【0091】
通信ユニット412は、これらの例において、他のデータ処理システムまたはデバイスとの通信をもたらす。これらの例において、通信ユニット412は、1つまたは複数のネットワーク・インターフェース・カードを含むことができる。通信ユニット412は、物理的および無線通信リンクのいずれかまたは両方の使用を通して、通信をもたらし得る。本発明のいくつかの実施形態の関連において、様々な入力データのソースは、通信ユニット412を通じて入力データが受信され、出力も同様に送信され得るように、コンピューティング・デバイス400に対して物理的に遠隔とすることができる。
【0092】
I/Oインターフェース414は、コンピューティング・デバイス400に関連して動作し得る、他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインターフェース414は、キーボード、キーパッド、タッチ・スクリーン、または他の適切な入力デバイスとすることができる、外部デバイス420への接続をもたらし得る。外部デバイス420はまた、ポータブル・コンピュータ可読記憶媒体、例えば、サム・ドライブ、ポータブル光または磁気ディスク、およびメモリ・カードを含むことができる。本発明の実施形態を実践するために用いられるソフトウェアおよびデータは、このようなポータブル・コンピュータ可読記憶媒体に記憶されることができ、I/Oインターフェース414を通じて永続ストレージ408にロードされ得る。I/Oインターフェース414はまた同様に、ディスプレイ422に接続することができる。ディスプレイ422は、データをユーザに表示する機構をもたらし、例えば、コンピュータ・モニタとすることができる。
図1
図2
図3
図4
【手続補正書】
【提出日】2023-12-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
検索クエリ結果を最適化するためのコンピュータ実施方法であって、
第1の自然言語クエリを受信することと、
前記第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、
前記複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、
各検索クエリ・パターンに割り当てられた前記重みと、前記第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、
前記第1の自然言語クエリに対する、前記1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、
前記複数の検索クエリ・パターン内の検索クエリ・パターンに割り当てられた前記重みを、前記第1の自然言語クエリに対する前記検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することと
を含む、コンピュータ実施方法。
【請求項2】
第2の自然言語クエリを受信することと、
前記第2の自然言語クエリを、前に提出された自然言語クエリと比較することと、
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致するかを決定することと
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致すると決定したことに応答して、
最適重み付き検索クエリ・パターンが、前記前に提出された一致する自然言語クエリに関連付けられることを決定することと、
前記前に提出された一致する自然言語クエリに関連付けられた前記最適重み付き検索クエリ・パターンと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する1つまたは複数の最適重み付きキーワード・クエリを生成することと、
前記第2の自然言語クエリに対する、前記1つまたは複数の最適重み付きキーワード・クエリからの1つまたは複数の検索結果を返すことと
をさらに含む、請求項2に記載のコンピュータ実施方法。
【請求項4】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致しないと決定したことに応答して、
デフォルト検索クエリ・パターンに割り当てられたデフォルト重みと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する、1つまたは複数のデフォルト重み付きキーワード・クエリを生成すること
をさらに含む、請求項2に記載のコンピュータ実施方法。
【請求項5】
前記第2の自然言語クエリと、前記前に提出された自然言語クエリとの間の前記一致は、(i)共有された意味構造、(ii)共有された構文構造、(iii)共有された文の構造、および(iv)共有された文脈のうちの1つまたは複数に基づく、請求項2に記載のコンピュータ実施方法。
【請求項6】
最適重み付き検索クエリ・パターンは、特定の自然言語検索クエリに対して、最も多数の関連性のある検索結果を取り出すように決定された、重み付き検索クエリ・パターンである、請求項3に記載のコンピュータ実施方法。
【請求項7】
最適重み付き検索クエリ・パターンは、特定の自然言語クエリに対して、最も正確に解答するように決定された、重み付き検索クエリ・パターンである、請求項3に記載のコンピュータ実施方法。
【請求項8】
コンピュータに、請求項1ないし7のいずれかに記載の方法を実行させる、コンピュータ・プログラム。
【請求項9】
検索クエリ結果を最適化するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
コンピュータ・プログラム命令とを備え、
前記コンピュータ・プログラム命令は、前記1つまたは複数のコンピュータ・プロセッサによる実行のために、前記1つまたは複数のコンピュータ可読記憶媒体に記憶され、
前記コンピュータ・プログラム命令は、
第1の自然言語クエリを受信することと、
前記第1の自然言語クエリに基づいて、複数の検索クエリ・パターンを選択することと、
前記複数の検索クエリ・パターン内の各検索クエリ・パターンに、重みを割り当てることと、
各検索クエリ・パターンに割り当てられた前記重みと、前記第1の自然言語クエリからの1つまたは複数のキーワードとに基づいて、各検索クエリ・パターンから、1つまたは複数の重み付きキーワード・クエリを生成することと、
前記第1の自然言語クエリに対する、前記1つまたは複数の重み付きキーワード・クエリのそれぞれによって返された、1つまたは複数の検索結果の関連性を評価することと、
前記複数の検索クエリ・パターン内の検索クエリ・パターンに割り当てられた前記重みを、前記第1の自然言語クエリに対する前記検索クエリ・パターンから、最適な数の関連性のある検索結果が返されるまで、反復的に変更することと
を行うための命令を含む、コンピュータ・システム。
【請求項10】
第2の自然言語クエリを受信することと、
前記第2の自然言語クエリを、前に提出された自然言語クエリと比較することと、
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致するかを決定することと
を行うための命令をさらに備える、請求項9に記載のコンピュータ・システム。
【請求項11】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致すると決定したことに応答して、
最適重み付き検索クエリ・パターンが、前記前に提出された一致する自然言語クエリに関連付けられることを決定することと、
前記前に提出された一致する自然言語クエリに関連付けられた前記最適重み付き検索クエリ・パターンと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する1つまたは複数の最適重み付きキーワード・クエリを生成することと、
前記第2の自然言語クエリに対する、前記1つまたは複数の最適重み付きキーワード・クエリからの1つまたは複数の検索結果を返すことと
を行うための命令をさらに備える、請求項10に記載のコンピュータ・システム。
【請求項12】
前記第2の自然言語クエリが、前に提出された自然言語クエリと一致しないと決定したことに応答して、
デフォルト検索クエリ・パターンに割り当てられたデフォルト重みと、前記第2の自然言語クエリからの1つまたは複数のキーワードとに基づいて、前記第2の自然言語クエリに対する、1つまたは複数のデフォルト重み付きキーワード・クエリを生成すること
を行うための命令をさらに備える、請求項10に記載のコンピュータ・システム。
【請求項13】
前記第2の自然言語クエリと、前記前に提出された自然言語クエリとの間の一致は、(i)共有された意味構造、(ii)共有された構文構造、(iii)共有された文の構造、および(iv)共有された文脈のうちの1つまたは複数に基づく、請求項10に記載のコンピュータ・システム。
【請求項14】
最適重み付き検索クエリ・パターンは、(i)特定の自然言語検索クエリに対して、最も多数の関連性のある検索結果を取り出すこと、または(ii)特定の自然言語クエリに対して、最も正確に解答することのうちの少なくとも1つによって決定された、重み付き検索クエリ・パターンである、請求項11に記載のコンピュータ・システム。
【国際調査報告】