(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】自動検索辞書およびユーザインターフェイス
(51)【国際特許分類】
G06F 16/00 20190101AFI20240508BHJP
【FI】
G06F16/00
【外国語出願】
(21)【出願番号】P 2018207203
(22)【出願日】2018-11-02
【審査請求日】2021-10-20
【審判番号】
【審判請求日】2023-07-13
(32)【優先日】2017-11-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-02-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】アレクサンダー カッシュクリー
(72)【発明者】
【氏名】バラス ケー.クリシュナン
【合議体】
【審判長】林 毅
【審判官】脇岡 剛
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2004-070636号公報(JP,A)
【文献】特開平11-149484号公報(JP,A)
【文献】特開平02-032470号公報(JP,A)
【文献】特開平08-234987号公報(JP,A)
【文献】米国特許出願公開第2008/0228741号明細書(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F16/00
(57)【特許請求の範囲】
【請求項1】
データセットからコンテンツをフィルタリングすることに使用するための方法であって、デジタルデータ処理システムにおけるサーバデジタルデータデバイスのプロセッサによって実行され、
前記プロセッサにより、サイトと関連付けされたデータセットに対して向けられた検索要求を受け容れるステップであり、前記検索要求は、前記データセットにおける用語のサイト固有関連性を表しているサイト固有ルックアップテーブルにおいて示される用語の中に無い検索用語を含み、関連用語は、同義語、下位概念語、および上位概念語のうちいずれかを含んでいる、ステップと、
前記プロセッサにより、変換関数をコーパスルックアップテーブルに対して適用することによって
、前記サイト固有ルックアップテーブルの形式にフィットされた近似ルックアップテーブルを生成するステップであり、前記コーパスルックアップテーブルは、一般的なコーパスで、前記データセットにおける用語の関連性を示している、ステップと、 前記プロセッサにより、前記近似ルックアップテーブルにおいて示されている、前記検索用語の関連用語である用語を特定するステップと、
前記プロセッサにより、前記サイト固有ルックアップテーブルを、前記検索用語を含むように、かつ、該検索用語を該サイト固有ルックアップテーブルにおいて示される他の用語と関連するものとして表示するように変更するステップであり、前記表示は、前記検索用語と関連しているものとして、前記近似ルックアップテーブルから特定された用語の中からの選択に基づいている、ステップと、
を含む、方法。
【請求項2】
前記方法は、
前記プロセッサにより、前記検索用語、および、前記検索用語の関連用語として前記近似ルックアップテーブルから特定された用語のうちいずれかを含むデジタルコンテンツを、前記データセットからフィルタリングするステップ、を含む、
請求項1に記載の方法。
【請求項3】
前記近似ルックアップテーブルを生成するステップは、
インデックスとして前記データセットからの用語を有しており、かつ、前記変換関数の前記コーパスルックアップテーブルへの適用から結果として生じる値をインデックスにおいて有している、マトリクスとして、前記近似ルックアップテーブルを生成するステップ、を含む、
請求項1に記載の方法。
【請求項4】
前記方法は、
前記プロセッサにより、前記近似ルックアップテーブルにおいて示され、前記検索用語の関連用語である用語を特定するステップ、を含む、
請求項1に記載の方法。
【請求項5】
前記特定するステップにおいて、前記検索用語の関連用語として特定されたサイト用語について、関連用語の選択のために表示するステップ、を含む、
請求項
4に記載の方法。
【請求項6】
データセットからコンテンツをフィルタリングするための方法であって、デジタルデータ処理システムにおけるサーバデジタルデータデバイスのプロセッサによって実行され、
前記プロセッサにより、サイトと関連付けされたデータセットに対して向けられた検索要求を受け容れるステップであり、前記検索要求は、前記データセットにおける用語のサイト固有関連性を表しているサイト固有ルックアップテーブルにおいて示される用語の中に無い検索用語を含み、関連用語は、同義語、下位概念語、および上位概念語のうちいずれかを含んでいる、ステップと、
前記プロセッサにより、変換関数をコーパスルックアップテーブルに対して適用することによって
、前記サイト固有ルックアップテーブルの形式にフィットされた近似ルックアップテーブルを生成するステップであり、前記コーパスルックアップテーブルは、一般的なコーパスで、前記データセットにおける用語の関連性を示している、ステップと、
前記プロセッサにより、前記近似ルックアップテーブルにおいて示されている、前記検索用語の関連用語である用語を特定するステップと、
前記プロセッサにより、前記検索用語、および、前記検索用語の関連用語として前記近似ルックアップテーブルから特定された用語のうちいずれかを含むデジタルコンテンツを、前記データセットからフィルタリングするステップと、
を含む、方法。
【請求項7】
コンピュータプログラムが保管されたマシンで読取り可能な記録媒体であって、
該コンピュータプログラム
は、デジタルデータデバイスに、請求項1乃至
6いずれか一項に記載の方法を
実行させる、
マシンで読取り可能な記録媒体。
【請求項8】
複数のコンピュータ実行可能命令を含むコンピュータプログラムであって、
該コンピュータプログラム
は、デジタルデータデバイスに、請求項1乃至
6いずれか一項に記載の方法を
実行させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルデータ処理に関する。そして、より特定的には、デジタル辞書を使用した、データセットの自動化および半自動化された検索(searching)及び/又は更新(updating)に関する。本発明は、ウェブサイト上の製品データベースおよび他のデータセットの検索を改善することにおいて、限定的ではない実施例として、アプリケーションを有している。
【0002】
本特許申請は、2017年11月3日付の米国特許出願第62/581474号に基づく優先権を主張するものであり、その教示がここにおいて参照として包含されている。
【背景技術】
【0003】
典型的に、ウェブサイトの検索辞書は、検索クエリ(search query)の中にユーザによって入力された用語に関連する用語(terms)を特定するためにサイトの検索エンジンによって使用される用語のセットをリストアップしている。これにより、検索エンジンは、その検索要求をサイトデータベースにおいて使用される用語と合わせることができ、そして、従って、例えば、サイトオーナーまたはオペレータの希望ごとに、検索に応じて表示されるデータベースコンテンツの包含性をより良好に確保することができる。
【0004】
検索エンジンを最新の状態に定義して、維持することは、ウェブサイトのオーナー/オペレータにとって現在はわずらわしい手作業(manual task)である。彼らは、検索キーワードを捜して、検索ログを通じて大量に調べる必要があり、それは結果として無し(null)または最善には及ばない検索結果を生じ、そして、検索された単語またはフレーズを、既に辞書内にある用語とリンクさせなければならない。
【図面の簡単な説明】
【0005】
図面の参照により、以降の説明のより完全な理解が獲得され得る。
【
図1】
図1は、使用される一つの実施形態および一つの環境を示している。
【
図2】
図2は、
図1の実施形態において使用される辞書テーブルを表している。
【
図3】
図3は、
図1に示される一つの実施形態のオペレーションを表している。
【
図4】
図4は、
図1に示される一つの実施形態のさらなるオペレーションを表している。
【発明を実施するための形態】
【0006】
アーキテクチャ
図1は、ネットワーク16を介してクライアントデジタルデータデバイス(「クライアント」)14に対して接続されたサーバデジタルデータデバイス(「サーバ」)を含む、デジタルデータ処理システム10を表している。デバイス12、14は、従来のデスクトップコンピュータ、ワークステーション、マイクロコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、PDA、携帯電話、または、市販されているタイプの他のデジタルデータデバイスを含み、全てがここにおける教示に従って適合されている。従って、それぞれが、当技術分野において知られたタイプの中央処理装置、メモリ、および、入力/出力サブシステムセクション(ここでは示されていない)を含んでいる。そして、(i)当技術分野において知られたタイプのソフトウェア(例えば、適用できる場合に、アプリケーションソフトウェア、オペレーティングシステム、及び/又は、ミドルウェア)をここにおける教示に従って適合されるように実行すること、および、(ii)ここにおける教示に従って適合されるように当技術分野において知られた方法で、ネットワーク16を介して他のデバイス12、14のうち1つまたはそれ以上と通信すること、に適している。
【0007】
そうしたソフトウェアの実施例は、デバイス12上で実行されるウェブサーバ30を含む。ウェブサーバは、ウェブページ、ダウンロード、および他のデジタルコンテンツを要求デバイス(requesting device)、例えばクライアント14、に対してネットワーク16を介して転送する(transferring)ためのHTTPまたは他のプロトコルにおける要求に対して、ここにおける教示に従って適合されるように当技術分野において知られた方法で、応答する。ウェブサーバ30は、また、デバイス12により、そして、より特定的には、ウェブサーバ30によって動作されるウェブサイトと関連するデータベースおよび他のデータセットを検索するためのそうした又は他のプロトコルにおける検索要求に対しても、ここにおける教示に従って適合されるように当技術分野において知られた方法で、応答する。
【0008】
図示された実施形態において、ウェブサーバ30は、ウェブアプリケーションフレームワーク32の中で、及び/又は、関連してデバイス12上で実行されているウェブアプリケーション31を含んでいる。ウェブアプリケーション31は、そのユーザの命令によるクライアント14からの要求に応答してサーバ12による特定的な行動(behavior)をもたらすための、ここにおける教示に従って適合されるように当技術分野において知られた、従来のそうしたソフトウェアを含んでいる。ウェブフレームワーク32は、-例えば、アプリケーションプログラムインターフェイス(API)または他のものを介して-複数の、及び/又は、様々なウェブアプリケーション、そのうちの1つがここにおいて示されている(すなわち、ウェブアプリケーション)によって、使用される(または使用され得る)ライブラリおよび他の再使用可能なサービスを提供する(ここにおける教示に従って適合されるように)当技術分野において知られた従来のそうしたソフトウェアを含んでいる。
【0009】
図示された実施形態において、ウェブサーバ30、および、その構成コンポーネントである、ウェブアプリケーション31、ウェブアプリケーションフレームワーク32、およびキュレータ(curator)48は、サーバアーキテクチャのアプリケーション層38の中で実行される。その層38は、ここにおける教示に従って適合されるように当技術分野において知られた方法で、サービスを提供し、かつ、通信プロトコルをサポートしており、サーバアーキテクチャにおける他の層とは別のものである。-他の層は、サービスを提供し、そして、より一般的には、クライアント14からサーバ30によって受け取られた要求のうち少なくともいくらかを処理するために、ウェブアプリケーション31及び/又はフレームワーク32によって要求されるリソース(a/k/a「サーバリソース」)を提供する。
【0010】
他の層は、例えば、データ層(ここにおける教示に従って適合されるように当技術分野において知られた方法で、データベースサーバ40または他のミドルウェアとのインタラクションをサポートするサービスを提供するもの)、および、サーバのオペレーティングシステム(ここにおける教示に従って適合されるように当技術分野において知られた方法で、サーバのハードウェアおよびソフトウェアリソースを管理し、そして、そこで実行されているソフトウェアについて共通のサービスを提供するもの)を含んでいる。他の実施形態は、より多くの又はより少ない数の層を伴うアーキテクチャ、及び/又は、ここにおいて図示され、かつ、説明されたものとは異なるそれぞれの機能性を提供する層を用いたアーキテクチャを使用することができる。
【0011】
デジタルデータプロセッサ、そして、より特定的に、例として、オペレーティングシステム42は、当技術分野において知られたタイプのイベントロガー60を提供する。オペレーティングシステム42及び/又はデバイス12上で実行されている他のソフトウェアによってメッセージ化されたイベントエントリをファイル62へログ(log)するものである。これは、syslogといったオペレーティングシステムに備わっているイベントログ機能(event-logging functionality)、及び/又は、ここにおける教示に従って適合されるような当技術分野における全てによる、デバイス12上で実行されているミドルウェアまたは他のソフトウェア(例えば、ウェブアプリケーション24)によって提供される他のイベントログ機能であり得る。
【0012】
図示された実施形態において、データ層は、ここにおける教示に従って適合されるように当技術分野において知られた方法で、デバイス上に維持されており、かつ/あるいは、デバイス12と接続する通信におけるサイト固有(site-specific)データセットにアクセスすることをサポートしている。データセット41は、例えば、オンラインリテイラ(retailer)によって維持されているタイプのプロダクトデータベース、オンラインライブラリまたはパブリッシャ(publisher)によって維持されているタイプのデータベース、ソーシャルネットワーク上に維持されているタイプのポスティングのコレクション(collection of postings)、または、他の検索可能なデータセットであってよく、全てが限定することのない実施例である。図面においては一つのデータセット41だけが示されているが、いくつかの実施例においては(以下に説明されるように)、サーバ12、そして、より特定的には、データ層が、複数のデータセットにアクセスすることをサポートすることができ、各データセットはウェブサーバ30によって提供されるそれぞれのウェブサイトと関連付けされている。
【0013】
ここにおいてはウェブサーバ30のコンテクストにおいて説明されているが、他の実施形態において、ソフトウェア31および32は、ユーザ検索、ダウンロード、および他のリクエストに応答するために適切な他の機能性を定めることができる。例えば、ビデオサーバ、音楽サーバ、または、他のものである。そして、ここではウェブアプリケーション31およびウェブフレームワーク32を含むものとして示され、かつ、説明されているが、他の実施形態において、ウェブサーバ30は、コンポーネント31および32の説明された機能性を単一のコンポーネントの中に結合することができ、または、より多くのコンポーネントの中に分散することができる。
【0014】
図1の参照を続けると、図示された実施形態のクライアントデバイス14は、ウェブブラウザ44を実行する。ウェブブラウザは、-全てがここにおける教示に従って適合されるように当技術分野において知られた方法で、(典型的には)例えば、ページをダウンロードする、コンテンツを検索する、ウェブサーバ30によってブラウザ44にリターンされたユーザ情報を表示する、等の、HTTPまたは他のプロトコルにおけるリクエストを生成するため、および、そうしたリクエストをネットワーク14を介してウェブサーバ30へ伝送するためのユーザコントロールの下で動作する。ここにおいてはウェブブラウザとして参照されているが、他の実施形態において、アプリケーション44は、サーバ30へリクエストを伝送するため、かつ/あるいは、そうしたリクエストに応答してそれらから受け取ったコンテンツを表示するために適切な他の機能性を含んでよい。例えば、ビデオプレーヤアプリケーション、ミュージックプレーヤアプリケーション、または他のものである。
【0015】
図示された実施形態のデバイス12、14は、同じタイプのものであってよいが、より特定的に、それらは、異なるタイプのデバイスの組み合わせを構成している。そして、ここにおいては一つのサーバデジタルデータデバイス12だけが示され、かつ、説明されているが、他の実施形態は、より多くの数のデバイスを使用することができることが正しく理解されよう。デバイスは、同種、異種または他の、ネットワーク化された又は他のデバイスであり、ここでウェブサーバ30及び/又はデジタルデータプロセッサ12に帰する機能を実行する。同様に、一つのクライアントデバイス14が示されているが、他の実施形態は、より多くの又はより少ない数のデバイスを使用することができることが正しく理解されよう。デバイスは、同種、異種または他のデバイスであり、上述のように、それら自身が、同種、異種または他のものであるアプリケーション(例えば、44)を実行している。さらに、デバイス12、14のうち1つまたはそれ以上は、データベースシステム(例えば、マルチテナント(multi-tenant)データベースシステムを含んでいるもの)、もしくは、他のシステムまたは環境、として、かつ/あるいは、それらを提供するように構成され得る。そして、ここにおいては、クライアント-サーバアーキテクチャにおいて示されているが、デバイス12、14は、ピアツーピア(peer-to-peer)、クライアント-サーバ、または、ここでの教示と一致する他のプロトコルにおいて、相互に関連付けるように構成されてよい。
【0016】
ネットワーク14は、サーバ12とクライアントデバイス14との間の通信をサポートするための適切な1つまたはそれ以上のネットワークを含んでいる。ネットワークは、当技術分野において知られたタイプの1つまたはそれ以上の構成を含んでいる。例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、及び/又は、インターネットである。
【0017】
検索エンジンおよびサイト固有辞書(Site-Specific Dictionaries)
サーバ12は、追加的に、-データ層、アプリケーション層38、ウェブサーバ30、それらの組み合せ、または他のものの中で提供される検索エンジン45を通じて-特定のクライテリアを満たしているデータのアイテムを特定するためのデータセット41を検索することをサポートすることができる。例えば、アイテムは、指定された用語(terms)それらの同義語(synonyms)、下位概念語(hyponyms)、および上位概念語(hypernyms)、及び/又は、辞書46において特定されるようなそれに関連するもの(まとめて「関連語(”related terms”)」)を含んでいる。これは、ウェブサーバ30または他のものによって成されたコール(call)(または他の呼び出し(invocation))に応答するものであってよく、例えば、ブラウザ44または他のもののユーザによって起こされた検索要求に応答するものである。検索エンジン45および辞書46は、ここにおける教示に従って適合されるように当技術分野において知られたタイプのものである。検索エンジン45によって見い出されたデータのアイテムは、データセット、ウェブアプリケーション31、又は他のものに係る指示ごとに、ウェブページ、レコード、ファイル、または他のものであり得るが、全てがここにおける教示に従って適合されるような当技術分野における慣習により、例えば、リクエストを行ったユーザに対してブラウザ44を介して表示するために、エンジン45によって直接的または間接的にウェブサーバ30に渡され得る。いくつかの実施形態において、サーバデジタルデバイス12及びその構成コンポーネント、例えば、フレームワーク32、データベース層、オペレーティングシステム、検索エンジン45、等は、単一のウェブサイトおよびデータセット41をサポートすることができるが、例えば、マルチテナント(multi-tenancy)アーキテクチャを使用する実施形態において、それらは複数のウェブサイトをサポートすることができる。にもかかわらず、図示された実施形態のサーバ12は、辞書46および、典型的には、データセット41をサイト毎(per-site)のベースで維持している。従って、これらに対するここでの参照は、サイト固有辞書およびサイト固有データセットとしてのものである。このことは、物理的または論理的に、当技術分野における慣習または他のものとして成し遂げることができる。そして、所与のウェブサイトについてデータセット41の検索において使用される用語が、サイトのオーナー/オペレータによって制御され得る方法でデータセット41において使用される用語(terminology)と揃う(align with)ことを確保する。例えば、カジュアル衣服のウェブサイトのオーナー/オペレータは、そのサイトのための辞書46において「カーキ(”khakis”)」、「ジーンズ(”jeans”)」、および関連語(例えば、同義語または下位概念語)として「ショーツ(”shorts”)」を定義することができ、そうして、例えば、カーキに対するデータセット41の検索は、ジーンズおよび夏物ショーツについてのウェブページ、スラックスについてのものではない、を追加的にリターンする。さらに、ビジネス衣服ウェブサイトのオーナー/オペレータは、例えば、カーキに対するデータセット41の検索が追加的にドレススラックスについてのウェブページ、ジーンズまたは夏物ショーツではない、をリターンするように、「カーキ」と「スラックス(”slacks”)」を関連するものとして定義するように辞書46にデータを入れることができる。
【0018】
ウェブサーバ30へ検索結果を渡すこと、または他のもの、に加えて、エンジン45は、各検索に関連してロガー60を生成し、かつ、メッセージ化することができる。そうしたメッセージ化は、全てがここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、検索する用語(searched-for terms)、辞書46の中で見い出されて、エンジン45によって検索の中へ組み入れられた関連用語、および、検索から結果として生じるデータセット41における多数の「ヒット(”hits”)」を含むことができる。
【0019】
辞書キュレーション(curation)ソフトウェア48が図示された実施形態において提供されており、例えば、ウェブサイトオーナー/オペレータの入力に基づいて、自動的または半自動的に辞書46を更新することを促進する。キュレータ(curator)48とそうしたオーナー/オペレータとの間の通信は、ここにおける教示に従って適合されるように当技術分野における慣習として、コマンドラインを介して、例えばクライアント14におけるブラウザ44である、グラフィカルユーザインターフェイスを介して、または他のものを介して果たされ得る。その「キュレータ」38のオペレーション、アプリケーション層38の一部分を形成し得るもの、または他のものが、以下に説明される。その実装は、ここにおける教示の観点で当業者の知識の範囲内にある。
【0020】
他の実施形態は、ここにおける教示から逸脱することなく、データセット41へのアクセスおよび検索をサポートするための代替的なアーキテクチャを利用することができる。従って、限定することのない実施例として、検索エンジン45及び/又は辞書は、アプリケーション層38の一部分または他のものを形成することができる。
【0021】
当業者であれば正しく理解するように、ここにおいて参照される「ソフトウェア」-限定することのない実施例として、ウェブサーバとその構成コンポーネント、ウェブアプリケーションとウェブアプリケーションフレームワーク32、ブラウザ44、検索エンジン45、キュレータ48、等を含んでいるもの-は、コンピュータプログラム(すなわち、コンピュータインストラクションのセット)を含んでいる。ここにおける教示に従って適合されるように当技術分野において知られたタイプの、一時的および非一時的なマシンで読取り可能な媒体において保管されているものであり、そのコンピュータプログラムは、それぞれのデジタルデータデバイス、例えば12、14について、それぞれのオペレーションおよびここにおいてそれらに帰された機能を実行する。そうしたマシンで読取り可能な媒体は、限定することのない実施例として、ここにおける教示に従って適合されるように当技術分野において知られた方法で、それぞれのデジタルデータデバイス12、14に対して接続された、ハードドライブ、ソリッドステートドライブ、等を含み得る。
【0022】
辞書テーブル
図2は、図示された実施形態の各サイト固有辞書46を形成しているテーブルを表しており、そのサイトのデータセット41のエンジン45による検索を促進する。テーブルは、サイト固有ルックアップテーブルC、コーパス(corpus)ルックアップテーブルH、および近似(approximating)ルックアップテーブルGを含み、前記の1つまたはそれ以上の一時的なバージョンも同様である。それらの作成、更新、およびオペレーションは、ここにおける教示の観点で当業者の知識の範囲内にある。図示された実施形態において、テーブルは、サーバ12に対してローカルで維持されているが、他の実施形態においては、リモートに維持されてよい。
【0023】
サイト固有ルックアップテーブルCは、サイトデータセット41における検索可能な用語およびそれらの関連用語(上記に定義されたもの)のリストを維持している。図に示されるように、テーブルCはマトリクスであり、そのインデックス(例えば、行と列の見出し)として検索用語を有し、そして、本体においてそれらのインデックスの交差点で「0」または「1」の値を有し、それらのインデックスのサイト固有関連性を反映している。「1」の値は、インデックスがサイトの検索の目的に関連すると考えられることを示し、「0」の値は、関連しないことを示している。
【0024】
従って、例えば、図示されたテーブルCにおいて、それぞれに、「カーキ」および「スラックス」の見出しの行と列によってインデックスされた行(row)でのテーブル本体における値「1」は、辞書Cが関連する特定のウェブサイトデータセット41について、それらの用語を関連するものとしてエンジン45が取り扱うことを示している。なお、「スラックス」および「ショーツ」の見出しの行と列によってインデックスされた行でのテーブル本体における値「0」は、それらの用語を関連しないものとしてエンジンが取り扱うことを示している。ルックアップテーブルCのインデックスの値および本体は、第1インスタンスにおいて、デフォルト(default)チップを使用して、または、サイト固有辞書46が関連するウェブサイトのオーナー/オペレータによって設定され得る。このことは、コマンドラインまたはキュレータ48によって生成されたグラフィカルインターフェイス、または他のものを介して行われ得る。セットアップに続いて、それらの値は、以下に説明されるように、キュレータ48によって自動的または半自動的に設定され得る。
【0025】
コーパスルックアップテーブルHは、同様にサイトデータセット41における検索可能な用語およびそれらの関連用語のリストを維持するマトリクスである。ルックアップテーブルCのように、そのインデックス(例えば、行と列の見出し)として検索用語を有し、そして、本体においてそれらのインデックスの交差点で値を有し、それらのインデックスの用語の関連性を反映している。ルックアップテーブルとは異なり、テーブルHにおいてそれらの値によって反映される関連性はサイト固有のものではなく、むしろ、一般的なコーパスにおけるそれらのインデックスの関連性である。-すなわち、データセット41が一部分を形成する、かつ/あるいは、そこからその用語、つまり、話された言葉、出版物のコレクション、ウェブページ、データセット、等を引き出す、ワーク(works)のより大きな本体におけるものである。
【0026】
従って、実施例として、テーブルHは、いくつかの実施形態において、インデックスの交差点で本体において「0」または「1」の値を有し、それらのインデックスに関連する用語が標準的な言語シソーラス(thesaurus)における同義語(または、そうでなければ関連するもの)であるか(「1」)否か(「0」)を反映している。シソーラスは、例えば、Roget's II - The New Thesaurus、または、関連の言語の他のよく知られているそのような参考文献、といったものである。テーブルHまたは図示された実施形態は、そうした方法で埋められ(populated)ていない。むしろ、各交差点において、それらのインデックスが関連付けられているそれぞれの用語のベクトル化の間におけるコサイン類似性(cosine similarity)(または、他のユークリッド距離)と等しい本体値(body values)を有している。
【0027】
そうしたベクトル化の生成は、当業者の知識の範囲内にある。(i)エンジン45によって検索されるデータセット41の言語における全てのインターネットアクセス可能なウェブページ(または、そのサブセット)、(ii)データセット411のジャンル(genre)の全てのウェブページ及び/又はデータセット、および(iii)その他のもの、によって表されるようなコーパス上で、ここにおける教示に従って適合されるように、GloVe(例えば、Pennington共著、「GloVe:Global Vectors for Word Representation」、The 2014 Conference on Empirical Methods In Natural Language Processing, ACL 2014, ISBN 978-1-937284-96-1)、Word2Vec(例えば、 Goldberg共著、「word2vec Explained:Deriving Mikolov et al.' Negative-Sampling Word-Embedding Method」、arXiv:1402.3722で発行)、fastText(Facebook Researchからのオープンソースツール)、または、他の市販のベクトル化ツール、および 当技術分野における他のもの、を使用しているものである。
【0028】
そうしたベクトル化の間におけるコサイン類似性(または、他のユークリッド距離)の決定は、ここにおける教示に従って適合されるように、そうした市販のツール及びそうでなければ従来技術におけるツールを使用する当業者の知識の範囲内にある。当業者によって理解されるように、そうしたコサイン類似性(または、他のユークリッド距離)の値は、必ずしも整数(whole number)ではなく、しかし、その代わりに、0と1との間の小数値または他のものであってよい。より多くのインデックスのうち1つまたはそれ以上がマルチワード用語(multi-word term)であるイベントにおいて、図示された実施形態は、テーブルHの本体についてコサイン類似性値を決定するために、ここでの添付において“Similarity Metrics or Vectors&Matrices”の見出しの下で説明されるような方法を使用している。
【0029】
図2は、単に実施例として、かつ、上記で参照された技術による計算または他の決定の利益を伴わずに、データセット41について図示された実施形態において使用されるタイプのテーブルHの中に含まれる値を示している。それは、テーブルCとしてのインデックスと同じ用語を含んでいるが、インデックスの交差点でのマトリクスの本体における値はテーブルCの値とは異なっている。それらは、決定された類似性に関連するからである。例えば、全てのインターネットでアクセス可能な英語のウェブページによって表示されるといった、一般的なコーパスの観点におけるそうした用語のGloVeベクトル化のコサイン類似性によるものである。
【0030】
近似ルックアップテーブルGは、変換関数をテーブルHに対して適用することにより生成されるマトリクスである。変換関数は、テーブルHをテーブルCに対してフィットさせるものである。ルックアップテーブルCおよびHと同様に、テーブルGは、そのインッデクスとして(例えば、行と列の見出し)サイト固有データセット41の検索可能な用語を有し、そして、本体においてそれらのインデックスの交差点でそれらのインデックスによって示される用語の関連性を反映している値を有する。それらの値によって反映される関連性は、テーブルHの対応する(または他の)インデックスでの値に対する変換関数の適用を示している。いくつかの実施形態において、変換関数は、正確にテーブルCと一致する完全なフィットおよび結果として生じるテーブルGを提供するが、他の実施形態において、変換は、単なる近似を結果として生じる。このことは、実施例として、かつ、計算または他の決定の利益を伴わずに、
図2において説明されている。
【0031】
上述の変換関数の決定のための技術は、ここでの添付において「第2ベクトル化への変換の学習(“Learning the Transformation to the Second Vectorization”)」の見出しの下で提供されている。その説明において、用語「第1ベクトル化(”First Vectorization”)」は、GloVe、Word2Vec、fastText、または、他の上述のそうしたベクトル化技術(添付においてFと呼ばれるもの)を参照しており、そして、用語「第2ベクトル化(”Second Vectorization”)」は、上述のルックアップテーブルGにおける対角化(diagonalization)によって得られるような変換関数の出力を参照している。その見出しの下での説明において、テーブルGは、マトリクスFとして参照されている。
【0032】
オペレーション
図3は、サーバ12のオペレーションを表している。そして、より特定的には、サイト固有データセット41に対して向けられた検索要求に応答した検索エンジン45およびキュレータ48を示している。示されているステップ70を参照する。そうした要求は、例えば、ウェブアプリケーション31(および、より一般的には、ウェブサーバ30)から、例えば、ユーザのリクエストまたは他のもので、サイト固有データセット41を検索するためにブラウザ44から受け取ったリクエストに応答して、全てがここにおける教示に従って適合されるような当技術分野における慣習により、受け取ることができる。
【0033】
ステップ72において、検索エンジンは、検索要求における検索用語、W、がサイト固有ルックアップテーブルCの中にあるか否かを決定する。このことは、当技術分野において知られたルックアップテーブルアクセスの従来の方法において達成され得る。例えば、ここにおける教示に従って適合されるように、Cに係るインデックス(例えば、行/列の見出し)の中でWを見い出すことによるものである。
【0034】
そうである場合にステップ90へ進み、そこで、検索エンジン45は、ルックアップテーブルCにおいてWに関連する用語を特定する。このことは、例えば、関連性を示すCの本体における値(例えば、1)を識別することによって行われ得る。そうした用語が見い出された場合/ときに、検索エンジン45は、全てがここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、「ヒット(”hits”)」のためにデータセット41を検索すること、および、要求元に対するリターンのために結果をフィルタリングすることにおいて、それらを、W自身も同様に、使用することができる。このことは、例えば、再び、ここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、それらの結果をユーザに対して表示するためにブラウザ44に対してリターンすることを含み得る。ステップ92を参照のこと。
【0035】
ステップ72においてWがCの中に見つからない場合、フローはステップ74へ進み、そこで、検索エンジン45は、キュレータ48または他のものを適用して、テーブルHの一時的コピーに対してWを追加する。このことは、一時的テーブルのインデックスとしてWを追加するだけでなく、テーブルの本体におけるインデックスで、上述のように、テーブルにおける他の用語のコーパスについて関連性を反映している値を追加することも、また、含んでいる。このことは、上記の説明と一致して、GloVeまたは他のものといった、ベクトル化ツールを使用することを含み得る。ステップ76を参照のこと。ここにおいて説明されたように、そうした一時的テーブルを作成すること、そして、Wを一時的テーブルに対して追加することは、ここにおける教示の観点で当業者の知識の範囲内にある。
【0036】
ステップ78において、検索エンジン45は、キュレータ48または他のものを適用して、Hの一時的コピーから近似ルックアップテーブルGの一時的コピーを生成する。このことは、上述の変換関数を使用して、上記(および、添付で)説明される方法において行われ得るものであり、そして、ここにおける教示の観点で当業者の知識の範囲内にある。ステップ80を参照のこと。
【0037】
いくつかの実施形態において、検索エンジン45は、オプションのステップ82を実行する。このことは、明らかにWと関連する用語を特定するために一時的Gを使用することを含んでいる。このことは、例えば、一時的Gの本体において、Wによってインデックスされている行または列にあり、かつ、閾値(例えば、限定的でない例として、Gにおける関連性値が0から1までの一つの実施形態において、0.6の値)より上である値を特定することによって行われ得る。そうした明らかに関連する用語が見い出された場合に、検索エンジン45は、全てがここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、「ヒット(”hits”)」のためにデータセット41を検索すること、および、要求元に対するリターンのために結果をフィルタリングすることにおいて、それらを、W自身も同様に、使用することができる。このことは、例えば、再び、ここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、それらの結果をユーザに対して表示するためにブラウザ44に対してリターンすることを含み得る。ステップ92を参照のこと。
【0038】
ステップ84において、キュレータ48は、オーナー/オペレータ(例えば、検索されているウェブサイトのオーナー/オペレータ)に、WをCに対して追加することを彼/彼女が望むか否かをクエリする。例えば、さらなる検索を促進するためである。このことは、ブラウザ44または他のものにおけるユーザインターフェイスを介して、上記または他のもので決定されたように、そして、例えば、ログファイル62において反映されたように、Wおよび明らかに関連する用語をオーナー/オペレータに示すことによって行われ得る。ステップ86を参照のこと。オーナー/オペレータの反応に応じて、キュレータ48は、CのインデックスとしてW(および、オーナー/オペレータによって指定されたあらゆる他の用語)を追加するように、そして、Cの本体においてそれらのインデックスのそれぞれの交差点に1を置くことによって関連用語を示すように、Cを変更することができる。
【0039】
ステップ88において、キュレータは、ステップ86で変更されたように、テーブルCに従ってテーブルFおよびGを再生成し、そして、それらを辞書46へ保管する。テーブルFおよびGの生成は、ここにおける説明の観点において、例えば、
図2およびここでの添付に関連して、当業者の知識の範囲内にある。
【0040】
代替的な実施形態
図4は、サーバ12のオペレーションを表している。そして、より特定的には、一つの代替的な実施形態において、サイト固有データセット41に対して向けられた検索要求に応答した検索エンジン45およびキュレータ48を示している。示されているステップ90を参照する。そうした要求は、例えば、ウェブアプリケーション31(および、より一般的には、ウェブサーバ30)から、例えば、ユーザのリクエストまたは他のもので、サイト固有データセット41を検索するためにブラウザ44から送信されたリクエストに応答して、全てがここにおける教示に従って適合されるような当技術分野における慣習により、受け取ることができる。
【0041】
ステップ92において、検索エンジンは、検索要求における検索用語、W、がサイト固有ルックアップテーブルCの中にあるか否かを決定する。このことは、当技術分野において知られたルックアップテーブルアクセスの従来の方法において達成され得る。例えば、ここにおける教示に従って適合されるように、Cに係るインデックス(例えば、行/列の見出し)の中でWを見い出すことによるものである。そうである場合にステップ102へ進み、そこで、検索エンジン45は、ルックアップテーブルCにおいてWに関連する用語を特定する。このことは、例えば、関連性を示すCの本体における値(例えば、1)を識別することによって行われ得る。そうした用語が見い出された場合/ときに、検索エンジン45は、全てがここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、「ヒット(”hits”)」のためにデータセット41を検索すること、および、要求元に対するリターンのために結果をフィルタリングすることにおいて、それらを、W自身も同様に、使用することができる。このことは、例えば、再び、ここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、それらの結果をユーザに対して表示するためにブラウザ44に対してリターンすることを含み得る。ステップ104を参照のこと。
【0042】
ステップ92においてWがCの中に見つからない場合、フローはステップ94へ進み、そこで、検索エンジン45は、キュレータ48または他のものを適用して、サイト固有ルックアップテーブル、及び/又は、他のウェブサイトと関連付けされた辞書を検索する。このことは、例えば、マルチテナントアーキテクチャを有し、かつ、複数のウェブサイトをサポートする実施形態に係るデータ層におけるデータベースサーバまたは他の機能性によって促進される。そうした実施形態において、そのデータベースサーバまたは他の機能性は、テーブルC、及び/又は、そうした他のサイト、特には、ステップ90において受け取られたリクエストが向けられていたデータセット41と同じジャンルのデータセットを有するもの、のうち1つまたはそれ以上に係る辞書に対するアクセスをエンジン45に提供することができる。このことは、例えば、関連プロダクトのリストまたはデータセット41としての他のコンテンツを含んでいるデータセットを含み得る。テーブルC、及び/又は、他のウェブサイトと関連する辞書の検索は、マルチテナントアーキテクチャの中であろうと又はそうでなくても、ここにおける教示の観点で当業者の知識の範囲内にある。
【0043】
Wが、サイト固有ルックアップテーブル、及び/又は、別のウェブサイトの辞書において見い出された場合に、検索エンジン45は、オプションのステップ96を実行する。このことは、明らかにWと関連する用語を特定するために他のウェブサイトのサイト固有ルックアップテーブル及び/又は辞書を使用することを含んでいる。そうした他のサイト固有ルックアップテーブルが、例えば、
図2に関して上述の方法で構成されている場合には、関連性を示しているテーブルの本体における値(例えば、1)を識別することによって行われ得る。そうした明らかに関連する用語が見い出された場合に、検索エンジン45は、全てがここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、「ヒット(”hits”)」のためにステップ90において受け取ったリクエストが向けられたサイトのデータセット41を検索すること、および、要求元に対するリターンのために結果をフィルタリングすることにおいて、それらを、W自身も同様に、使用することができる。このことは、例えば、再び、ここにおける教示に従って適合されるように当技術分野において知られた従来の方法で、それらの結果をユーザに対して表示するためにブラウザ44に対してリターンすることを含み得る。ステップ104を参照のこと。
【0044】
ステップ98において、キュレータ48は、オーナー/オペレータ(例えば、検索されているウェブサイトのオーナー/オペレータ)に、WをCに対して追加することを彼/彼女が望むか否かに関してクエリする。例えば、さらなる検索を促進するためである。このことは、ブラウザ44または他のものにおけるユーザインターフェイスを介して、上記または他のもので決定されたように、Wおよび明らかに関連する用語をオーナー/オペレータに示すことによって行われ得る。ステップ86を参照のこと。オーナー/オペレータの反応に応じて、キュレータ48は、CのインデックスとしてW(および、オーナー/オペレータによって指定されたあらゆる他の用語)を追加するように、そして、Cの本体においてそれらのインデックスのそれぞれの交差点に1を置くことによって関連用語を示すように、Cを変更することができる。ステップ100を参照のこと。
【0045】
上記は、ここにおける教示に従った実施形態である。これらは実施例であること、そして、ここにおいて示され、かつ、説明されたものに対する変更を組み込んでいる他の実施形態は、以下の請求項の範囲内に入ることが正しく理解されよう。
【0046】
添付
技術的捕捉
ベクトルおよびマトリクスに対する類似性メトリック(Similarity Metrics for Vectors&Matrices)
V()を、単語wのベクトル化関数(vectorization function)を表すものとし、ベクトル化関数は、その単語のM次元のベクトル表現を生成する。
そうした2つの単語pおよびqに対する類似性メトリックは、それらのベクトル表現の間におけるコサイン類似性(Cosine similarity)として定義することができる。
Sim(p、q)=cos(V(p)、V(q))
ここで、PおよびQが、単一の単語より、むしろフレーズ(すなわち、複数の単語)を表している場合に、類似性を定義するための一つの一般的な方法は、個々の単語類似性を組み合わせるか、または、平均することであろう。
【数1】
代わりに、「マトリクス」コサイン距離メトリック("matrix" cosine distance metric)を定義する。
フレーズPを、k個の単語のシーケンスとする。
P={p
1、・・・、p
k}
フレーズPのマトリクス表現を構築する。ここで、マトリクスの各行(row)は、対応する単語のベクトル表現に対応している。
【数2】
このマトリクスは、k個の行(rows)およびM個の列(columns)を有している。
2つのそうしたマトリクスAおよびBについて、「マトリクス」コサインメトリックは、以下のように定義される。
【数3】
この類似性メトリックは、0と1との間の数を与える。
【0047】
第2ベクトル化への変換の学習(Learning the Transformation to the Second Vectorization)
プロセスの主要なステップは、どのように第1ベクトル化を第2ベクトル化へと変換するのか学習することである。数値的に、このことは、以下のようにして達成される。
Uを、ユーザ定義の同義語のセットとする。ここで、このセットの各エレメントは、pとqが同義語であるように、単語ペア(p、q)を表している。(i、j)を、N個の単語を含む第1ベクトル化表現におけるこれらの単語のインデックスとする。
以下のようにマトリクスCを定義する。
【数4】
これから、マトリクスFによって表現される第1ベクトル化を、Cによって表わされるグランドトゥルース(ground truth)とより良く整合するように調整する。
ステップ1.
1.Cを、C=QΛQ
Tであるように対角化する。
2.Λの最初のk個のエレメントを除く全てをゼロ0(zero)で埋め、このマトリクスをΛ’と示す。
3.σを、Λ’を降順にソートする順列(permutation)とする。
それに応じてQ←Qσを設定することによって、Qの列(columns)を転置し、かつ、
C=QΛ’Q
Tを再計算する。
ステップ2.
1.Fを、上記Cの一部分である単語に対する第1ベクトル化マトリクスであるとする。 H=FF
Tを計算する。
2.Dを、Hの対角行列とする。
3.H←D
-1/2HD
-1/2を調整する。
ステップ3.
1.0<λ<1かつ0<l(エル)≦k、であるパラメータを選び取る。
2.C←C+λHを設定する。
3.Λのエントリーが降順にソートされ、かつ、F’=Q
1Λ[0..l]
1/2であるような方法で、C=Q
1ΛQ
1
Tを対角化することによって、調整された第2ベクトル化(N×l)マトリクスF’≡F’(λ、l)を計算する。
【符号の説明】
【0048】
10 デジタルデータ処理システム
12 サーバデジタルデータデバイス
14 クライアントデジタルデータベースデバイス
16 インターネット
30 ウェブサーバ
40 データベースサーバ
41 データセット
42 オペレーティングシステム