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

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

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

特許7356973複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム
<>
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図1
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図2
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図3
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図4
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図5
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図6
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図7
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図8
  • 特許-複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-27
(45)【発行日】2023-10-05
(54)【発明の名称】複数の文書をランキングするための方法、コンピュータ・プログラムおよびコンピュータ・システム
(51)【国際特許分類】
   G06F 16/33 20190101AFI20230928BHJP
【FI】
G06F16/33
【請求項の数】 15
(21)【出願番号】P 2020522673
(86)(22)【出願日】2018-10-19
(65)【公表番号】
(43)【公表日】2021-01-14
(86)【国際出願番号】 IB2018058140
(87)【国際公開番号】W WO2019086996
(87)【国際公開日】2019-05-09
【審査請求日】2021-03-23
【審判番号】
【審判請求日】2022-10-19
(31)【優先権主張番号】15/796,950
(32)【優先日】2017-10-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】クルドル、ミシェル
(72)【発明者】
【氏名】ペローヌ、アントニオ
【合議体】
【審判長】須田 勝巳
【審判官】山崎 慎一
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2003-157270(JP,A)
【文献】特表2009-501974(JP,A)
【文献】翠 輝久、外1名,限定されたドメインにおける質問応答機能を備えた文書検索・提示型対話システム,情報処理学会研究報告,日本,社団法人情報処理学会,2006年07月08日,第2006巻,第73号,p.69-74
【文献】渡邊 博之,ニューラルネットワークを用いた実習レポート評価支援システムの開発,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2008年07月12日,第108巻,第146号,p.7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06F16/33
(57)【特許請求の範囲】
【請求項1】
プロセッサが実行する、複数の文書用語を各々含む複数の文書をランキングするための方法であって、
前記文書を選択するための1つまたは複数のクエリ用語を含む、クエリを受信するステップと、
前記クエリ用語と前記複数の文書のうちの対応する文書の前記文書用語との間の比較により前記クエリと前記対応する文書との間の対応する類似度指数の各々を計算するステップと、
前記文書の各々に関連付けられた前記複数の文書用語に基づいて、前記文書ごとの意味的豊富度指標を決定するステップであって、前記意味的豊富度指標を決定するステップが、少なくとも特殊性指標を計算するステップを含み、前記特殊性指標を計算するステップが、前記複数の文書用語に基づく文書の希少な用語を識別するステップと、前記文書内の前記希少な用語に関連する密度を決定するステップとを含み、前記希少な用語所定の頻度しきい値より低い頻度で文書のコーパス内に存在する前記文書用語である、前記意味的豊富度指標を決定するステップと、
前記意味的豊富度指標により、前記複数の文書の各々について前記類似度指数を調整するステップと、
調整された前記類似度指数により、前記複数の文書の少なくとも一部を前記文書の選択のためにランキングするステップと、
を含む、方法。
【請求項2】
前記意味的豊富度指標の各々を計算する前記ステップが、
前記所定の頻度しきい値を、前記文書のコーパス内の前記文書用語の分布の統計的分析により計算するステップを含む、
請求項1に記載の方法。
【請求項3】
前記意味的豊富度指標の各々を計算する前記ステップが、
前記文書のコーパスのうちの前記文書用語が存在する割合の逆数に基づいて、前記文書用語の逆頻度指標を計算するステップと、
前記逆頻度指標の中心傾向変数に基づいて特殊性しきい値を計算するステップと、
前記文書内に存在する前記文書用語の特殊性しきい値よりも大きい前記逆頻度指標により、前記意味的豊富度指標の各々を計算するステップとを含む、
請求項2に記載の方法。
【請求項4】
前記逆頻度指標を計算するステップが、
前記文書用語が存在する前記割合の前記逆数に対数変換を適用するステップを含む、
請求項3に記載の方法。
【請求項5】
前記意味的豊富度指標を決定するステップが、
前記文書の統語的複雑性により前記意味的豊富度指標の各々を計算するステップを含む、
請求項1に記載の方法。
【請求項6】
前記意味的豊富度指標の各々を計算する前記ステップが、
前記文書内に存在する、複雑性しきい値を超える複雑性を有する統語的単位からなる複雑統語的単位により、前記文書の各々の前記統語的複雑性を定量化するステップを含む、
請求項5に記載の方法。
【請求項7】
前記文書の各々の前記統語的複雑性を定量化する前記ステップが、
前記複雑統語的単位を定義する、前記文書の各々内に存在する動詞句を識別するステップを含む、
請求項6に記載の方法。
【請求項8】
前記所定の頻度しきい値より低い頻度で前記文書のコーパス内に存在する前記文書用語から構成される希少な用語に各々応じて、前記特殊性指標である、前記意味的豊富度指標の特殊性成分を計算するステップと、
前記文書の統語的複雑性に各々応じて、前記意味的豊富度指標の複雑性成分を計算するステップと、
前記特殊性成分と前記複雑性成分との組合せにより、前記類似度指数の各々を調整するステップとをさらに含む、
請求項1に記載の方法。
【請求項9】
前記文書の前記意味的豊富度指標を決定するステップが、
前記文書の長さ指標により前記意味的豊富度指標の各々を正規化するステップを含む、
請求項1に記載の方法。
【請求項10】
前記類似度指数を調整する前記ステップが、
前記類似度指数の各々に、前記意味的豊富度指標に基づく少なくとも1つのピボット正規化関数を乗じるステップを含む、
請求項1に記載の方法。
【請求項11】
前記類似度指数を計算するステップが、
ベクトル空間モデル技術により前記類似度指数を計算するステップを含む、
請求項1に記載の方法。
【請求項12】
調整された前記類似度指数が減少する順序で前記複数の文書の少なくとも一部を表示させるために、前記クエリに応答して、ランキングされた前記複数の文書の少なくとも一部のリストを返すステップをさらに含む、
請求項1に記載の方法。
【請求項13】
前記文書の意味的豊富度指標を決定するステップは、複雑性指標を計算するステップをさらに含み、
前記複雑性指標を計算するステップは、前記文書に関連する統語的複雑性を決定するために、前記複数の文書に基づく前記文書に関連する動詞句の数および固有の句の数を決定するステップを含む、
請求項1に記載の方法。
【請求項14】
複数の文書用語を各々含む複数の文書をランキングするためのコンピュータ・プログラムであって、プロセッサに、請求項1から請求項13のいずれか一項に記載の方法における各ステップを実行させる、
コンピュータ・プログラム。
【請求項15】
複数の文書用語を各々含む複数の文書をランキングするためのコンピュータ・システムであって、
プロセッサと、
コンピュータ・プログラムを記録したメモリと、
を備え、
前記コンピュータ・プログラムは、前記プロセッサに、請求項1から請求項13のいずれか一項に記載の方法における各ステップを実行させる、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の背景を、以下にそのコンテキストに関する技術を説明することで紹介することとする。ただし、この説明が文書、行為、製品などを示す場合でも、説明される技術は、本開示に関連する分野の、従来技術の一部または共通の一般的認識であることを示唆または表現するものではない。
【0002】
本開示は、情報技術分野に関する。より具体的には、本開示は、文書のランキングに関する。
【背景技術】
【0003】
文書のランキングは、任意の特定の要求に関連し得る文書を、選択するコンピュータ・システムにおいて、常套手段である。典型的な例は、情報検索(IR)に関連するものであり、ランキングは、異なるトピックに関する文書(検索エンジンによるインターネットのウェブ・ページなど)の識別を支援するために使用される。実際、ある文書が別の文書より関連性があることを、数学的に証明することは不可能であり、関連する文書の選択は、経験的性質の行為であることから、文書のランキングが、その関連性を推定し、次にそれに応じて、(たとえば、人ユーザによる文書の手動選択のために)文書を順序づけまたはソートするために使用される。
【0004】
通常、ランキングは、各々が一連の用語(たとえば単語)からなる多数の文書によって形成される、文書のコーパス(またはコレクション)に適用される。所望の文書を選択するためのクエリは、(たとえば、ユーザによって検索エンジンに送信される)それらを特徴づけると考えられる1つまたは複数の用語を含む。類似度指数が、クエリの用語と文書の用語との比較に応じて、文書毎に計算される。文書は次に、所望の文書を選択するために、その類似度指数に応じてランキングされる(たとえば、実際に対象となるそれらの文書を手動選択するために、類似度指数の減少していく順序で並べられた最も関連するページのリストをユーザに返すことによって)。
【0005】
文書をランキングする普及した技術は、ベクトル空間モデル(VSM)に基づいている。簡単に説明すれば、VSM技術では、各文書および各クエリが、それらの用語およびその出現に応じて、単純にインデックスが付される。文書およびクエリは次に、(共通語彙の用語によって定義される)対応する多次元空間ベクトルによって表現される。各次元の用語が、文書/クエリ内に存在するとき、その値が、対応する用語の重みに設定される。たとえば、用語の重みは、tf-idf重み付け方式に従って定義される。具体的には、各用語の用語重みは、(文書/クエリ内の用語の)用語頻度tfに(文書コーパス内の用語の)逆文書頻度idfを乗じた積に設定される。クエリに関する文書の類似度指数が次に、それらのベクトルの角度差に応じて計算される。この方法では、類似度指数は、共通する用語によって決まり、繰り返される用語(それらの用語頻度による)、および/または希少である用語(それらの逆文書頻度による)に、より重い重要度を付与する。
【0006】
任意のランキング技術の品質は、実際上関連する(最上位にランキングされるものによって識別される)文書を、いかに良好に選択できるかによって決まる。たとえば、(選択された文書の総数を基準にして選択された、関連する文書によって定義される)精度は、できるだけ高くすべきである。実際に、情報ニーズに対して関連しない(関連性のない)文書、すなわち誤検出結果を制限することが望ましい(理想的には関連性のない文書を選択しない)。同時に、(関連する文書の総数を基準にして選択された、関連する文書によって定義される)再現率は、できるだけ高くすべきである。実際に、選択されない関連する文書、すなわち検出漏れ結果を制限することが望ましい(理想的には全ての関連する文書を選択する)。さらに簡潔に述べれば、ランキング技術は、何らかの関連する文書を選択できなければならない。たとえば、さらに詳細な検査をもたらすこともあり、もたらさないこともある選択された文書の関連性の迅速な検証に基づき、ランキング技術がブラウジングの状況に適用される場合(インターネットのページを検索する場合など)がこの事例である。実際この状況では、少なくとも何らかの選択された文書が適切であるならば、精度および再現率は、あまり重要でないこともある。
【0007】
ランキングの低品質は、コンピュータ・システムの性能に悪影響を及ぼし得る。詳細には、何らかの関連する文書を選択する低精度および再現率、または簡潔に述べれば、低確率であることで、本当に関連する文書を見つけるために、1つまたは複数の追加のクエリを送信することが必要となり得る。これらの追加のクエリは、(たとえば、追加のクエリを供給するための計算用電力、追加のクエリを受信し、それらの結果を返信するためのネットワーク・トラフィックなどの)関連するコンピュータ・システム資源の追加消費を伴う。
【発明の概要】
【発明が解決しようとする課題】
【0008】
文書の意味的豊富度に応じて文書をランキングする。
【課題を解決するための手段】
【0009】
本開示の簡易化された概要が、その基礎的な理解を提供するために、本明細書で提示される。ただし、本概要の唯一の目的は、本開示のいくつかの技術概念を、それに続くより詳細な説明への序文として、簡易化した形態で紹介することであり、その重要な構成要素の識別として、またはその範囲の記述として解釈されるべきではない。
【0010】
大まかに述べれば、本開示は、文書の意味的豊富度に応じて文書をランキングする概念に基づく。
【0011】
具体的には、ある態様は、コンピュータ・システム内で複数の文書をランキングするための方法を提供し、文書とそれらを選択するためのクエリとの間の対応する類似度指数が、文書の対応する意味的豊富度指標によって調整される。
【0012】
さらなる態様は、本方法を実装するための対応するコンピュータ・プログラムを提供する。
【0013】
さらなる態様は、本方法を実装するための対応するコンピュータ・プログラム製品を提供する。
【0014】
さらなる態様は、対応するシステムを提供する。
【0015】
より具体的には、本開示の1つまたは複数の態様は、独立請求項で提示され、その有益な特徴は、従属請求項で提示され、全ての請求項の表現を用いて引用により逐語的に本明細書に組み込まれる(特定の態様を参照して提示される有益な特徴は他の全ての態様に対しても必要に応じて適用され得る)。
【0016】
本開示の解決策、およびそのさらなる特徴および利点は、あくまで非制限的な表示によって提示され、添付図面と併せて読まれることになる、以下のその詳細な説明を参照することにより、最良に理解されよう(ここでは、簡単にするために、対応する要素は、同一または類似の参照を用いて示され、それらの説明は繰り返されず、各構成要素の名前は、値、内容物、および表示などの、その種類およびその属性の両方を示すために通常用いられる)。
【図面の簡単な説明】
【0017】
図1】本開示の一実施形態による解決策の概略的原理を示す図である。
図2】本開示の一実施形態による解決策の概略的原理を示す図である。
図3】本開示の一実施形態による解決策の概略的原理を示す図である。
図4】本開示の一実施形態による解決策の概略的原理を示す図である。
図5】本開示の一実施形態による解決策の概略的原理を示す図である。
図6】本開示の一実施形態による解決策が適用され得る、コンピュータ・システムの概略ブロック図である。
図7】本開示の一実施形態による解決策を実装するために使用され得る主要ソフトウェア構成要素の役割を表すコラボレーション図である。
図8】本開示の一実施形態による解決策の実装に関するアクティビティのフローを説明するアクティビティ図である。
図9】本開示の一実施形態による解決策の実装に関するアクティビティのフローを説明するアクティビティ図である。
【発明を実施するための形態】
【0018】
特に図1図5を参照すると、本開示の一実施形態による解決策の概略的原理が示されている。
【0019】
図1から始めると、文書のコーパスが、たとえばインターネットの(ウェブ)ページなどの、コンピュータ・システム内で利用可能であり、各文書は、たとえば対応するテキストの単語などの、複数の(文書)用語を含む。クエリは、コンピューティング・マシン内で、たとえば、所望の文書を選択するためのクライアント・コンピューティング・マシンまたは簡潔に表現すればクライアント110から、(ウェブ)サーバ・コンピューティング・マシンまたは簡潔に表現すればサーバ105内で受信される。クエリは、たとえばクライアント110のユーザによって特定のトピックに関する最も関連するページを検索するために、コーパスの文書の文書用語とマッチングされることになる、(所望の文書を特徴づけると考えられる)1つまたは複数の(クエリ)用語を含む。
【0020】
それに応答して、文書の関連性に応じて文書をランキングするために、以下の動作が実行される。これらの動作は、それらが全く人間に不向きであるため、コンピューティング・マシン(すなわち説明している実施例ではサーバ105)によって実行されることになる。実際、このことは、(通常、たとえばインターネット内の数十億オーダーの非常に多数の)コーパスの全ての文書を読むことを必要とするであろう。それゆえそれを実行する人間によって費やされる時間は、あまりにも莫大であり、それは絶対に現実的でないであろう。逆に述べれば、コーパスの全ての文書を読むことこそ、それらのランキングが避けようと目指すことである。実際のところ、この処理の目的こそ、実際に対象のものを比較的短時間で、手動で選択することが可能となるように、関連するであろう文書をコーパス内の多数の文書の中から自動的に識別することである。
【0021】
図2に移ると最初に、類似度指数がクエリと各文書との間で計算され、類似度指数は、文書がどれ程クエリに(意味的に)類似している(すなわちクエリに関連すると想定される)かを、すなわち、文書の意味がどれ程クエリと関係するか(たとえば1から0までで類似性の減少していく順序で数値的スコアによって定義される)を表す。類似度指数は、たとえばVSM技術を適用することによって、クエリ用語と文書の文書用語との間の比較により計算される。
【0022】
図3に移ると、本開示の一実施形態による解決策では、意味的豊富度指標が、文書毎に決定される。意味的豊富度指標は、文書が伝えると想定される情報の総量(すなわちその情報性)を表す。言い換えれば、意味的豊富度指標は、文書の認知的内容物を、すなわちそれがいかにその概念を表現するために有意義であるかを表す。たとえば、文書の意味的豊富度指標は、文書の希少な文書用語、すなわち希少用語(たとえば、コーパスの文書内に頻度しきい値より低い頻度で存在する文書用語によって定義される)により、または統語的複雑性(たとえば、文書内に存在する動詞句の数によって定義される)により、あるいはその両方によって計算される。
【0023】
図4に移ると、(クエリに関する)文書の類似度指数は、対応する意味的豊富度指標により調整される。たとえば、各類似度指数は、意味的豊富度指標が、高い場合または低い場合、それぞれ、類似度指数を増加させるまたは減少させるように、対応する意味的豊富度指標のピボット正規化関数が乗じられる。
【0024】
図5に移ると、複数の文書またはその少なくとも一部(たとえば、所定の数の最も関連する文書)が、対応する(調整済みの)類似度指数によりランキングされる。文書のランキングは、次にそれらの選択に使用され得る。たとえば、(文書の類似度指数の減少していく順序で並べられた)最も関連する文書のリストが、クエリに応答して、サーバ105からクライアント110へ返信される。このリストは次に、クライアント110のユーザが、実際に対象である文書を選択するために、上位からリストをブラウジングできるように、クライアント110上に表示される。文書は次に、それらを開くことによって検分され得る。説明している実施例では、これは、通信ネットワークを介したインターネットの対応するウェブ・サイトからページを取得し、それらを一時的にクライアント110のウェブ・ブラウザのキャッシュ・メモリ内に格納することを伴う。ページは次に、クライアント110の大容量メモリにダウンロードされ得、ことによるとそれらを読みやすくするためにプリントされ得る。あるいは、文書をランキングする同一の処理は、たとえば、eメール・サーバまたはeメール・クライアントのアンチスパム・プログラム内で、アプリケーションをフィルタリングすることに適用されることもある。この場合には、(eメール・サーバまたはeメール・クライアントによって)取得された全てのeメールは、管理者によって事前定義されたまたはユーザの挙動(上記の対応するクエリ用語を含む)から自動的に学習されたアンチスパム・ルールに対して検証され、eメールの内容がこれらのアンチスパム・ルールのいずれかにマッチする場合、アンチスパム・プログラムは自動的にそれをスパムとして識別する。アンチスパム・プログラムは次に、(手動検証のために)eメールにスパムとしてフラグを立て、eメールを隔離または削除し得る。
【0025】
このようにして、文書のランキングは、認知的推論能力を対応する処理に注入するために、それらの意味的豊富度にも依存する。
【0026】
これが、ランキングの品質を著しく向上させる。たとえば、(文書のブラウジングのために)いくつかの関連する文書を選択するために、精度の向上(これにより、関連しない文書が選択されることを制限する)、再現率の向上(これにより、関連する文書が選択されないことを制限する)、または簡潔に述べれば確率の向上を可能にする。
【0027】
上述の結果は、(たとえば、VSM技術の簡潔性を維持することによって)非常に簡潔な方法で達成され得る。
【0028】
詳細には、文書の意味的豊富度指標(クエリに依存せずに文書を特徴づける)は、オフラインで決定され得、それゆえ、提案する解決策の(クエリに応答する)リアルタイム性能に関しての影響は、実際上無視できる。
【0029】
上述の全ては、コンピュータ・システムの性能を著しく改善する。詳細には、何らかの関連する文書を選択する、結果的に向上された精度および再現率、または簡潔に述べれば、改善された確率は、本当に関連する文書を見つけるために、追加のクエリを送信する必要性を低減する。このことは、対応するコンピュータ・システム資源の消費の低減を伴い、たとえば、サーバの計算用電力が、(追加のクエリが用いられない、または少なくとも低減された追加のクエリが用いられることになるので)節約され、ネットワーク・トラフィックが、(サーバによって、追加のクエリが受信されない、または少なくとも低減された追加のクエリが受信され、それらの結果がクライアントに返信されるので)低減される。
【0030】
ここで、図6を参照すると、本開示の一実施形態による解決策が適用され得る、コンピュータ・システム200の概略ブロック図が示されている。
【0031】
コンピュータ・システム200は、通常インターネットに基づく、分散化されたアーキテクチャを有し、インターネットは、互いにグローバル電気通信ネットワーク210を介して接続される、数百万のサーバ205によって形成される。文書のランキング用に上述のサーバ105を含むサーバ205のサブセット(ワールド・ワイド・ウェブまたは簡潔にウェブとして知られている)が、各々が(ウェブ)ページの集合からなる対応するウェブ・サイトへのアクセスを可能にする。(HTML言語にフォーマットされたハイパーテキスト文書によって定義される)各ページは、対応する(HTTPプロトコルを介してそれに接続するための標準的シンタックスに従ってフォーマットされた固有の文字列から構成される)URLによって識別される。クライアント110のユーザは、サーバ205によって提供されるサービスを利用するために、(アクセス・プロバイダとして動作する、図示されていないコンピューティング・マシンを介して)インターネットにアクセスする。具体的には、本開示に関連する限りでは、クライアント110のユーザは、所望のページを検索するためにサーバ105にアクセスし、次いで当該ページが対応するサーバ205からダウンロードされ得る。
【0032】
上述のシステム200のコンピューティング・マシンの各々(すなわちサーバ205およびクライアント110)は、たとえば、1つまたは複数の水準を有するバス構造215を介して、いくつかの互いに接続されたユニットを含む。具体的には、1つまたは複数のマイクロプロセッサ(μP)220は、コンピューティング・マシン205、110の動作を制御し、不揮発性メモリ(ROM)225は、コンピューティング・マシン205、110のブートストラップのための基本コードを格納し、揮発性メモリ(RAM)230は、マイクロプロセッサ220によって、作業メモリとして使用される。コンピューティング・マシン205、110は、(たとえば、サーバ205が実装される、対応するサーバ・ファームのストレージ・デバイス、またはクライアント110用のハード・ディスクなどの)プログラムおよびデータを格納するための大容量メモリ235を装備する。さらに、コンピューティング・マシン205、110は、周辺機器または入出力(I/O)ユニット用の多数のコントローラ240を備える。たとえば、各サーバ205の周辺機器は、(グローバル電気通信)ネットワーク210へのアクセスを提供する、対応するサーバ・ファームのスイッチ/ルータ・サブシステムと通信するためのネットワーク・インターフェース・カード(NIC)と、サーバ・ファームのコンソールによって実装される、(光ディスク、DVD類などの)取り外し可能な記憶装置に、読み出し/書き込みを行うためのドライブとを備え、一方、各クライアント110の周辺機器は、モニタと、キーボードと、マウスと、(対応するアクセス・プロバイダを介して)ネットワーク210にアクセスするためのWi-Fi型などの無線NIC(WNIC)とを備える。
【0033】
図7を参照すると、本開示の一実施形態による解決策を実装するために使用され得る主要ソフトウェア構成要素の役割を表すコラボレーション図が示されている。
【0034】
全てのソフトウェア構成要素(プログラムおよびデータ)は、全体として、参照符号300を用いて示されている。ソフトウェア構成要素300は、典型的には大容量メモリ内に格納されており、プログラムが実行されるとき、オペレーティング・システムおよび他のアプリケーション・プログラム(図示せず)と共に、各コンピューティング・マシンの作業メモリ内に(少なくとも部分的に)ロードされる。プログラムは、たとえば取り外し可能な記憶装置から、またはネットワークから、最初に大容量メモリ内にインストールされる。詳細には、図は、ソフトウェア構成要素300の静的構造と、一連の交換されるメッセージによるそれらの動的挙動との両方を表しており、メッセージの各々は、対応するコンピューティング・マシン上で指定された論理的機能を実行するための1つまたは複数の実行可能な命令(モジュール、セグメント、またはコードの一部分)に対応し得る、対応する作業(符号「A」が先頭のシーケンス番号で示される)を表している。
【0035】
具体的には、サーバ105は、以下の構成要素を備える。コレクタ305は、対応するコーパス内に含まれることになる、任意の新しい文書を収集する。たとえば、コレクタ305は、インターネット内で付加または更新されたページの少なくとも一部分をダウンロードする、ウェブ・クローラ(またはスパイダ)である-作業「A1.収集」。インデクサ310は、コーパスの文書にそれらのランキングのためのインデックスをつける。たとえば、インデクサ310は、「Bag of Words(語の袋)」モデルを適用し、各文書が単にその用語によって表現され、用語の順序を考慮しない(しかし用語の多重性は考慮する)。この目的のために、インデクサ310は、語彙リポジトリ315に(読出し/書込みモードで)アクセスする。語彙リポジトリ315は、文書のコーパスに関連する情報を、逆インデックス・データ構造(内容物から位置にマッピングする)内に格納する。詳細には、語彙リポジトリ315は、文書のコーパスの(共通)語彙の全ての用語について、対応するエントリを備え、各々が、用語が出現する文書に関する情報を有するリストを格納する。新しい文書が加えられたか、または(古い)文書が削除されると、いつでも文書のコーパスは変更され、インデクサ310は、それに応じて語彙リポジトリ315を更新する。詳細には、新しい文書のために、インデクサ310は、(その長さに従って正規化された)文書d内の用語tの反復に相当する、(新しい)文書dの各用語tの用語頻度tft,dを決定し、
tft,d=Tt,d/T
となり、このとき、Tt,dは、用語tが文書d内に出現する回数であり、Tは、文書d内に存在する用語の総数である(すなわち0<tft,d≦1)。用語頻度tft,dは、文書d内の用語tの反復と共に増加し、それゆえ用語頻度tft,dは、文書dにおける用語tの重要性を表している。文書d内の用語t毎に、インデクサ310は、文書dの識別子(たとえばページのURL)に関連付けて用語tの用語頻度tft,dを、語彙リポジトリ315内の用語tのエントリ内に、必要であればエントリを作成して、保存する(逆に、古い文書では、インデクサ310は、対応する情報を語彙リポジトリ315から除去する)-作業「A2.tf計算」。いずれの場合でも(文書のコーパスが変化するときはいつも)インデクサ310は、変化によって影響を受けた文書のコーパスの各用語tの逆文書頻度idfを計算する(新しい文書または古い文書が、それを含んでいるからである)。逆文書頻度idfは、対数スケールにおける、用語tが出現する文書の割合の逆数に等しく、Dをコーパス内の文書数、dfを用語tが出現する文書の数とすると、
idf= log10(D/df
となる(ここでidf≧0)。逆文書頻度idfは、用語tが共通のとき、非常に低く、用語tがコーパスの全ての文書内に存在するとき、idf=0に低下し、一方、用語tが希少であるほど、その逆文書頻度idfは高くなり、それゆえ逆文書頻度idfは、概して用語tの特殊性を表している。インデクサ310は、そのように計算された各逆文書頻度idfを、語彙リポジトリ315内の対応する用語tのエントリ内に保存する-作業「A3.idf計算」。
【0036】
本開示の実施形態による解決策では、計算器320および/または(統語的)パーサ325が、それらの類似度指数を調整するための、コーパスの文書の意味的豊富度指標の対応する成分を決定する。この目的のため、計算器320およびパーサ325は、関連情報を格納する文書豊富度リポジトリ330に(読出し/書込みモードで)アクセスする。
【0037】
詳細には、文書のコーパスが変化するときに、計算器320は、それらの(語彙リポジトリ315から抽出される)逆文書頻度idfの平均avg(idf)に等しい、文書のコーパスの用語tの特殊性しきい値を計算する。Tを文書のコーパス内に存在する用語tの総数とすると、
【数1】

となる。平均avg(idf)より大きい逆文書頻度idfを有する用語tは、より希少であり、よって特殊であり、一方、平均avg(idf)より小さい逆文書頻度idfを有する用語tは、より普通であり、よって一般的である。計算器320は、逆文書頻度idfの平均avg(idf)を文書豊富度リポジトリ330内に保存する-作業「A4.avg(idf)計算」。さらに、新しい文書毎に、計算器320は、その意味的豊富度指標の特殊性成分(特殊性指標と呼ばれる)を計算する。(新しい)文書dの特殊性指標SRsは、(文書dの長さによって正規化された)希少であるその用語tの数に等しく、Nst,dを文書d内の希少な用語tの数、すなわち(可能な限り厳密に)その平均avg(idf)より大きい逆文書頻度idfを有する用語tの数とし、Tは、やはり文書d内に存在する用語の総数であるとすると、
SRs=Nst,d/T
となる(ここで0≦SRs≦1)。文書d内の希少な用語tの密度が高いほど、その特殊性指標SRsはより大きくなり、それゆえその特殊性指標SRsは、文書dの語彙的多様性を表している。計算器320は、文書dの特殊性指標SRsを、(その識別子によって示された)豊富度文書リポジトリ330内の文書d用のエントリ内に、必要であればそれを作成し、保存する(逆に、古い文書では、計算器320は、対応する情報を、意味的豊富度リポジトリ330から除去する)-作業「A5.SRs計算」。いずれの場合でも(文書のコーパスが変化するときはいつも)計算器320は、文書のコーパスの特殊性指標SRsの平均avg(SRs)を計算し、Dをやはりコーパス内の文書の数とすると、
【数2】

となる。計算器320は、特殊性指標SRsの平均avg(SRs)を文書豊富度リポジトリ330内に保存する-作業「A6.avg(SRs)計算」。
【0038】
加えてまたは代替として、新しい文書毎にパーサ325は、新しい文書をパースして句(すなわち、対応する言語のシンタックスにより、文の完全な文法上の単位を定義する、1つまたは複数の単語のグループ)を識別する。句は、その動詞句(すなわち、少なくとも1つの動詞およびその従属句からなる任意の句)を含む。たとえば、この結果は、発言の各部分に関する情報がタグの形態で付加される、自然言語処理(NLP)品詞(POS)タグ付けを適用することによって達成される。パーサ325は次に、新しい文書の意味的豊富度指標の複雑性成分(複雑性指標と呼ばれる)を計算する。(新しい)文書dの複雑性指標SRcは、(その長さにより正規化された)文書dの動詞句の数に等しく、NVP,dを文書d内の動詞句の数、VPを文書d内の(固有の)句の数とすると、
SRc=NVP,d/VP
となる(ここで0≦SRs≦1)。文書d内の動詞句の数が多いほど、その複雑性指標SRcは大きく、それゆえ複雑性指標SRcは、その表現度を表す文書dの統語的複雑性を定量化する。パーサ325は、文書dの複雑性指標SRcを、豊富度文書リポジトリ330内の対応するエントリ内に、保存する(逆に、古い文書では、パーサ325は、対応する情報を、意味的豊富度リポジトリ330から除去する)-作業「A7.SRc計算」。いずれの場合でも(文書のコーパスが変化するときはいつも)パーサ325は、文書のコーパスの複雑性指標SRcの平均avg(SRc)を計算し、Dをやはりコーパス内の文書の数とすると、
【数3】

となる。パーサ325は、複雑性指標SRcの平均avg(SRc)を文書豊富度リポジトリ330内に保存する-作業「A8.avg(SRc)計算」。
【0039】
通常のように、ウェブ・サーバ335は、(図中では1台のみ示されている)クライアント120によって、サーバ105に、(インターネットをサーフィンするために通常用いられる)ブラウザ340を用いてアクセスしながら、送信される、任意の要求を処理する。本開示に関連する限りでは、クライアント120のユーザは、文書を検索するためのクエリをタイプし、次に送信する。各クエリは、所望される文書の内容を識別するために適合された、ユーザが考える(たとえばキーワードなどの)1つまたは複数の用語によって、定められる。ブラウザ340は、クエリを、結果としてそれを(ウェブ)検索エンジン345に渡すことになる、ウェブ・サーバ335に送信する-作業「A9.クエリ」。
【0040】
検索エンジン345は、VSM技術によってコーパスの各文書とクエリとの間の類似度指数を計算する比較器350を利用する。この目的のために、比較器350は、同様にその長さにより正規化されたクエリq内の用語tの反復に等しい、クエリqの各用語tの用語頻度tft,qを決定する。Tt,qを用語tがクエリq内に出現する回数とし、Tをクエリq内に存在する用語の総数とすると、
tft,q=Tt,q/T
となる(ここで0<tft,q≦1)-作業「A10.tf計算」。比較器350は次に、文書d内の用語tの用語頻度tft,dに(語彙リポジトリ315から抽出される)文書のコーパス内の用語tの逆文書頻度idfを乗じた積と等しい、文書dの各用語tのtf-idf重みwt,dを計算すると、
t,d=tft,d・idf
となる。tf-idf重みwt,dは、文書dのみによって決まる局所変数(用語頻度tft,d)と、文書の全コーパスによって決まるグローバル変数(逆文書頻度idf)との組合せによる、文書d内の用語tの実際の重要性を表し、詳細には、tf-idf重みwt,dは、文書d内の用語tの反復により(比例的に)、または文書のコーパス内で用語tがいかに希少かにより(その効果を放出するように対数的に)、あるいはその両方により増加する。同様に、比較器350は、(クエリq内の用語tの用語頻度tft,qに、文書のコーパス内の用語tの逆文書頻度idfを乗じた積と等しい)クエリqの各用語tのtf-idf重みwt,qを計算すると、
t,q=tft,q・idf
となる。文書dおよびクエリqはこのとき、(文書のコーパス内に存在する用語tの総数Tに等しい次元数を有する)T次元ベクトル空間内で表現される。用語tは、ベクトル空間の軸であり、一方、文書dおよびクエリqは、文書ベクトル
【数4】
およびクエリ・ベクトル
【数5】
をそれぞれ定義し、それらは、対応するtf-idf重みwt,dおよびwt,qによって示される点によって、それぞれ識別される(用語tが、文書d内またはクエリq内に存在しない場合は0に設定される)。この時点で、比較器350は、クエリqと文書dとの間の類似度指数を、(共通であるそれらの用語tにより決まる)それらのベクトルの角度差に応じて計算する。詳細には、類似度指数SIM(q,d)は、文書ベクトル
【数6】
とクエリ・ベクトル
【数7】
との間の角度Θの余弦に設定され、ベクトル
【数8】

【数9】
との長さで正規化されたスカラ積に等しく、
【数10】

となる。類似度指数SIM(q,d)は、角度Θと共に、ベクトル
【数11】
およびベクトル
【数12】
が整列している(クエリqの全ての用語tが、文書d内に存在しているので、文書dが、クエリqに非常に類似していることを意味する)ときの1から、ベクトル
【数13】
およびベクトル
【数14】
が直交する(クエリqの用語tが、文書d内に存在しないので、文書dが、クエリqと非常に異なることを意味する)ときの0まで、単調に減少する-作業「A11.SIM計算」。
【0041】
本開示の実施形態による解決策では、アジャスタ355は、コーパスの文書の類似度指数を、それらの意味的豊富度により調整する。詳細には、アジャスタ355は、その特殊性指標SRs(文書豊富度リポジトリ330から抽出される)のピボット正規化関数に等しい、コーパスの各文書dの特殊性(を調整する)因子ADJsを計算すると、
ADJs=1-k+k・SRs/avg(SRs)
となり、ここでkは、調整変数(0<k≦1)である。特殊性因子ADJsは、文書dの特殊性指標SRsがその平均avg(SRs)に等しいとき、1に等しく、一方、文書dの特殊性指標SRsがその平均avg(SRs)より大きいとき、1より大きくなり、文書dの特殊性指標SRsがその平均avg(SRs)より低いとき、1より低くなる。調整変数kは、(k=0のときの0からk=1のときの最大まで)特殊性因子ADJsに対する特殊性指標SRsの効果を強調する-作業「A12.ADJs計算」。
【0042】
加えて、または代替として、同様に、アジャスタ355は、その複雑性指標SRc(文書豊富度リポジトリ330から抽出される)のピボット正規化関数に等しい、コーパスの各文書dの複雑性(を調整する)因子ADJcを計算すると、k’を上述と同様の、または上述とは異なる調整変数とし、
ADJc=1-k’+k’・SRc/avg(SRc)
となる(0<k’≦1である)。この場合も同様に、複雑性因子ADJcは、文書dの複雑性指標SRcがその平均avg(SRc)に等しいとき、1に等しく、一方、文書dの複雑性指標SRcがその平均avg(SRc)より大きいとき、1より大きくなり、文書dの複雑性指標SRcがその平均avg(SRc)より低いとき、1より低くなる。調整変数k’はやはり、(k’=0のときの0からk’=1のときの最大まで)複雑性因子ADJcに対する複雑性指標SRcの効果を強調する-作業「A13.ADJc計算」。
【0043】
この時点で、アジャスタ355は、各文書dの類似度指数SIM(q,d)を、(アジャスタ355の構成により)それに特殊性因子ADJsまたは複雑性因子ADJc、あるいはそれらの両方を乗じて、(事前に比較器350によって計算された)クエリqに関して調整して、
SIM(q,d)=ADJs・SIM(q,d)、
SIM(q,d)=ADJc・SIM(q,d)、
または、
SIM(q,d)=ADJs・ADJc・SIM(q,d)
となる。このようにして、(語彙的により多様であることで)1より大きいその特殊性因子ADJsを有するまたは(統語的により複雑であることで)1より大きいその複雑性因子ADJcを有する、あるいはその両方を有する、各文書dの類似度指数SIM(q,d)は、増加し、一方、(語彙的により多様でないことで)1より小さいその特殊性因子ADJsを有するまたは(統語的により複雑でないことで)1より小さいその複雑性因子ADJcを有する、あるいはその両方を有する、各文書dの類似度指数SIM(q,d)は、減少する(その特殊性因子ADJsおよび複雑性因子ADJcが1に等しい各文書dの類似度指数SIM(q,d)は、変化しないままである)。上述した類似度指数SIM(q,d)の異なる調整の選択は、簡潔性と精度との相反する要件間の(いずれの場合も、特に複雑性因子ADJcの決定のために、該当する処理は、オフラインで実行されるので、実際上問題があってはならない、計算用資源に関する追加の要件と共に)トレードオフとなる-作業「A14.SIM調整」。
【0044】
この時点で、通常のように検索エンジン345は、コーパスの文書を、それらの(ことによると更新された)類似度指数SIM(q,d)が減少していく順序でランキングする。検索エンジン345は次に、クエリqに最も適切であろう、より大きい類似度指数SIM(q,d)(たとえば、先頭の10~20)を有する文書を選択する-作業「A15.ランキング」。検索エンジン345はそれから、そのように選択された(最も関連する)文書のリストを、クライアント120にクエリqへの回答として、(ウェブ・サーバ335を通して)返す。クライアント120のブラウザ340は、ユーザが(もしあるなら)実際に目的の文書を選択できるように、このリストを受信し、それをそのモニタに表示する-作業「A16.返送」。
【0045】
ここで図8図9を参照すると、本開示の一実施形態による解決策の実装に関するアクティビティのフローを説明するアクティビティ図が示されている。
【0046】
詳細には、図は、方法400を用いて文書をランキングするために使用され得る、例示的な処理を示す。この点で、各ブロックは、指定された論理的機能を、サーバ上で実行するための、1つまたは複数の実行可能な命令に対応し得る。
【0047】
ループは、文書のコーパスにインデックスをつけるために継続的に実行され、ブロックS402において開始されると、コレクタが、コーパス内に含められることになる任意の新しい文書を収集する(たとえば、先行のループの繰り返しに関して、インターネット内で付加または更新済みのページの少なくとも一部をダウンロードすることによって)。内側のループが次に、インデクサによって(付加または更新される)任意の新しい文書、または(削除される)任意の古い文書を処理するために、実行される。この目的のために、インデクサはブロックS404で、新しい/古い文書がさらにそれによって処理されることになるか否かを確認する。もしそうである場合、アクティビティのフローはブロックS406で、処理されることになる文書の種類により、分岐する。文書が新しい場合(すなわち、それが付加または更新済みである)、インデクサはブロックS408で、新しい文書の各用語tの用語頻度tft,dを決定し、それを、新しい文書dの識別子に関連して、(必要であればそれを作成して)語彙リポジトリ内の用語tのエントリ内に保存する。逆に、文書が古い場合(すなわち、それが削除済みである)、インデクサはブロックS410で、語彙リポジトリから対応する情報を除去する。どちらの場合も、処理は次にブロックS404に戻り、さらに処理されることになる新しい/古い文書がなくなり次第(文書のコーパスが、ループの先行の繰り返しに関して、変化しなくなったら速やかに)、処理はブロックS412内に降りる。この時点で、インデクサは、その変化によって影響を受けた文書のコーパスの各用語tがもしあれば(いずれかの新しい/古い文書がそれを含んでいることによる)、各用語tの逆文書頻度idfを計算し、そのように計算された各逆文書頻度idfを、語彙リポジトリ内の対応する用語tのエントリ内に保存する。
【0048】
本開示の実施形態による解決策では、アクティビティのフローはブロックS414で、検索エンジンの構成により、分岐する。検索エンジンが、文書の意味的豊富度指標を、それらの特殊性指標により定義するように構成された場合、計算器はブロックS416で、文書のコーパスの用語tの逆文書頻度idfの平均avg(idf)を計算し、それを文書豊富度リポジトリ内に保存する。
【0049】
処理は次に、ブロックS416から、または検索エンジンが文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されない場合は直接ブロックS414から、ブロックS418へと続く。さらなる内側のループがここで、コーパスの文書の意味的豊富度指標の対応する成分を決定するために、実行される。この目的のために、この時点で計算器は、新しい/古い文書が、ループの先行の繰り返しに関して、それによってさらに処理されることになるか否かを確認する。もしそうである場合、アクティビティのフローはブロックS420で、検索エンジンの構成により、分岐する。検索エンジンが、文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されている場合、アクティビティのフローはブロックS422で、処理されることになる文書の種類により、再び分岐する。文書が新しい場合、計算器はS424で、新しい文書dの特殊性指標SRsを計算し、それを豊富度文書リポジトリ内の文書d用エントリ内に(必要であればそれを作成し)保存する。逆に、文書が古い場合、計算器はブロックS426で、意味的豊富度リポジトリから対応する情報を除去する。アクティビティのフローはブロックS428で、ブロックS424から、ブロックS426から、または、検索エンジンが文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されない場合は直接ブロックS420から、再び合流する。この時点で、アクティビティのフローは、検索エンジンの構成により、さらに分岐する。検索エンジンが、文書の意味的豊富度指標をそれらの複雑性指標により定義するように構成されている場合、アクティビティのフローはブロックS430で、処理されることになる文書の種類により、再び分岐する。文書が新しい場合、パーサはブロックS432で、新しい文書dの複雑性指標SRcを(その動詞句を含むその句を識別するために、新しい文書をパースすることによって)計算し、それを豊富度文書リポジトリ内の対応するエントリ内に保存する。逆に、文書が古い場合、パーサはブロックS434で、意味的豊富度リポジトリから対応する情報を除去する。
【0050】
処理は次に、ブロックS432から、ブロックS434から、または検索エンジンが文書の意味的豊富度指標をそれらの複雑性指標により定義するように構成されない場合は直接ブロックS428から、ブロックS418へと戻り、さらに処理されることになる新しい/古い文書がなくなり次第(文書のコーパスが、ループの先行の繰り返しに関して、変化しなくなったら速やかに)、処理はブロックS436内に降りる。この時点で、アクティビティのフローは、検索エンジンの構成により、さらに分岐する。検索エンジンが、文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されている場合、計算器はブロックS438で、文書のコーパスの特殊性指標SRsの平均avg(SRs)を計算し、それを文書豊富度リポジトリ内に保存する。処理は次に、ブロックS438から、または検索エンジンが文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されない場合は直接ブロックS436から、ブロックS440へと続く。この時点で、アクティビティのフローは、検索エンジンの構成により、さらに分岐する。検索エンジンが、文書の意味的豊富度指標を、それらの複雑性指標により、定義するように構成された場合、計算器はブロックS442で、文書のコーパスの複雑性指標SRcの平均avg(SRc)を計算し、それを文書豊富度リポジトリ内に保存する。
【0051】
処理は次に、ブロックS442から、または検索エンジンが文書の意味的豊富度指標をそれらの複雑性指標により定義するように構成されていない場合は、同一の動作を継続的に繰り返すために直接ブロックS440から、ブロックS402へと戻る。
【0052】
完全に別個の方法で、処理は、検索エンジンが任意のクライアントのブラウザによってそれに送信されるクエリを受信するときはいつも、ブロックS444からブロックS446へ渡される。それに応答して、比較器は、クエリqの各用語tの用語頻度tft,qを決定する。比較器はブロックS448で、クエリqの各用語tのtf-idf重みwt,qを計算する。
【0053】
ループは次に、VSM技術によってコーパスの各文書とクエリとの間の類似度指数を計算するために実行される。ループは、ブロックS450で開始され、コーパスの(現在の)文書が、考慮される(先頭のものから任意の恣意的な順序で開始する)。比較器はブロックS452で、文書dの各用語tのtf-idf重みwt,dを計算する。比較器はブロックS454で次に、クエリqと文書dとの間の類似度指数SIM(q,d)を、(共通であるそれらの用語tにより決まる、それらのベクトルの角度差に応じて)計算する。
【0054】
本開示の実施形態による解決策では、アクティビティのフローはブロックS456で、検索エンジンの構成により、分岐する。検索エンジンが、文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成された場合、アジャスタはブロックS458で、文書dの特殊性因子ADJs(文書豊富度リポジトリから抽出されるその特殊性指標SRsのピボット正規化関数と等しい)を計算する。アジャスタはブロックS460で、クエリqに関する文書dの類似度指数SIM(q,d)に、特殊性因子ADJsを乗じる。処理は次に、ブロックS460から、または検索エンジンが文書の意味的豊富度指標をそれらの特殊性指標により定義するように構成されない場合は、直接ブロックS456から、ブロックS462へと続く。この時点で、アクティビティのフローは、検索エンジンの構成により、さらに分岐する。検索エンジンが、文書の意味的豊富度指標をそれらの複雑性指標により定義するように構成されている場合、アジャスタはブロックS464で、文書dの複雑性因子ADJc(文書豊富度リポジトリから抽出されるその複雑性指標SRcのピボット正規化関数と等しい)を計算する。アジャスタはブロックS466で、(ことによると既に特殊性因子ADJcが乗じられている)クエリqに関する文書dの類似度指数SIM(q,d)に、複雑性因子ADJcを乗じる。処理は次に、ブロックS466から、または検索エンジンが文書の意味的豊富度指標を、それらの複雑性指標により定義するように構成されない場合は、直接ブロックS462から、ブロックS468へと続く。この時点で、テストが、コーパスの最後の文書が処理されたか否かを確認するために、実施される。もしそうでない場合、アクティビティのフローは、コーパスの次の文書上で同一の動作を繰り返すために、ブロックS450に戻る。逆の場合(コーパスの全ての文書が処理されたとき)、ブロックS470内に降りることによって、ループから抜ける。
【0055】
この時点で、通常のように検索エンジンは、コーパスの文書を、それらの(ことによると更新された)類似度指数SIM(q,d)が減少していく順序でランキングし、より高いその値を有する文書を選択する。検索エンジンはブロックS472で次に、そのように選択された(最も関連する)文書のリストを、クライアントにクエリqへの回答として、(ウェブ・サーバを通して)返す(ユーザが、もしあるなら、実際に目的の文書を選択できるように、このリストを受信してそれをそのモニタに表示するクライアントのブラウザを用いて)。処理は次に、さらなるクエリの送信を待つ、ブロックS444に戻る。
【0056】
本来、ローカルの特定の要件を満足するために、当業者ならば、本開示への多くの論理的または物理的あるいはその両方の変形および変更を適用するであろう。より具体的には、本開示は、その1つまたは複数の実施形態を用いて、ある程度の特異性と共に説明されたが、形態および詳細における多様な省略、置換、および変更が、他の実施形態と同様に、可能であることが理解されるべきである。特に、本開示の異なる実施形態はいっそう、そのより完全な理解を提供するために、上述の説明内で表明された、(数値的値などの)特定の詳細なしで、実施され得る。逆に、周知の特徴は、不必要な詳細により、説明を不明瞭にしないように、省略または簡易化された可能性がある。また、本開示の任意の実施形態に関連して説明される、特定の構成要素または方法のステップ、あるいはその両方は、他の任意の実施形態内に、全体の設計選択の事柄として、組み込まれ得ることが、明確に意図されている。いずれの場合でも、各数値的値は、(既にそうなっていない限り)およそという用語によって修飾されたものとして、読まれるべきであり、数値的値の各範囲は、(その終点を含む)範囲内の連続体に沿った任意の可能な数字を明確に指定することとして、意図されるべきである。また、順序を示すまたは他の修飾語句は単に、ラベルとして同一の名前を有する要素を区別するために使用され、しかしそれら自体で、何ら優先度、優先順位、または順序を暗示しない。用語、含む、備える、有する、収容する、および包含する(およびその任意の変化形)は、開いた非網羅的な意味をもつ(すなわち、記載された項目に限定されない)ことを意図されるべきであり、用語、に基づいて、に依存して、に従って、の機能(およびその任意の変化形)は、非排他的な関係(すなわち包含される可能性のあるさらなる変項を有する)として意図されるべきであり、用語a/anは、1つまたは複数の項目(明確にそうでないと示されない限り)として意図されるべきであり、用語、ための手段(または任意のミーンズ・プラス・ファンクション形式)は、関連する機能を実行するために、適合または構成された任意の構造として意図されるべきである。
【0057】
たとえば、一実施形態は、コンピュータ・システムにおける複数の文書をランキングするための方法を提供する。ただし、文書は、任意の数および任意の種類(たとえば、文字、画像、音声、マップ)で存在し得る。さらに、文書は、任意のコンピュータ・システムで、任意の方法で利用可能(たとえば、ローカルに格納された任意のソースからダウンロード可能)であり得る(以下を参照のこと)。
【0058】
ある実施形態では、文書の各々が、複数の文書用語を含む。ただし、用語は、任意の数および任意の種類(たとえば、語、句、メタデータ)で存在し得る。さらに、考慮される用語は、文書の全ての用語、または(たとえば、対応する言語の最も一般的な語からなるaなどのストップワードをフィルタリングで除外することによる)その一部のみである。
【0059】
ある実施形態では、方法は、以下のコンピューティング・マシン制御下のステップを含む。ただし、これらのステップは、任意のコンピューティング・マシンによって実行され得る(以下を参照のこと)。
【0060】
ある実施形態では、方法は、クエリを受信することを含む。ただし、クエリは、任意の方法で(たとえば、手動入力、自動作成、事前定義、ローカルでも、またはリモートでも)受信され得る。
【0061】
ある実施形態では、クエリは、1つまたは複数のクエリ用語を含む。ただし、クエリ用語は、任意の数および任意の種類(文書用語に関して同一または異なる)で存在し得る。さらに、クエリは、任意の構造(たとえば、キーワードの簡潔なリスト、任意の論理演算子と組み合わされたキーワード)を有し得る。
【0062】
ある実施形態では、クエリ用語は、文書選択用である。ただし、クエリは、任意の目的(たとえば、インターネットまたは図書館の本内のページの検索などの任意の情報検索用途、アンチスパム・プログラムなどの任意のフィルタリング用途)のためのものであり得る。
【0063】
ある実施形態では、方法は、クエリと文書との間の対応する類似度指数を計算することを含む。ただし、類似度指数は、(たとえば、任意の連続的または離散的値を有する)任意の種類のものであり得る。
【0064】
ある実施形態では、類似度指数の各々は、クエリ用語と対応する文書の文書用語との間の比較により計算される。ただし、類似度指数は、(たとえば、VSM、集合論モデル、確率モデルなどの任意の代数的モデルによる)任意の方法で計算され得る。
【0065】
ある実施形態では、方法は、文書の対応する意味的豊富度指標を決定することを含む。ただし、意味的豊富度指標は、任意の種類(たとえば、量的測定基準、質的レベル)のものであってもよく、任意の方法(たとえば、語彙的多様性、統語的複雑性、特徴数、意味的近傍密度、意味的多様性、具体性、感情価、イメージアビリティ、またはその任意の組合せ)で決定されてもよい。
【0066】
ある実施形態では、方法は、対応する意味的豊富度指標による類似度指数を調整することを含む。ただし、類似度指数は、任意の方法(たとえば、乗算機能または加算機能で、線形にまたは任意の非線形の方法で、連続的または離散的に)で調整され得る。
【0067】
ある実施形態では、方法は、文書の少なくとも一部分を対応する調整済みの類似度指数により、ランキングすることを含む。ただし、文書は、任意の数および任意の方法(たとえば、最も関連する文書のリストまたはそれらを直接返す、単一の文書のみを選択する、将来の利用のために全ての文書を単純に順序付ける)でランキングされ得る。
【0068】
ある実施形態では、対応する意味的豊富度指標を決定する当該ステップは、意味的豊富度指標の各々を、対応する文書の任意の希少な用語により、計算することを含む。ただし、意味的豊富度指標は、希少な用語による任意の方法(たとえば、それらの数の任意の線形または非線形関数に基づく、文書のコーパスに特化して、または対応する言語に一般に、関連するそれらの特殊性の任意の測定など)で計算され得る。
【0069】
ある実施形態では、希少な用語は、頻度しきい値より低い頻度で文書内に存在する、文書用語からなる。ただし、頻度しきい値は、任意の方法(たとえば、対応する言語により予め定義された値に設定された、文書用語の分布の任意の統計的変数により)で定義され得る。
【0070】
ある実施形態では、意味的豊富度指標の各々を、対応する文書の任意の希少な用語により計算する当該ステップは、頻度しきい値を、文書内の文書用語の分布の統計的分析により計算することを含む。ただし、頻度しきい値は、(たとえば、任意の数および種類の、任意の方法で組み合わされる統計的変数による)任意の方法で計算され得る。
【0071】
ある実施形態では、意味的豊富度指標の各々を、対応する文書の任意の希少な用語により計算する当該ステップは、文書用語の対応する逆頻度指標を計算することを含む。ただし、各用語の逆頻度指標は、任意の方法(たとえば、D/df、D/(1+df)、
【数15】
、(D-df)/dfに線形または非線形に基づいて)で計算され得る。
【0072】
ある実施形態では、逆頻度指標の各々は、文書の、対応する文書用語が存在する割合の逆数を示す。ただし、逆頻度指標は、任意の方法(たとえば、対数関数、他の任意の非線形関数、または線形関数でも)で定義され得る。
【0073】
ある実施形態では、意味的豊富度指標の各々を、対応する文書の任意の希少な用語により計算する当該ステップは、特殊性しきい値を、逆頻度指標の中心傾向変数に基づいて、計算することを含む。ただし、中心傾向変数は、任意の種類(たとえば、算術的、幾何学的、または調和的なもの、中央値、最頻値)のものであり得る。さらに、特殊性しきい値は、任意の方法(たとえば、特殊性しきい値を、中心傾向変数またはその割合に等しく設定すること)で、中心傾向変数に基づき得る。
【0074】
ある実施形態では、意味的豊富度指標の各々を、対応する文書の任意の希少な用語により計算する当該ステップは、文書内に存在する文書用語の特殊性しきい値よりも大きい逆頻度指標により、意味的豊富度指標の各々を計算することを含む。ただし、各意味的豊富度指標は、任意の方法で(たとえば、対応する逆頻度指標の合計、積、または他の任意の関数により)計算され得る。
【0075】
ある実施形態では、対応する逆頻度指標を計算する当該ステップは、対数変換を逆頻度指標に適用することを含む。ただし、対数変換は、任意の種類のもの(たとえば、任意の底を有する対数に基づく)であり得る。
【0076】
ある実施形態では、対応する意味的豊富度指標を決定する当該ステップは、意味的豊富度指標の各々を、対応する文書の統語的複雑性により、計算することを含む。ただし、意味的豊富度指標は、統語的複雑性による任意の方法(たとえば、その任意の定量化の任意の線形または非線形関数に基づいて、複雑統語的単位、動詞、前置詞、副詞、形容詞、またはその任意の組合せに基づくなど)で計算され得る。
【0077】
ある実施形態では、意味的豊富度指標の各々を、対応する文書の統語的複雑性により計算する当該ステップは、文書の各々の統語的複雑性を、文書内に存在する任意の複雑統語的単位により、定量化することを含む。ただし、複雑統語的単位は、統語的複雑性を定量化するために、任意の方法(たとえば、それらの数に応じて、重み関数を、それらの長さなどの複雑統語的単位の任意の特性に基づいて適用する)で使用され得る。
【0078】
ある実施形態では、複雑統語的単位は、複雑性しきい値を超える複雑性を有する、任意の統語的単位からなる。ただし、複雑統語的単位は、任意の方法(たとえば、あらゆる動詞句、あらゆる前置詞句、所定の長さを超える動詞/前置詞句、またはその任意の組合せ)で定義され得る。
【0079】
ある実施形態では、文書の各々の統語的複雑性を定量化する当該ステップは、対応する複雑統語的単位を定義する文書の各々内に存在する、任意の動詞句を識別することを含む。ただし、各文書の動詞句は、任意の方法で(たとえば、マルコフモデルまたは動的計画法を用いるなど、任意の方法で文書をタグ付けすることによって、あるいはより一般的に、任意の注釈、抽象化、またはその分析あるいはその組合せによって)識別され得る。
【0080】
ある実施形態では、方法は、対応する文書内に存在する希少な用語に各々応じて、意味的豊富度指標の対応する特殊性成分を計算することを含む。ただし、各文書の特殊性成分は、任意の方法でその希少な用語により、計算され得る(上記参照のこと)。
【0081】
ある実施形態では、方法は、対応する文書の統語的複雑性に各々応じて、意味的豊富度指標の対応する複雑性成分を計算することを含む。ただし、各文書の複雑性成分は、任意の方法でその統語的複雑性により、計算され得る(上記参照のこと)。
【0082】
ある実施形態では、方法は、類似度指数の各々を、対応する特殊性成分と複雑性成分との組合せにより、調整することを含む。ただし、各類似度指数は、対応する特殊性成分と複雑性成分との任意の組合せにより(たとえば、乗算関数または加算関数あるいはその両方、線形的または任意の非線形的あるいはその両方の方法を用いて)、調整され得る。
【0083】
ある実施形態では、文書の対応する意味的豊富度指標を決定する当該ステップは、意味的豊富度指標の各々を、対応する文書の長さ指標により、正規化することを含む。ただし、各文書の長さ指標は、任意の方法で(たとえば、その全ての用語、そのストップワードのない用語、その句、その文の数により)定義されてもよく、意味的豊富度指標を、任意の方法で(たとえば、そのままでまたはその任意の関数により、それを個別に、意味的豊富度指標の構成要素の少なくとも一部に、または全体の意味的豊富度指標に包括的に、適用することによって)正規化するために使用され得る。いずれの場合でも、この特徴も、簡易化された実施態様(たとえば、コーパスの文書が均一の長さを有する場合)では、省略され得る。
【0084】
ある実施形態では、類似度指数を調整する当該ステップは、類似度指数の各々に、対応する意味的豊富度指標に基づく、少なくとも1つのピボット正規化関数を乗じることを含む。ただし、ピボット正規化関数は、任意の数(たとえば、次に任意の方法で組み合わせる意味的豊富度指標の構成要素毎に1つ、または意味的豊富度指標の構成要素を任意の方法で組み合わせ、次に単一のピボット正規化関数をそれらの組合せに適用することによって、あるいはその両方)で、任意の種類のもの(たとえば、その調整変数をカスタマイズする可能性を有するまたは有さない)であり得る。
【0085】
ある実施形態では、対応する類似度指数を計算する当該ステップは、類似度指数をベクトル空間モデル技術により計算することを含む。ただし、VSM技術は、任意の種類の(たとえば、標準的、一般化された、トピックに基づいた)ものであり得る。
【0086】
ある実施形態では、方法は、クエリに応答してランキングされた文書のリストを返すことを含む。ただし、リストは、任意の種類の(たとえば、インターネット内のページのURLなどのそれらのアドレスによって、または他の任意の方法では、データベース内のそれらの名称、ファイル・システム内のそれらのパスなどによって、文書を識別する)ものであってよく、任意の方法で(たとえば、ローカルでまたはリモートで)返され得る。
【0087】
ある実施形態では、リストは、調整中の対応する類似度指数の減少していく順序で、少なくともその一部分を表示させるために使用される。ただし、リストの文書は、任意の数で(たとえば、数ページで分割してまたは全て一緒に)、任意の目的のために(たとえば、それらをブラウジング、ダウンロード、読み出すために)表示され得る。
【0088】
一般に、類似する考察は、同一の解決策が同等の方法(より多くのステップまたはその一部分の同一の機能を有する類似したステップを用いること、本質的でないいくつかのステップを除去すること、またはさらなるオプションのステップを付加することによって)を用いて実施される場合、適合する。さらに、ステップは、異なる順序で、並行して、または(少なくとも部分的に)交互方式で実行され得る。
【0089】
ある実施形態は、コンピュータ・システムに、上述の方法を実行させるように構成された、コンピュータ・プログラムを提供する。ある実施形態は、それに内蔵されたプログラム命令を含むコンピュータ可読記憶媒体を備える、コンピュータ・プログラム製品を提供し、プログラム命令は、コンピュータ・システムによって実行可能であり、コンピュータ・システムに同一の方法を実行させる。ただし、コンピュータ・プログラムは、任意のコンピュータ・システム上で実行され得る(以下を参照のこと)。また、ソフトウェア・プログラムは、独立型のモジュールとして、前から存在するソフトウェア・プログラム用のプラグイン(たとえば、検索エンジン)として、または後者の場合は直接的にも、実装され得る。いずれの場合でも、本発明の一実施形態による解決策は、(たとえば、半導体材料の1つまたは複数のチップ内に集積化された電子回路による)ハードウェア構造と共にでも、またはソフトウェアと適切にプログラムされたもしくは他の方法で構成されたハードウェアとの組合せと共にでも、実装されることに役立つ。
【0090】
ある実施形態は、上述の方法のステップを実行するために構成された手段を含むシステムを提供する。ある実施形態は、同方法の各ステップを実行するための回路(すなわち、たとえばソフトウェアによって、適切に構成された任意のハードウェア)を含むシステムを提供する。ただし、方法は、任意の数および種類の、それらの間で任意のネットワーク(たとえば、ローカル、広域、グローバル、セルラー方式、またはサテライト型の)を介して通信する、クライアント(たとえば、デスクトップ、ラップトップ、スマートフォン、タブレット)による利用のために、任意のサーバ(たとえば、物理的コンピューティング・マシン、仮想コンピューティング・マシン、クラウドサービス)上で、または任意の独立型のコンピューティング・マシン上で実行され得る。
【0091】
一般に、類似する考察は、システムが、異なる構造を有する、または同等の構成要素を含む場合、あるいはそれが他の動作特性を有する場合、適合する。いずれの場合でも、あらゆるその構成要素が、より多くの構成要素に分離され得、または2つ以上の構成要素が、単一の要素に合体され得る。さらに、各構成要素は、対応する動作を並列に実行することを支援するために、複製され得る。また、そうでないことを明示しない限り、異なる構成要素間の任意の相互作用は一般に、連続であることを必要とせず、それは、直接的でも1つまたは複数の中間体を介して間接的でもあり得る。
【0092】
本発明は、任意の可能な技術的に詳細な統合化レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるための、コンピュータ読み取り可能なプログラム命令を備えた、コンピュータ可読記憶媒体(複数も可)を含み得る。コンピュータ可読記憶媒体は、命令実行装置による利用のために、命令を保持、格納可能である、有形の装置であり得る。コンピュータ可読記憶媒体は、たとえば、限定はされないが、電子ストレージ・デバイス、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、または任意の好適な前述の組合せであり得る。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、以下の、ポータブル・コンピュータ・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)ディスク、パンチカードまたは命令をその上に記録させた溝中の隆起構造などの機械的エンコード装置、および任意の好適な前述の組合せを含む。コンピュータ可読記憶媒体は、本明細書で用いられるとき、それ自体は、高周波または他の自由伝播する電磁波、導波路または他の伝達媒体を介して伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、あるいは導電線を介して伝達される電気的信号などの、過渡的な信号であると解釈されてはならない。本明細書で説明される、コンピュータ読み取り可能なプログラム命令は、それぞれの演算/処理装置に、コンピュータ可読記憶媒体から、または外部コンピュータもしくは外部記憶装置に、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せを介して、ダウンロードすることができる。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝達、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各演算/処理装置内の、ネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ読み取り可能なプログラム命令を、ネットワークから受け取り、コンピュータ読み取り可能なプログラム命令を、格納のために、それぞれの演算/処理装置内部のコンピュータ可読記憶媒体内に渡す。本発明の動作実行用の、コンピュータ読み取り可能なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械従属命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで、あるいは同様のプログラミング言語で、記述されたソース・コードもしくはオブジェクト・コードであり得る。コンピュータ読み取り可能なプログラム命令は、完全にユーザのコンピュータ上で、一部ユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、一部ユーザのコンピュータ上でかつ一部リモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で、実行され得る。後者の筋書きでは、リモート・コンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意の種類のネットワークを介して接続され得る、あるいは接続は、(たとえば、インターネット・サービス・プロバイダを使うインターネットを介して)外部コンピュータにもたらされ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ読み取り可能なプログラム命令を、コンピュータ読み取り可能なプログラム命令の状態情報を利用し、電子回路をパーソナライズすることによって、実行し得る。本発明の態様は、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図解またはブロック図あるいはその両方を用いて、本明細書で説明された。フローチャート図解またはブロック図あるいはその両方の各ブロック、およびフローチャート図解またはブロック図あるいはその両方内のブロックの組合せは、コンピュータ読み取り可能なプログラム命令によって、実行され得ることが、理解されよう。これらのコンピュータ読み取り可能なプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作を実行するための手段を生み出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され、装置を作り出し得る。これらのコンピュータ読み取り可能なプログラム命令はさらに、その内部に格納された命令を含むコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作の態様を実行する命令を含む製造物を含むべく、コンピュータ、プログラム可能なデータ処理装置または特定の方式で機能する他の装置あるいはその組合せを管理し得るコンピュータ可読記憶媒体内に格納され得る。コンピュータ読み取り可能なプログラム命令はさらに、コンピュータ、他のプログラム可能な装置または他の装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作を実施すべく、コンピュータ、他のプログラム可能なデータ処理装置または他の装置上に、一連の操作上のステップがコンピュータ、他のプログラム可能な装置または他の装置上で実行され、コンピュータ実施処理を作り出すように、装填され得る。図中のフローチャートおよびブロック図は、本発明の各種実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様の、アーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理的機能を実施するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分に相当し得る。いくつかの代替の実施態様では、ブロック内に示された機能は、図中で示された順序から外れて発生し得る。たとえば、連続して示された2つのブロックは、事実上、実質的に並行して実行され得る、またはブロックは、ときには、包含される機能により、逆の順序で実行され得る。ブロック図またはフローチャート図解あるいはその両方の各ブロック、およびブロック図またはフローチャート図解あるいはその両方内のブロックの組合せは、指定された機能または動作を実行する、または専用ハードウェアとコンピュータ命令との組合せを実行する、専用のハードウェア・ベースのシステムによって実施され得る。
【0093】
上述の特徴は、任意の方法で組み合わされ得る。たとえば、上述した特徴の可能な組合せは、以下の、請求項1と請求項2、請求項2と請求項3、請求項3と請求項4、請求項4と請求項5、請求項1ないし5のいずれかと請求項6、請求項6と請求項7、請求項7と請求項8、請求項2ないし5のいずれかの特徴と請求項6ないし8のいずれかと請求項9、請求項1ないし9のいずれかと請求項10、請求項1ないし10のいずれかと請求項11、請求項1ないし11のいずれかと請求項12、請求項1ないし12のいずれかと請求項13、請求項1ないし13のいずれかの方法を実行する命令と請求項14、請求項1ないし13のいずれかの各ステップを実行するための手段(または回路)と請求項15、である。
図1
図2
図3
図4
図5
図6
図7
図8
図9