JP2017525033A - 検索のためのテーブルの理解 - Google Patents

検索のためのテーブルの理解 Download PDF

Info

Publication number
JP2017525033A
JP2017525033A JP2016575801A JP2016575801A JP2017525033A JP 2017525033 A JP2017525033 A JP 2017525033A JP 2016575801 A JP2016575801 A JP 2016575801A JP 2016575801 A JP2016575801 A JP 2016575801A JP 2017525033 A JP2017525033 A JP 2017525033A
Authority
JP
Japan
Prior art keywords
column
subject
candidate
names
detector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016575801A
Other languages
English (en)
Other versions
JP6434542B2 (ja
Inventor
ワーン,ジョーンユエン
ゾリン,カンスタンツィン
チェン,ジーミン
チャクラバルティ,カウシク
フィニガン,ジェームズ・ピー
ナラサイヤ,ヴィヴェク・アール
チャウドゥリ,スラージット
ガンジャム,クリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017525033A publication Critical patent/JP2017525033A/ja
Application granted granted Critical
Publication of JP6434542B2 publication Critical patent/JP6434542B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

検索のテーブルを理解するための方法、システム、およびコンピュータープログラム製品。テーブルの件名列を識別するステップ、その他のテーブルを使用して列ヘッダーを検出するステップ、およびナレッジベースを使用して列ヘッダーを検出するステップ。方法は、リレーショナルデータベース内のテーブル、またはWebページから抽出されたHTMLテーブルのような構造化された情報にインデックスを作成する構造化データ検索システム(SDSS)において使用されてもよい。SDSSは、ユーザーが、キーワード検索およびデータ探知データを含むさまざまなメカニズムを使用して構造化された情報(テーブル)を介して検索できるようにする。

Description

関連出願の相互参照
[0001]該当なし。
[0002]1.背景技術および関連技術
[0003]コンピューターシステムおよび関連する技術は、社会の多くの側面に影響を及ぼす。実際、情報を処理するコンピューターシステムの能力は、我々が暮らす様式および働く様式を変えてきた。今ではコンピューターシステムは、コンピューターシステムの出現以前には手作業で行われていた多くの作業(たとえば、文書処理、日程計画、会計処理など)を日常的に実行する。より最近になって、コンピューターシステムは、相互に結合され、他の電子デバイスに結合されて、コンピューターシステムと他の電子デバイスが電子データを転送することができる有線および無線のコンピューターネットワークを形成するようになった。それに応じて、多くのコンピューティングタスクの実行は、多数のさまざまなコンピューターシステムおよび/または多数のさまざまなコンピューティング環境にわたり分散されている。
[0004]検索エンジンは、インターネットを含むネットワーク上で使用され、ユーザーの関心対象となる情報を見つけ出すことができる。検索エンジンは通常、インターネットのようなネットワーク上のWebページを継続的にクロールしてコンテンツにインデックスを作成するクローラーを使用する。コンテンツを見つけ出すために、ユーザーは、1つまたは複数の検索語を検索エンジンに提示する。検索エンジンは、1つまたは複数の検索語に関連するコンテンツを含むとみなされるページを識別する。次いで、検索エンジンは、識別されたページへのリンクをユーザーに返す。すると、ユーザーは、対応するページのコンテンツを閲覧するためにリンクを選択(たとえば、「クリック」)することができる。
[0005]構造化データ検索システム(SDSS)は、インターネットのようなネットワークを同様にクロールして、構造化された情報にインデックスを作成する。構造化された情報は、リレーショナルデータベースのテーブルまたはWebページから抽出されたHTMLテーブルを含むことができる。構造化されたデータを見つけ出すため、ユーザーは、1つまたは複数の検索語をSDSSに提示する。SDSSは、1つまたは複数の検索語に関連するコンテンツを含むとみなされる、テーブルのような、構造化されたデータを識別する。次いで、検索エンジンは、構造化データをユーザーに返す。その後、ユーザーは、構造化データを自分のアプリケーションに組み入れることができる。
[0006]テーブルのような構造化されたデータに、効果的にインデックスを作成するため、構造化されたデータについて少なくとも多少の理解が必要となる。ネットワーク上の一部のテーブルは、それらの件名列および列ヘッダーを明示的に定義することができる。SDDSは、これらのタイプのテーブルに比較的効率的にインデックスを作成することができる。ネットワーク上のその他のテーブルは、その件名列および/または列ヘッダーを明示的には定義しないこともある。SDSSは、これらの他のタイプのテーブルにインデックスを作成することができない場合もある。
[0007]インターネット上のコンテンツ生成の多様性により、インターネット上のテーブルのかなりの部分には、明示的に定義された件名列(subject column)および/または明示的に定義された列ヘッダーが不足している。SDSSは、明示的な件名列および/または明示的に定義された列ヘッダーが不足しているテーブルにインデックスを作成することができない場合があるので、ユーザーの検索に応答してそのようなテーブルを返す可能性は極めて低い。したがって、ユーザーが、明示的な件名列が不足している、および/または明示的に定義された列ヘッダーが不足しているテーブルを見つけ出すことは、たとえそのようなテーブルのコンテンツが有用であったとしても、非常に困難となる場合もある。
[0008]本発明は、検索のテーブルを理解するための方法、システム、およびコンピュータープログラム製品に及ぶ。本発明の態様は、テーブルの件名列を識別するステップ、その他のテーブルを使用してテーブルの列ヘッダーを検出するステップ、およびナレッジベースを使用してテーブルの列ヘッダーを検出するステップを含む。
[0009]この概要は、発明を実施するための形態において以下でさらに説明される簡略化された形で一連の概念を紹介するために提供される。この課題を解決するための手段は、請求の範囲に係る主題の主要特徴または重要特徴を特定することを意図されておらず、また請求の範囲に係る主題の範囲を決定する際の補助として使用されることも意図されてはいない。
[0010]本発明の追加の特徴および利点は、後段の説明において示され、部分的には説明から明らかとなるか、または本発明の実施により理解されるであろう。本発明の特徴および利点は、添付の特許請求の範囲において具体的に指摘される機器および組合せを用いて実現され取得されてもよい。本発明のこれらおよび他の特徴は、後続の説明および添付の特許請求の範囲からより完全に明らかとなるか、または以下に示される本発明の実施により理解されよう。
[0011]本発明の前述ならびに他の利点および特徴が取得され得る方法を説明するため、上記で簡単に説明された本発明のさらに具体的な説明は、添付の図面において例示されるその特定の実施態様を参照することによって行われるであろう。それらの図面が本発明の一部の実施態様を示すに過ぎず、したがってその範囲を限定するものとみなされるべきではないことを理解すれば、本発明は、添付の図面を使用することでさらなる具体性および詳細をもって記述され説明されるであろう。
[0012]構造化データの1つまたは複数のデータセットからの1つまたは複数のインデックスの構築を容易にする例示のコンピューターアーキテクチャを示す図である。 [0013]テーブルの件名列の識別を容易にする例示のコンピューターアーキテクチャを示す図である。 [0014]テーブルの件名列を識別するための例示の方法を示す流れ図である。 [0015]テーブルの列ヘッダーの検出を容易にする例示のコンピューターアーキテクチャを示す図である。 [0016]テーブルの列ヘッダーを検出するための例示の方法を示す流れ図である。 [0017]例示のテーブルを示す図である。 [0018]インスタンスのセットから概念を推論するために使用されるさまざまな式を示す図である。 [0019]例示のヘッダー行を示す図である。 [0020]抽出された属性の典型性スコアを計算するために使用されるさまざまな式を示す図である。 [0021]例示のテーブルを示す図である。 [0022]テーブルの理解を容易にする例示のアーキテクチャを示す図である。
[0023]本発明は、検索のテーブルを理解するための方法、システム、およびコンピュータープログラム製品に及ぶ。本発明の態様は、テーブルの件名列を識別するステップ、その他のテーブルを使用してテーブルの列ヘッダーを検出するステップ、およびナレッジベースを使用してテーブルの列ヘッダーを検出するステップを含む。
[0024]本発明の実施態様は、たとえば、後段においてさらに詳細に説明される、1つまたは複数のプロセッサーおよびシステムメモリのような、コンピューターハードウェアを含む専用または汎用コンピューターを備えるかまたは利用することができる。本発明の範囲内の実施態様はまた、コンピューター実行可能命令および/またはデータ構造を搬送または格納するための物理およびその他のコンピューター可読媒体を含む。そのようなコンピューター可読媒体は、汎用または専用コンピューターシステムによってアクセスされ得る任意の使用可能な媒体であってもよい。コンピューター実行可能命令を格納するコンピューター可読媒体は、コンピューターストレージ媒体(デバイス)である。コンピューター実行可能命令を搬送するコンピューター可読媒体は、送信媒体である。したがって、限定的ではなく、一例として、本発明の実施態様は、コンピューターストレージ媒体(デバイス)および送信媒体という少なくとも2つの明瞭に異なる種類のコンピューター可読媒体を備えることができる。
[0025]コンピューターストレージ媒体(デバイス)は、RAM、ROM、EEPROM、CD−ROM、ソリッドステートドライブ(「SSD」)(たとえば、RAMベース)、フラッシュメモリ、相変化メモリ(「PCM」)、その他のタイプのメモリ、その他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、もしくはコンピューター実行可能命令またはデータ構造の形態をとる望ましいプログラムコード手段を格納するために使用され得る、汎用または専用コンピューターによってアクセスされ得る任意の他の媒体を含む。
[0026]「ネットワーク」は、コンピューターシステムおよび/またはモジュールおよび/またはその他の電子デバイスの間の電子データのトランスポートを可能にする1つまたは複数のデータリンクとして定義される。情報がネットワークまたは別の通信接続(有線、無線、または、有線もしくは無線の組合せのいずれか)を介してコンピューターに転送または提供される場合、コンピューターは、適正に、接続を送信媒体とみなす。送信媒体は、コンピューター実行可能命令またはデータ構造の形態をとる望ましいプログラムコード手段を搬送するために使用され得る、汎用または専用コンピューターによってアクセスされ得るネットワークおよび/またはデータリンクを含むことができる。上記の組合せも、コンピューター可読媒体の範囲に含まれるものとする。
[0027]さらに、さまざまなコンピューターシステムコンポーネントに到達すると、コンピューター実行可能命令またはデータ構造の形態をとるプログラムコード手段は、送信媒体からコンピューターストレージ媒体(デバイス)に(またはその逆に)自動的に転送されてもよい。たとえば、ネットワークまたはデータリンクを介して受信されたコンピューター実行可能命令またはデータ構造は、ネットワークインターフェイスモジュール(たとえば、「NIC」)内のRAMにバッファされてもよく、次いでコンピューターシステムRAMおよび/またはコンピューターシステムにおいてより揮発性の低いコンピューターストレージ媒体(デバイス)に最終的に転送されてもよい。したがって、コンピューターストレージ媒体(デバイス)は、送信媒体も(または主としても)利用するコンピューターシステムコンポーネントに含まれ得ることを理解されたい。
[0028]コンピューター実行可能命令は、たとえば、プロセッサーにおいて実行されるとき、汎用コンピューター、専用コンピューター、または専用処理デバイスに、特定の機能または機能のグループを実行させる命令およびデータを備える。コンピューター実行可能命令は、たとえば、アセンブリ言語、またはソースコードのような、バイナリ、中間形式の命令であってもよい。主題は構造的特徴および/または方法論的動作に固有の用語で説明されたが、添付の特許請求の範囲に定義された主題が上記で説明された特徴または動作に必ずしも限定されないことを理解されたい。より正確に言えば、説明された特徴および動作は、特許請求の範囲を実施する例示の形態として開示される。
[0029]当業者であれば、本発明が、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサー、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースまたはプログラマブル家庭用電化製品、ネットワークPC、マイクロコンピューター、メインフレームコンピューター、携帯電話、PDA、タブレット、ページャー、ルーター、スイッチなどを含む、多くのタイプのコンピューターシステム構成を備えるネットワークコンピューティング環境において実施され得ることを理解するであろう。本発明はまた、ネットワークを通じて(有線データリンク、無線データリンク、または有線データリンクと無線データリンクとの組合せのいずれかによって)リンクされるローカルコンピューターシステムおよびリモートコンピューターシステムが共にタスクを実行する分散システム環境において実施されてもよい。分散システム環境において、プログラムモジュールは、ローカルおよびリモートのメモリストレージデバイスに配置されてもよい。
[0030]本発明はまた、クラウドコンピューティング環境において実施されてもよい。この説明および後段の特許請求の範囲において、「クラウドコンピューティング」は、構成可能コンピューティングリソースの共有プールへのオンデマンドネットワークアクセスを可能にするモデルとして定義される。たとえば、クラウドコンピューティングは、構成可能コンピューティングリソースの共有プールへのユビキタスで便利なオンデマンドアクセスを提供するために市場において採用されてもよい。構成可能コンピューティングリソースの共有プールは、仮想化を介して迅速にプロビジョニングされ、少ない管理労力またはサービスプロバイダの相互作用によりリリースされ、それに応じて拡大縮小されてもよい。
[0031]クラウドコンピューティングモデルは、たとえば、オンデマンドセルフサービス、幅広いネットワークアクセス、リソースプーリング、迅速な弾力性(elasticity)、メジャードサービス(measured service)などのような、さまざまな特性で構成されてもよい。クラウドコンピューティングモデルはまた、たとえば、サービスとしてのソフトウェア(Software as a Service)(「SaaS」)、サービスとしてのプラットフォーム(Platform as a Service)(「PaaS」)、およびサービスとしてのインフラストラクチャ(Infrastructure as a Service)(「IaaS」)のような、さまざまなサービスモデルを公開することができる。クラウドコンピューティングモデルはまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどのような、さまざまな配置モデルを使用して配置されてもよい。この説明および特許請求の範囲において、「クラウドコンピューティング環境」とは、クラウドコンピューティングが採用される環境である。
[0032]これらの説明および後段の特許請求の範囲において、「テーブル」とは、縦方向の列および横方向の行のモデルを使用するデータ要素(値)のセットとして定義される。行と列との各交差点は、セルを表す。行は、たとえばキーインデックスとして識別される、指定された列サブセットに表示される値によって識別されてもよい。テーブルは、データベース、Webページ、キュレーションされたデータセット内に見られ、画像(たとえば、ホワイトボード)から取り込まれ、その他のファイル(たとえば、Portable Document Format(「PDF」)ファイル)に見られるか、またはその他のソースなどに見られる。本発明の態様は、これらのソースのいずれかからのテーブルを理解するために使用され得る。
[0033]テーブルの1つまたは複数の列は、件名列であってもよい。件名列は、テーブルが関連するエンティティの名前を含む。テーブルのその他の列は、件名列のエンティティの関係またはプロパティを表す。件名列は、近似キーとして表示されてもよい。
[0034]テーブルの行は、列ヘッダーであってもよい。テーブルの列ヘッダーは、テーブルの列の名前を含む。
[0035]図10を一時的に参照すると、図10は、テーブル1000を表す。テーブル1000は、件名列1021「郡名」および列ヘッダー1022を有する。
[0036]本発明の態様は、テーブルの件名列を識別するステップ、その他のテーブルを使用してテーブルの列ヘッダーを検出するステップ、およびナレッジベースを使用して列ヘッダーを検出するステップを含む。
[0037]インデックス構築アーキテクチャ
[0038]図1は、構造化データの1つまたは複数のデータセットからの1つまたは複数のインデックスの構築を容易にする例示のコンピューターアーキテクチャ100を示す。図1を参照すると、コンピューターアーキテクチャ100は、テーブル抽出および分類モジュール101、テーブル理解モジュール102、テーブル注釈モジュール103、特徴計算モジュール104、インデックス構築モジュール106、Webスナップショット111、キュレーションされたデータセット112、クリックログ113、ナレッジベース114、ならびにインデックス121、122、および123を含む。テーブル抽出および分類モジュール101、テーブル理解モジュール102、テーブル注釈モジュール103、特徴計算モジュール104、インデックス構築モジュール106、Webスナップショット111、キュレーションされたデータセット112、クリックログ113、ナレッジベース114、ならびにインデックス121、122、および123の各々は、たとえば、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットのようなネットワークを介して相互に接続されてもよい(またはネットワークの一部であってもよい)。したがって、テーブル抽出および分類モジュール101、テーブル理解モジュール102、テーブル注釈モジュール103、特徴計算モジュール104、インデックス構築モジュール106、Webスナップショット111、キュレーションされたデータセット112、クリックログ113、ナレッジベース114、ならびにインデックス121、122、および123、加えて任意の他の接続されたコンピューターシステムおよびそれらのコンポーネントの各々は、メッセージ関連データを作成し、ネットワークを介してメッセージ関連データ(たとえば、インターネットプロトコル(「IP」)データグラム、および伝送制御プロトコル(「TCP」)、ハイパーテキスト転送プロトコル(「HTTP」)、簡易メール転送プロトコル(「SMTP」)などのようなIPデータグラムを利用するか、またはその他の非データグラムプロトコルを使用するその他の上位レイヤプロトコル)を交換することができる。
[0039]一般に、コンピューターアーキテクチャ100は、Webスナップショット111、および場合によっては1つまたは複数のキュレーションされたデータセット112も活用して、インデックス121、122、および123の1つまたは複数を構築することができる。コンピューターアーキテクチャ100は、Webスナップショット111および/または1つまたは複数のキュレーションされたデータセット112からテーブル(たとえば、Webテーブル)を抽出し、抽出されたテーブルを理解および注釈付けして、インデックス121、122、および123の1つまたは複数をテーブルの理解/注釈に基づいて構築することができる。次いで、インデックス121、122、および123は、ユーザークエリーに対する候補結果を取得し、関連性に基づいて候補結果テーブルをランク付けするために、インデックスサーブコンポーネントによって使用されてもよい。インデックス121、122、および123の各々は、たとえば、トークンを識別子にマップし、トークンの文書頻度逆数を含む文字列マッピングインデックス、ユーザークエリーの上位ランク付けテーブルを取得するために使用され得るキーワード(逆)もしくは特徴インデックス、または取得したテーブルのプレビュー/スニペットを生成し、要求時に完全なテーブルを取り出すために使用され得るテーブルコンテンツインデックスのような、さまざまなタイプのインデックスであってもよい。
[0040]コンピューターアーキテクチャ100内で、テーブル抽出および分類モジュール101は、Webスナップショット111および/またはキュレーションされたデータセット112を入力として受信することができる。Webスナップショット111は、テーブル(たとえば、Webテーブル)をハイパーテキストマークアップ言語(HTML)形式で含むことができる。キュレーションされたデータセット112は、たとえば、data.govまたはWorld Bankからのデータのような、サイト固有の形式でテーブルを含むことができる。Webスナップショット111およびキュレーションされたデータセット112は、サイトをスクレーピングし、それらのサイトの形式を理解し、テーブルを抽出するラッパーおよび/またはクローラーを使用して作成されてもよい。たとえば、Webスナップショット111は、インターネットのスクレーピングから作成されてもよい。したがって、Webスナップショット111は、Webテーブルを含むことができる。Webテーブルは、リレーショナルまたは非リレーショナルであってもよい。一部のテーブルは、件名列および列ヘッダーを明示的に定義することができる。その他のテーブルは、件名列および/または列ヘッダーの明示的な定義が不足していることもある。
[0041]テーブル抽出および分類モジュール101は、Webスナップショット111および/またはキュレーションされたデータセット112からテーブルを抽出することができる。テーブル抽出および分類モジュール101は、たとえば、ナビゲーション/レイアウトの目的で使用されるテーブルのような、値のないテーブルを除去することができる。残りのテーブルから、テーブル抽出および分類モジュール101は、リレーショナルテーブルおよび/または非リレーショナルテーブルとしてテーブルを分類することができる。1つの態様において、テーブル抽出および分類モジュール101はまた、非リレーショナルテーブルを除去する。テーブル抽出および分類モジュール101は、コンピューターアーキテクチャ100内の他のモジュールが使用するように、テーブル(たとえば、リレーショナルテーブル)を出力することができる。
[0042]クリックログ113は、複数のネットワークユーザーについてログが記録されたリンク選択情報(「クリック」)を含むことができる。インターネットの場合、クリックログ113は、さらに多数のユーザーについてのリンク選択情報を含むことができる。ナレッジベース114は、ナレッジベースのさまざまなクラスを含むことができる。ナレッジベースの1つのクラスは、たとえば、Webスナップショット111および/またはキュレーションされたデータセット112内のWebテーブルのような、エンティティおよび/またはエンティティ間の関係に関する構造化情報を含むことができる。たとえば、ナレッジベースは、エンティティ名、エンティティタイプ、エンティティ属性、およびエンティティ属性の値を含む、テーブルエンティティに関する情報を含むことができる。ナレッジベースのもう1つのクラスは、(たとえば、テキストパターンを使用して)Webドキュメントから抽出されるものである。
[0043]テーブル理解モジュール102は、テーブル抽出および分類モジュール101によって抽出されたテーブル(たとえば、Webテーブル、リレーショナルテーブルなど)を入力として受信することができる。テーブル理解モジュール102は、テーブルを理解するために多種多様なテーブル理解アルゴリズムを使用することができる。一部のテーブルは、明示的に定義された件名列および/または明示的に定義された列ヘッダーが不足している場合がある。そのようなものとして、テーブル理解アルゴリズムは、テーブルがそのような情報を明示的に定義していない場合、テーブルの件名列を識別するように、および/またはテーブルの列ヘッダーを検出するように構成されてもよい。テーブル理解モジュール102は、クリックログ113およびナレッジベース114を使用して、テーブルの理解を支援することができる。テーブル理解モジュール102は、テーブルの識別された件名列および検出された列ヘッダーを出力することができる。
[0044]テーブル注釈モジュール103は、テーブル抽出および分類モジュール101によって抽出されたテーブル(たとえば、Webテーブル、リレーショナルテーブルなど)を受信することができる。テーブル注釈モジュール103はまた、テーブルの識別された件名列および検出された列ヘッダーを(たとえば、テーブル理解モジュール102から)受信することができる。テーブル注釈モジュール103は、多種多様なテーブル注釈アルゴリズムを使用して、テーブルに関連付けられていると明示的には定義されていない関連コンテンツでテーブルに注釈を付けることができる。たとえば、テーブルを含むWebページ上で、<table>および</table>タグ内のコンテンツ(たとえば、セル値および列名)は、キーワードおよびデータ探知検索をサポートする際に有用となり得る。
[0045]しかし、<table>および</table>タグ内にないキーワードおよびデータ探知検索をサポートする際に有用な追加のコンテンツがあってもよい。たとえば、追加のコンテンツは、<table>および</table>タグの外部のWebページ上にあってもよく、追加のコンテンツはWebページへのリンクを含む他のWebページ内にあってもよく、追加のコンテンツは、クリックログデータ内にあってもよい、などである。そのようなものとして、テーブル注釈アルゴリズムは、この追加のコンテンツを識別して、対応するテーブルに追加のコンテンツで注釈を付けるように構成されてもよい。その後、インデックス構築モジュール106は、この追加のコンテンツならびに<table>および</table>タグ内のコンテンツにわたり逆インデックスを生成することができる。
[0046]テーブル注釈モジュール103は、クリックログ113およびナレッジベース114を使用して、追加のコンテンツの識別および対応するテーブルへの追加のコンテンツでの注釈付けを支援することができる。テーブル注釈モジュール103は、対応する追加のコンテンツで注釈を付けられたテーブルを出力することができる。
[0047]特徴計算モジュール104は、テーブル(たとえば、Webテーブル、リレーショナルテーブルなど)を受信することができる。特徴計算モジュール104は、テーブルの(静的)特徴を計算するためにさまざまな特徴計算アルゴリズムを使用することができる。計算された(静的)特徴は、ランク付けに使用されてもよい。たとえば、特徴計算モジュール104は、関連するランク付けに使用するためにWebテーブルの静的(つまり、クエリに非依存の)特徴を計算することができる。ランク付けは、多くのWebテーブルが検索クエリを満足する場合に、より優れた(たとえば、より有名な、より評判のよい、またはより関連性のある)Webテーブルの表面化を支援するために使用されてもよい。特徴計算モジュール104は、テーブルの計算された(静的)特徴を出力することができる。
[0048]特徴計算モジュール104は、注釈付きまたは注釈なしのテーブルと共に使用されてもよい。特徴計算モジュール104が注釈付きテーブルを受信すると、さまざまな特徴計算アルゴリズムは、注釈に含まれる追加のコンテンツを使用して(静的)特徴を計算することができる。
[0049]インデックス構築モジュール106は、テーブル(たとえば、Webテーブル、リレーショナルテーブルなど)を受信することができる。インデックス構築モジュール106は、さまざまなインデックス構築アルゴリズムを使用して、受信したテーブルからインデックス121、122、および123の1つまたは複数を構築することができる。インデックス構築モジュール106は、注釈付きまたは注釈なしのテーブルを受信することができる。インデックス構築モジュール106が注釈付きテーブルを受信すると、さまざまなインデックス構築アルゴリズムは、インデックスを構築する場合に、注釈に含まれる追加のコンテンツを使用することができる。インデックス構築モジュール106はまた、テーブルの計算された(静的)特徴にアクセスすることができる。インデックス構築モジュール106がテーブルの計算された(静的)特徴にアクセスすると、さまざまなインデックス構築アルゴリズムは、インデックスを構築する場合に、計算された(静的)特徴を使用することができる。
[0050]次いで、インデックスは、キーワード検索およびデータ探知データ検索を含む検索を容易にするために使用されてもよい。キーワード検索は、ユーザーが「アフリカ諸国のGDP」のようなキーワードクエリを検索エンジン(またはその他の類似するシステムもしくはモジュール)に入力することを含む。検索エンジン(またはその他の類似するシステムもしくはモジュール)は、ユーザーの情報ニーズを適切に満たすランク付けされたテーブルのリストを返す。データ探知データ検索は、ユーザーが(たとえば、スプレッドシートから)エンティティのセット、およびオプションとして追加のキーワードを検索エンジン(またはその他の類似するシステムもしくはモジュール)に指定することを含む。検索エンジン(またはその他の類似するシステムもしくはモジュール)は、指定されたエンティティのセットに対する要求された情報を含むテーブルを返す。
[0051]件名列の識別
[0052]図2は、テーブルの件名列の識別を容易にする例示のコンピューターアーキテクチャ200を示す。図2を参照すると、コンピューターアーキテクチャ200は、候補列選択モジュール201、スコア計算モジュール202、および件名列選択モジュール203を含む。候補列選択モジュール201、スコア計算モジュール202、および件名列選択モジュール203の各々は、たとえばローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、および、さらにはインターネットなどのような、ネットワークを介して相互に接続されてもよい(またはネットワークの一部であってもよい)。したがって、候補列選択モジュール201、スコア計算モジュール202、および件名列選択モジュール203、ならびに任意の他の接続されたコンピューターシステムおよびそれらのコンポーネントの各々は、メッセージ関連データを作成し、ネットワークを介してメッセージ関連データ(たとえば、インターネットプロトコル(「IP」)データグラム、および伝送制御プロトコル(「TCP」)、ハイパーテキスト転送プロトコル(「HTTP」)、簡易メール転送プロトコル(「SMTP」)などのようなIPデータグラムを利用するか、またはその他の非データグラムプロトコルを使用するその他の上位レイヤプロトコル)を交換することができる。
[0053]候補列選択モジュール201、スコア計算モジュール202、および件名列選択モジュール203は、テーブル理解モジュール102に含まれてもよい。あるいは、候補列選択モジュール201、スコア計算モジュール202、および件名列選択モジュール203は、テーブル理解モジュール102の外部で動作することができる。
[0054]候補列選択モジュール201は、テーブル(たとえば、Webテーブル)を受信して、テーブルの1つまたは複数の列を候補件名列として選択するように構成される。候補選択モジュール201は、1つまたは複数の選択考慮事項に基づいて、列を候補件名列として選択することができる。候補列選択モジュール201は、ある列を、いくつの他の列がテーブルの左側から引き離しているかを検討することができる。少なくとも一部のテーブルでは、左端の列が件名列であることが多い。
[0055]候補列選択モジュール201は、列が数値列または非数値列であるかどうかを検討することができる。少なくとも一部のテーブルでは、件名列は非数値であることが多い。そのようなものとして、候補列選択モジュールは、列が数値または非数値であるかどうかを検討することができる。候補列選択モジュール201は、列が数値であるかどうかのスコアを計算することができる。先行および後続のトークンは、列の値から除去されてもよい。たとえば、収益または価格情報を伴う列は、$またはmilを先行/後続トークンとして含むことがある。これらのトークンは、代表データを公開するために除去されてもよい。列の場合、数値であるセルの数の割合が計算されてもよい。たとえば、列が100セルを有し、80セルが数値の値を有する場合、セルの80%が数値である。指定されたしきい値を超える数値セルを有すると決定された列は、件名列としてのさらなる検討から除外されてもよい。
[0056]したがって、非数値列について、候補列選択モジュール201は、ある列を、いくつの他の列がテーブルの左から引き離しているかを検討することができる。
[0057]候補列選択モジュール201は、列内のセル値の個別性を検討することができる。少なくとも一部のテーブルでは、件名列は近似キーである(つまり、件名列は、ほぼ個別の値を含むが、一部重複を含むこともある)。セルの合計数に対する個別のセル値の数の比率、最も繰り返される値の出現数などを含む、個別性の複数の異なる測度が、列について検討されてもよい。
[0058]スコア計算モジュール202は、候補列の値が他のテーブルの件名列においてどのくらいの頻度で共起(co−occur)するかを決定するように構成される。少なくとも一部のテーブルでは、テーブルの列は、件名列のエンティティのプロパティ/関係である。たとえば、首都の列は、対応する件名列の州のプロパティ/関係であってもよい。そのようなものとして、真の件名列の値は、非件名列の値とより頻繁に比較される列名と共起することができる。
[0059]スコア計算モジュール202は、各候補列について列スコアを計算することができる。1つの態様において、スコア計算モジュール202は、指定された個別性しきい値(たとえば、7)を超えるN(たとえば、3つ)の左端の非数値列を、候補件名列として選択する。各候補件名列について、スコア計算モジュール202は、候補件名列の各値が他の(複数の)テーブルのセットにわたり各列名と共に何回出現するかを計算する。各値/列名について、共起の回数は、他の(複数の)テーブルのセットにわたる値の出現回数で除算されて、共起率が得られる。たとえば、値が50のテーブルの件名列において出現し、合計500のテーブルで出現する場合、共起率は50/500=0.1(または10%)である。
[0060]スコア計算モジュール202は、列内の各値について共起率を使用して、列の列スコアを計算することができる。たとえば、V、V、...、Vは、列内の値のセットを表すことができる。C、C、...、Cは、列名であってもよい。したがって、f(V、C)は、件名列においてVを含む可能性の高いテーブルの共起率を表し、ここでCは列の名前である。1つまたは複数の集約関数は、列のf(V、C)のすべてから列の列スコアを計算するために使用されてもよい。一部の値および列名は、末尾値/列名であってもよいので、たとえより高いf(V、C)を伴う少数の値/列名であっても、より高い全体スコアに寄与することができる。1つの集約関数は、列の共起率の指定された上位数の平均をとることによって、列の列スコアを計算する。
[0061]代替として、および/または組合せて、スコア計算モジュール202はまた、ナレッジベース内のテーブル(たとえば、Webテーブル)のエンティティおよび列名の共起を検討することもできる。テーブル(たとえば、Webテーブル)の列は、件名列のエンティティのプロパティ/関係である。そのようなものとして、列名は、ナレッジベース内の同じ概念/タイプ内で出現することができる。スコア計算モジュール202は、エンティティおよび列名との重複を取り込む任意の潜在的概念(つまり、エンティティと重複するもの)について概念スコアを計算することができる。最も適切な(たとえば、最も高い)概念スコアを伴う列が、選択されてもよい。
[0062]スコア計算モジュール202はまた、ナレッジベースを使用して、候補件名列名の値が、テーブルと一致するナレッジベースの属性を有するかどうか決定することができる。テーブルと一致するナレッジベース属性は、テーブル内の複数の件名列を識別するために使用されてもよい。たとえば、スコア計算モジュール202は、テーブル内のエンティティ−属性の関係を学習することができる。つまり、テーブルは州に関するものであってもよく、さらに列「州都」を有してもよく、「州都」列の次に州都人口である人口列(州人口には異なる列があってもよい)を有してもよい。
[0063]件名列選択モジュール203は、列および/または列の概念スコアを受信するように構成される。受信したスコアから、件名列選択モジュール203は、1つまたは複数の列を、件名列として選択することができる。たとえば、列スコアおよび/または概念スコアに基づいて、件名列選択モジュール203は、列を、件名列として、または非件名列として分類することができる。
[0064]図3は、テーブルの件名列を識別するための例示の方法300を示す流れ図である。方法300は、コンピューターアーキテクチャ200のコンポーネントおよびデータに関して説明される。
[0065]方法300は、件名列候補として、テーブルから指定された数の列を選択するステップであって、各件名列候補は、テーブルの件名列の候補であり、各件名列候補は、複数の値を含む、ステップ(301)を含む。たとえば、候補列選択モジュール201は、テーブル211(たとえば、Webテーブル)にアクセスすることができる。示されているように、テーブル211は、列221、222、223、224、225などを含む。各列は、複数の値を含む。列221は、値221A、221B、221C、221Dなどを含む。列222は、値222A、222B、222C、222Dなどを含む。列223は、値223A、223B、223C、223Dなどを含む。列224は、値224A、224B、224C、224Dなどを含む。列225は、値225A、225B、225C、225Dなどを含む。
[0066]候補列選択モジュール201は、列221および223を、候補件名列として選択することができる。たとえば、列221および223は、テーブル221の左端のN個の非数値列内にあってもよく、列221および223の値はまた、個別性しきい値を満たすことができる。候補列選択モジュール201は、列221および223を、スコア計算モジュール202に送信することができる。一方、列222は数値列である、および/または列222の値は十分に個別ではない場合もある。そのようなものとして、列222は、候補件名列が検討されない。
[0067]スコア計算モジュール202は、候補列選択モジュール201から列221および223を受信することができる。
[0068]方法300は、各件名列候補について、複数の他のテーブルにわたり1つまたは複数の列名とペアにされている複数の値から任意の値の出現を識別するステップ(302)を含む。たとえば、列221について、スコア計算モジュール202は、テーブルセット212内のテーブルのいずれかの列名とペアにされている値221A、221B、221C、221Dなどの任意の出現を識別することができる。同様に、列223について、スコア計算モジュール202は、テーブルセット212内のテーブルのいずれかの列名とペアにされている値223A、223B、223C、223Dなどの任意の出現を識別することができる。1つの態様において、テーブルセット212は、複数のリレーショナルWebテーブルを含む。
[0069]方法300は、各件名列候補について、識別された出現に基づいて件名候補列のスコアを計算するステップであって、計算されたスコアは、候補列が件名列である尤度を指示する、ステップ(303)を含む。たとえば、スコア計算モジュール202は、列221のスコア231を計算することができ、列223のスコア233を計算することができる。
[0070]一部の態様において、代替として、および/または組合せて、スコア計算モジュール202は、それぞれスコア231および233を計算する場合、ナレッジベース214の同じ概念/タイプ内のエンティティでの列221および223の値の出現を検討する。
[0071]スコア計算モジュール202は、列221/スコア231および列223/スコア233を、件名列選択モジュール203に送信することができる。件名列選択モジュール203は、スコア計算モジュール202から列221/スコア231および列223/スコア233を受信することができる。
[0072]方法300は、計算されたスコアに従って、件名列候補の少なくとも1つを、テーブルの件名列として選択するステップ(304)を含む。たとえば、件名列選択モジュール203は、スコア231および233に従って、列223を件名列として分類することができる。列223の件名列としての選択は、テーブル注釈モジュール103、特徴計算モジュール104、およびインデックス構築モジュール106の1つまたは複数に送信されてもよい。
[0073]一部の実施態様において、複数の件名列が識別される。たとえば、テーブルは、たとえばさまざまな言語で、省略形を使用して、などのような、テーブルの件名を参照する複数の方法を含むことができる。また、件名列は、たとえば姓および名のように、複数の列の間で分割される場合もある。
[0074]件名列検出の場合、Webテーブルのコーパスにおける列名のペアの共起もまた活用される。候補件名列の列名ペアが多少定期的に出現する場合、これが件名列およびその件名に属する属性である尤度は増大している。実際のセル値もまた、同様に検討されてもよい。
[0075]そのようなものとして、件名列を識別することは、次いでその他の列が件名列の属性であることが決定され得るので、有用である。ユーザーは、固有の属性を検索することができる。ユーザーが、各自のテーブルを有する場合、件名列検索は、データ探知データ検索について実行されてもよい。たとえば、ユーザーは、特定の件名に関連するスプレッドシートで作業している場合もある。ユーザーは、特定の件名をカバーし、母集団を有するテーブルを検索するために、「人口を追加」を入力することができる。
[0076]テーブルを使用する列ヘッダー検出
[0077]図4は、テーブルの列ヘッダーの検出を容易にする例示のコンピューターアーキテクチャ400を示す。図4を参照すると、コンピューターアーキテクチャ400は、候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403を含む。候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403の各々は、たとえばローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットなどのような、ネットワークを介して相互に接続されてもよい(またはネットワークの一部であってもよい)。したがって、候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403、ならびに任意の他の接続されたコンピューターシステムおよびそれらのコンポーネントの各々は、メッセージ関連データを作成し、ネットワークを介してメッセージ関連データ(たとえば、インターネットプロトコル(「IP」)データグラム、および伝送制御プロトコル(「TCP」)、ハイパーテキスト転送プロトコル(「HTTP」)、簡易メール転送プロトコル(「SMTP」)などのようなIPデータグラムを利用するか、またはその他の非データグラムプロトコルを使用するその他の上位レイヤプロトコル)を交換することができる。
[0078]候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403は、テーブル理解モジュール102に含まれてもよい。あるいは、候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403は、テーブル理解モジュール102の外部で動作することができる。
[0079]候補列名構築モジュール401は、テーブル定義データから候補列名を構築するように構成される。テーブル定義データは、テーブルを定義するデータ、およびテーブルから導かれたデータを含むことができる。候補列名構築モジュール401は、明示的列ヘッダー(たとえば、<th>または<thead>ハイパーテキストマークアップ言語(HTML)タグ内)で出現する列名、および/またはテーブル内のデータの第1行で出現する列名を含む候補列名のセットを作成することができる。
[0080]頻度計算モジュール402は、任意のテーブルで(たとえば、テーブルセット424で)列名またはセル値として出現する各文字列について出現の頻度を計算するように構成されてもよい。頻度計算モジュール402は、文字列を候補列名として含むテーブルの数(CCNFreq)、および文字列をそれ以外の場合に含む(つまり、候補列名としてではなく)テーブルの数(Non−CCNFreq)を計算することができる。
[0081]列ヘッダー検出モジュール403は、テーブル内の文字列に対するCCNFreqおよびNon−CCNFreqに基づいて列ヘッダーとしてテーブルの行を検出するように構成されてもよい。たとえば、データの第1行の文字列(値)が、Non−CCNFreqよりも高いCCNFreqを有する場合、第1行は列ヘッダーである可能性がより高い。
[0082]さらに具体的には、たとえば、V、V、...、Vは、テーブルの第1のデータ行内の値を表すことができる。CCNFreq(V)は、Vが出現するテーブルの数を、明示的列ヘッダー(たとえば、<th>または<thead>内)として、またはデータの第1行(たとえば、列ヘッダーが明示的に定義されない場合)として指示する。Non−CCNFreq(V)は、明示的ヘッダーまたはデータの第1行として以外に、Vが出現するテーブルの数を指示する。行は、CCNFreq(V)>Non−CCNFreq(V)である値Vの割合が指定されたしきい値(たとえば、5)を超える場合に、列ヘッダーとして選択されてもよい。一部の態様において、列ヘッダー検出モジュール403は、式457に従って列ヘッダーを選択する。式457において、θは、列ヘッダーの検出に関連付けられている厳密性に応じて異なってもよい。
[0083]列ヘッダー検出モジュール403はまた、テーブルが、明示的に定義された列名を有するかどうか、および/または値V、V、...、Vのいずれかが数値であるかどうかを検討することもできる。テーブルが明示的に定義された列名を有する場合、明示的に定義された列名以外の名前を含む行は、列ヘッダーになる可能性がより低い。同様に、行が数値を含む場合、行が列ヘッダーになる可能性はより低い。
[0084]候補セル内の個々のトークンの頻度もまた、検討されてもよい。1つの態様において、頻度計算モジュール402は、任意のテーブルで(たとえば、テーブルセット424で)列名またはセル値として出現する文字列(たとえば、候補列名)の各トークンについて出現の頻度を計算するように構成されてもよい。たとえば、トークン「平均」および「降水量」は、文字列「平均降水量」から識別されてもよい。「平均」および「降水量」の頻度は、これらのトークンがその他の場所において出現し得るので、別個に計算されてもよい。たとえば、「降水量」は、列名として単独で出現する可能性もある。「平均」は、列名「平均気温」に出現する可能性もある。
[0085]頻度計算モジュール402はまた、トークンレベル頻度に適切な集約関数を実施することができる。
[0086]列ヘッダー検出モジュール403は、テーブル内のトークンに対するCCNFreqおよびNon−CCNFreqに基づいて列ヘッダーとしてテーブルの行を検出するように構成されてもよい。
[0087]図5は、テーブルの列ヘッダーを検出するための例示の方法500を示す流れ図である。方法500は、コンピューターアーキテクチャ400のコンポーネントおよびデータに関して説明される。
[0088]方法500は、テーブルを定義するデータからテーブルの候補列名のセットを構築するステップ(501)を含む。たとえば、候補列名構築モジュール401は、テーブル411およびテーブル定義412を受信することができる。テーブル定義412は、テーブル411の一部のプロパティを定義することができる。示されているように、テーブル411は、行421(第1の行)、422、423などを含む。各行は、潜在的に列名である値を含む。行421は、値421A、421B、421Cなどを含む。行422は、値422A、422B、422Cなどを含む。行423は、値423A、423B、423Cなどを含む。
[0089]テーブル定義412から、候補列名構築モジュール401は、列名がテーブル411について明示的に定義されていないと決定することができる。そのようなものとして、候補列名構築モジュール401は、行421(第1の行)の値から候補列名のセットを構築することができる。たとえば、候補列名構築モジュール401は、候補列名421A、候補列名421Bなどを構築することができる。
[0090]候補列名構築モジュール401は、候補列名421A、候補列名421Bなどを、頻度計算モジュール402に送信することができる。頻度計算モジュール402は、候補列名構築モジュール401から、候補列名421A、候補列名421Bなどを受信することができる。
[0091]方法500は、候補列名のセット内の各候補列名について、候補列名の候補列名頻度を、その他のテーブルのセットから、同じくその候補列名を候補列名として含む1つまたは複数のその他のテーブルを識別することによって計算するステップ(502)を含む。たとえば、頻度モジュール402は、候補列名421Aの候補頻度411を計算することができ、候補列名421Bの候補頻度413を計算することができるなどである。候補頻度411を計算するために、頻度モジュール402は、テーブルセット424(たとえば、Webテーブルのセット)から、同じく候補列名421Aを候補列として含む1つまたは複数のテーブルを識別することができる。同様に、候補頻度413を計算するために、頻度モジュール402は、テーブルセット424から、同じく候補列名421Bを候補列として含む1つまたは複数のテーブルを識別することができる。同様の計算は、その他の候補列名の候補頻度(つまり、行421のその他の値)を計算するために行われてもよい。
[0092]方法500は、候補列名のセット内の各候補列名について、候補列名の非候補列名頻度を、その他のテーブルのセットから、その候補列名を候補列名以外として含む第2の1つまたは複数のその他のテーブルを識別することによって計算するステップ(503)を含む。たとえば、頻度モジュール402は、候補列名421Aの非候補頻度412を計算することができ、候補列名421Bの非候補頻度414を計算することができるなどである。非候補頻度412を計算するために、頻度モジュール402は、テーブルセット424から、候補列名421Aを含むが候補列名としては含まない1つまたは複数のテーブルを識別することができる。同様に、非候補頻度413を計算するために、頻度モジュール402は、テーブルセット424から、同じく候補列名421Bを含むが候補列名としては含まない1つまたは複数のテーブルを識別することができる。同様の計算は、その他の候補列名の非候補頻度(つまり、行421のその他の値)を計算するために行われてもよい。
[0093]頻度計算モジュール402は、候補列名421Aを、候補頻度411および非候補頻度412と共に、列ヘッダー検出モジュール403に送信することができる。同様に、頻度計算モジュール402は、候補列名421Bを、候補頻度413および非候補頻度414と共に、列ヘッダー検出モジュール403に送信することができる。列ヘッダー検出モジュール403は、候補列名421Aを、候補頻度411および非候補頻度412と共に、頻度計算モジュール402から受信することができる。同様に、列ヘッダー検出モジュール403は、候補列名421Bを、候補頻度413および非候補頻度414と共に、頻度計算モジュール402から受信することができる。列ヘッダー検出モジュール403はまた、テーブル定義データ412およびテーブル411にアクセスすることができる。
[0094]方法500は、行に含まれる候補列名の少なくとも指定されたしきい値が、非候補列名頻度よりも大きい候補列名頻度を有する場合、テーブルの行を列ヘッダーとして選択するステップ(504)を含む。たとえば、列ヘッダー検出モジュール403は、行421を、列ヘッダーまたはテーブル421として検出することができる。列ヘッダー検出モジュール403は、行421内の候補列名の指定されたしきい値(たとえば、5)が、非候補頻度よりも大きい候補頻度を有することを決定することができる。たとえば、候補列名421Aについて、列ヘッダー検出モジュール403は、候補頻度411が非候補頻度412よりも大きいことを決定することができる。同様に、候補列名421Bについて、列ヘッダー検出モジュール403は、候補頻度413が非候補頻度414よりも大きいことを決定することができる。
ナレッジベースを使用する列ヘッダー検出
[0095]A.概念化を使用してヘッダーが正しいかどうかを検出する
[0096]ナレッジベースを使用して、列ヘッダーは検出されてもよい、および/または列ヘッダー検出が改善されてもよい(たとえば、行を列ヘッダーとして選択する際の信頼性が高まる)。一般に、概念は、インスタンスのセットから推論されてもよく、「概念化」と称されてもよい。概念化は、ナレッジベースに基づいてもよい。一部の態様において、概念化は、ヘッダーが正しいかどうかを決定するために使用される。図6を参照すると、図6は、例示のテーブル600(たとえば、Webテーブル)を示す。テーブル600内で、列ヘッダー602「国」は、値オーストラリア、米国、南アフリカなどから推論されてもよい。そのようなものとして、列ヘッダー602は、列601内の値の上位語または概念である。したがって、列ヘッダー602「国」は、正しい列ヘッダーである可能性が高い。
[0097]図7を参照すると、図7は、インスタンスのセットから概念を推論するために使用されるさまざまな式を示す。ナレッジベース(たとえば、ナレッジベース114内)は、数千万の概念−インスタンスのペアを含むことができる。式701は、観察されるインスタンスのセットを表す。観察されるインスタンスについて、インスタンスを説明するより代表的な概念のセットが抽象化されてもよい。概念の確率は、式702に示される単純ベイズモデルを使用して推定されてもよい。式702において、cは概念であり、式703に示されるように、ここでP(e、c)は、インスタンスおよび概念の共起に比例し、P(c)は、cの観察される頻度にほぼ比例する。式702において、ノイズを除去して、概念の多様性を導入するために、ラプラススムージングが使用される。
[0098]式701、702、および703に基づいて、より大きい事後確率を伴う概念が、観察されるインスタンスを説明する可能性がより高い概念としてランク付けされる。たとえば、インスタンス「中国」、「ロシア」、「インド」、および「米国」を所与として、国が概念として提示されてもよい。しかし、「中国」、「インド」、および「ロシア」を所与として、進行成長市場が概念として提示されてもよい。
[0099]B.属性データおよび属性概念化技法の使用
[0100]名前を含むヘッダー行は、同じ概念に属し得るより明らかな列名を含むことができる。図8を参照すると、図8は、例示の列ヘッダー800を示す。列ヘッダー800の列名は、同じ概念に属すことができる。
[0101]一般に、列名は、列ヘッダーから抽出されて、列名リストを生成することができる。次いで、列名リスト内の列名が同じ上位語に概念化され得るかどうかが決定されてもよい。概念ベースおよびインスタンスベースの属性抽出の構文パターンは、文書を処理して属性を抽出するためにWebコーパスで使用されてもよい。概念ベースの抽出の構文パターンは、the□a□of(the/a/an)□c□[is]のように表されてもよい。インスタンスベースの抽出の構文パターンは、the□a□of(the/a/an)□i□[is]のように表されてもよい。
[0102]構文パターン内で、□a□は、構文パターンと一致するテキストから取得されるべきターゲット属性であり、□c□は、属性が取得されるべき概念であり、□i□は、概念□c□のインスタンス(下位概念またはエンティティ)である。□c□および□i□はいずれも、ナレッジベース意味ネットワークを形成することができる。たとえば、概念□c□=wineの属性を見つけるとする。「...the acidity of a wine is an essential component of the wine...(ワインの酸味はワインの本質的な要素)」という文から、□a□=acidityは、ワインの候補属性である。さらに、「the taste of Bordeaux is...(ボルドーの風味は)」という文から、□a□=tasteは、「Bordeaux」の属性である。ナレッジベースから、「Bordeaux」がワインの概念のインスタンスであることが決定されてもよい。したがって、□a□=tasteはまた、ワインの候補属性である。
[0103]属性のリストにより、概念にとって各属性がどの程度重要であるか、および/またはどの程度典型的であるかが決定されてもよい。そのようなものとして、典型性スコアが、属性について計算されてもよい。さらに具体的には、
P(c|a)は、属性aを所与として、概念cがどの程度典型的であるかを示す。
P(a|c)は、概念cを所与として、属性aがどの程度典型的であるかを示す。
[0104]典型性スコアを計算するため、概念ベースの抽出からの属性、およびインスタンスベースの抽出からの属性、という2つの事例が検討されてもよい。
[0105]図9は、抽出された属性の典型性スコアを計算するために使用されるさまざまな式を示す図である。概念ベースの抽出の場合、(c、a、n(c、a))の形式を伴う属性リストが取得されてもよい。このリストをcによりグループ分けすることで、cに関して観察された属性のリストおよびそれらの頻度分布が決定されてもよい。この情報により、典型性スコアP(a|c)は、式901において示されるように取得されてもよい。
[0106]インスタンスベースの抽出の場合、(i、a、n(c、a))の形式を伴う1つまたは複数の属性リストが取得されてもよい。各々異なるインスタンスベースのリストは、たとえば、それぞれWeb文書、クエリログ、およびナレッジベースのような、異なるデータコーパスから取得されてもよい。別個の典型性スコアは、各々異なるインスタンスベースのリストから計算されてもよい。次いで、インスタンスベースのリストについての別個の典型性スコアは、概念ベースのリストの典型性スコアと集計されてもよい。インスタンスベースのパターンを概念と結び付けるために、P(a|c)は、式902において示されるように展開されてもよい。
[0107]式902における展開により、P(a|i、c)およびP(i|c)は、典型性スコアを決定するために計算されてもよい。たとえば、インスタンスベースのパターン「the age of George Washington(ジョージワシントンの年齢)」を検討する。インスタンスベースのパターンは、「George Washington」が大統領という概念のインスタンスであることを認識して、大統領という概念の年齢の典型性スコア付けに寄与することができる。式902において、P(a|i、c)は、その基礎をなす概念が大統領である場合に「George Washington」の年齢の属性典型性を定量化し、一方P(i|c)は、大統領という概念に対して「George Washington」がどの程度代表的であるかを表す。
[0108]この単純化の仮定の下に、P(a|i、c)は、式903において示されるように計算されてもよく、P(i|c)は、式904において示されるように計算されてもよい。式903および904に基づいて、P(c|i)は、ナレッジベースから取得されてもよい。P(c|i)は、所与のインスタンスiに対して概念cがどの程度可能性があるかを表す。P(c|i)=1は、概念−インスタンスがナレッジベース内で観察され、P(c|i)=0は、それ以外の場合である。
[0109]典型性スコアにより、推論を実行するためにマシンが使用され得る。つまり、属性のセットに基づいて、より可能性の高い概念を見出すことである。たとえば、式905において示されるように概念cを見出すことであり、ここでAは属性のシーケンスである。概念の確率は、式906に示されるように単純ベイズモデルを使用して推定されてもよい。
[0110]C.列ヘッダーを検出するための発見的ルールの使用
[0111]発見的ルールもまた、列ヘッダーを検出するために使用され得る。たとえば、ヘッダー行のセルタイプがその他のセルのセルタイプと異なる場合、ヘッダー行は列名ヘッダーである可能性が高い。図10を参照すると、図10は、例示のテーブル1000(たとえば、Webテーブル)を示す。テーブル1000内で、セル1013、1014、1015、1016、および1017は、文字列であるが、列1003、1004、1005、1005、および1007の他のセル内の値は数字である。したがって、セル1013、1014、1015、1016、および1017は、列ヘッダー(すなわち、列ヘッダー1022)の一部である可能性が高い。そのようなものとして、たとえ行が列ヘッダーとして明示的には定義されていない場合であっても、列ヘッダー1022を列ヘッダーとして識別することが可能である。
[0112]列内のセル内のトークンの長さおよび/または数と、その他のセル内のトークンの長さおよび/または数との対比も、検討されてもよい。たとえば、セル1011は、「郡」および「名」という2つのトークンを含む。件名列1021内のその他のセルは、1つのトークンを含む。同様に、セル1012は、「郡」および「庁所在地」という2つのトークンを含む。列1002内のその他のセルは、1つのトークンを含む。したがって、セル1011および1012は、列ヘッダー(たとえば、列ヘッダー1022)の一部である可能性が高い。
[0113]列内のセルおよびその他のセルの内容が、同じかまたは異なる正規表現で要約されるかどうかもまた、検討されてもよい。たとえば、列1013は、セル値「設立年」、「1854」、「1839」、「1760」などを含む。しかし、「設立年」は、「1854」、「1839」、「1760」などの各々を要約する最小一致正規表現とは異なる最小一致正規表現で要約される。したがって、セル1013は、列ヘッダー(たとえば、列ヘッダー1022)の一部である可能性が高い。
[0114]もう1つの例において、列は、セル値「社会保障番号」、「123−45−678」、「345−67−8901」、「678−90−1234」を含むことができる。すべてのセルは、同じ数の文字を有する。しかし、「社会保障番号」は、「123−45−678」、「345−67−8901」、「678−90−1234」の各々を要約する最小一致正規表現とは異なる最小一致正規表現で要約される。そのようなものとして、「社会保障番号」を含むセルは、列ヘッダーの一部である可能性が高い。
[0115]複数行の列ヘッダー
[0116]本発明の態様は、複数行の列ヘッダーを検出するために使用されてもよい。たとえば、一部のテーブルは、行に相当するページごとに複製されたヘッダー行を有する。その他のテーブルは、複数のヘッダー行を使用し、ここで1つの行はより一般的であり、別の行はより具体的である。たとえば、テーブルは、第1および第2の列に及ぶセル値「気温」を伴う行を有することができる。テーブルは、第1の列にセル値「平均」、第2の列に「最高」を伴うもう1つの行を有することができる。候補列名構築モジュール401、頻度計算モジュール402、および列ヘッダー検出モジュール403は、テーブルの複数のヘッダー行を検出するように構成されてもよい。
[0117]テーブルの理解
[0118]図11は、テーブルの理解を容易にする例示のアーキテクチャ1100を示す。図11を参照すると、コンピューターアーキテクチャ1100は、件名列検出器1101および列ヘッダー検出器1102を含む。件名列検出器1101および列ヘッダー検出器1102の各々は、たとえばローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットなどのような、ネットワークを介して相互に接続されてもよい(またはネットワークの一部であってもよい)。したがって、件名列検出器1101および列ヘッダー検出器1102、ならびに任意の他の接続されたコンピューターシステムおよびそれらのコンポーネントの各々は、メッセージ関連データを作成し、ネットワークを介してメッセージ関連データ(たとえば、インターネットプロトコル(「IP」)データグラム、および伝送制御プロトコル(「TCP」)、ハイパーテキスト転送プロトコル(「HTTP」)、簡易メール転送プロトコル(「SMTP」)などのようなIPデータグラムを利用するか、またはその他の非データグラムプロトコルを使用するその他の上位レイヤプロトコル)を交換することができる。
[0119]一般に、件名列検出器1101は、テーブルの1つまたは複数の件名列を検出することができる。1つまたは複数の件名列を検出するために、件名列検出器1101は、コンピューターアーキテクチャ200のモジュールの1つまたは複数を実施すること、および説明される任意の関連するアルゴリズムを使用することができる。一般に、列ヘッダー検出器1102は、テーブルの列ヘッダーを検出するように構成される。列ヘッダーを検出するために、列ヘッダー検出器1102は、コンピューターアーキテクチャ400のモジュールの1つまたは複数を実施すること、および説明される任意の関連するアルゴリズムを使用することができる。
[0120]件名列検出器1101および列ヘッダー検出器1102は、テーブル理解モジュール102に含まれてもよい。あるいは、件名列検出器1101および列ヘッダー検出器1102は、テーブル理解モジュール102の外部で動作することができる。
[0121]示されているように、テーブル1111(たとえば、Webテーブル)は、列1112A〜1112Fおよび行1113A〜1113Mを含む。件名列検出器1101および列ヘッダー検出器1102の各々は、テーブル1111にアクセスすることができる。
[0122]件名列検出器1101は、テーブル1111の件名列を検出することができる。テーブル1111の件名列を決定するために、件名列検出器1101は、列1112A、1112D、および1112E(左端の3つの非数値列)を検討することができる。説明されているアルゴリズムのいずれかを使用して、件名列検出器1101は、列1112A、1112D、および1112Eの各々のスコアを計算することができる。たとえば、列スコアは、他のテーブルの列名を伴うテーブル値の共起、および/またはナレッジベース内のテーブルエンティティおよび列名の共起から計算されてもよい。計算されたスコアに基づいて、列1112A、1112B、および1112Eから列は、テーブル1111の件名列として検出されてもよい。たとえば、列1112Aは、テーブル1111の件名列として選択されてもよい。
[0123]列ヘッダー検出器1102は、テーブル1111のヘッダー行を検出することができる。テーブル1111の列ヘッダーを決定するために、列ヘッダー検出器1102は、たとえば、Webテーブルを使用する列ヘッダー検出、ナレッジベースを使用する列ヘッダー検出、概念化、発見的教授法などのような、説明されているアルゴリズムのいずれかを使用して、テーブル1111の行を列ヘッダーとして検出することができる。たとえば、列ヘッダー検出器1102は、データ定義テーブル1111からテーブル1111の候補列名のセットを構築することができる。列ヘッダー検出器1102候補は、各候補列名について列名頻度および非候補列名頻度を計算することができる。列ヘッダー検出器1102候補は、計算された頻度に基づいて、テーブル1111の行を列ヘッダーとして選択することができる。たとえば、行1113Aは、テーブル1111の列ヘッダーとして検出されてもよい。
[0124]本発明の実施態様は、リレーショナルデータベース内のテーブル、またはWebページから抽出されたHTMLテーブルのような構造化された情報にインデックスを作成し、ユーザーが構造化された情報(テーブル)を検索できるようにする構造化データ検索システム(SDSS)において使用されてもよい。SDSSは、構造化された情報にわたりインデックスを作成し、複数の検索メカニズムを提供することができる。1つの検索メカニズムは、ユーザーが「アフリカ諸国のGDP」のようなキーワードクエリをSDSSに提示する、キーワード検索である。SDSSは、ユーザーの情報ニーズを適切に満たすランク付けされたテーブルのリストを返す。もう1つのメカニズムは、ユーザーが(たとえば、スプレッドシートに存在する)エンティティのセット、およびオプションとして追加のキーワードをSDSSに指定する、データ探知データである。SDSSは、そのエンティティのセットに対して要求された情報を含むテーブルを返す。
[0125]本発明は、その精神または本質的特徴を逸脱することなくその他の特定の形態で実施されてもよい。説明される実施態様は、あらゆる点で、限定的ではなく、単に例示的なものとしてみなされるべきである。したがって、本発明の範囲は、上記の説明によってではなく、添付の特許請求の範囲によって指示される。特許請求の範囲の等価の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるものとする。

Claims (33)

  1. テーブルの1つまたは複数の件名列を検出するための方法であって、
    前記テーブルから指定された数の列を件名列候補として選択するステップであって、各件名列候補は前記テーブルの件名列の候補であり、各件名列候補は複数の値を含む、ステップを備え、
    各件名列候補については、
    複数の他のテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別するステップと、
    前記識別された出現に基づいて前記件名候補列のスコアを計算するステップであって、前記計算されたスコアは前記候補列が件名列である尤度を指示する、ステップとを備え、さらに
    前記計算されたスコアに従って、前記件名列候補の少なくとも1つを前記テーブルの件名列として選択するステップを備える方法。
  2. 前記テーブルから指定された数の列を件名列候補として選択するステップは、前記テーブルの指定された数の左端の列を件名列候補として選択するステップを備える請求項1に記載の方法。
  3. 前記テーブルの指定された数の左端の列を件名列候補として選択するステップは、前記テーブルの指定された数の左端の非数値列を件名列候補として選択するステップを備える請求項2に記載の方法。
  4. 前記テーブルから指定された数の列を件名列候補として選択するステップは、前記指定された数の列内のセル値の個別性に基づいて、前記テーブルから指定された数の列を件名列候補として選択するステップを備える請求項1に記載の方法。
  5. 前記テーブルから指定された数の列を件名列候補として選択するステップは、リレーショナルテーブルから指定された数の列を選択するステップを備える請求項1に記載の方法。
  6. 前記テーブルから指定された数の列を件名列候補として選択するステップは、Webテーブルから指定された数の列を選択するステップを備える請求項1に記載の方法。
  7. 複数の他のテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別するステップは、複数のWebテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別するステップを備える請求項1に記載の方法。
  8. 前記件名列候補の少なくとも1つを前記テーブルの件名列として選択するステップは、複数の前記件名列候補を前記テーブルの件名列として選択するステップを備える請求項1に記載の方法。
  9. コンピューターシステムにおける、前記コンピューターシステム、1つまたは複数の行を含むテーブルの列ヘッダーを検出するための方法であって、
    前記テーブルを定義するデータから前記テーブルの候補列名のセットを構築するステップを備え、
    候補列名の前記セット内の各候補列名については、
    前記候補列名の候補列名頻度を、その他のテーブルのセットから、同じく前記候補列名を候補列名として含む1つまたは複数のその他のテーブルを識別することによって計算するステップと、
    前記候補列名の非候補列名頻度を、その他のテーブルの前記セットから、前記候補列名を候補列名以外として含む第2の1つまたは複数のその他のテーブルを識別することによって計算するステップとを備え、さらに
    前記行に含まれる候補列名の少なくとも指定されたしきい値が、非候補列名頻度よりも大きい候補列名頻度を有する場合、前記テーブルの行を列ヘッダーとして選択するステップを備える方法。
  10. 候補列名のセットを構築するステップの前に、前記テーブルを定義する前記データが列ヘッダーを明示的に定義しないことを決定するステップをさらに備える請求項9に記載の方法。
  11. 前記テーブルを定義する前記データが列ヘッダーを明示的に定義しないことを決定するステップは、前記テーブルを定義する前記データがハイパーテキストマークアップ言語(HTML)<th>タグを含まず、ハイパーテキストマークアップ言語(HTML)<thead>タグを含まないことを決定するステップを備える請求項10に記載の方法。
  12. 候補列名のセットを構築するステップの前に、前記テーブルに明示的に定義された列ヘッダーが不足していることを決定するステップをさらに備える請求項9に記載の方法。
  13. 前記テーブルの候補列名のセットを構築するステップは、前記テーブルの第1の行に含まれる列名から前記テーブルの候補列名のセットを構築するステップを備える請求項9に記載の方法。
  14. 前記テーブルの候補列名のセットを構築するステップは、リレーショナルWebテーブルの候補列名のセットを構築するステップを備える請求項9に記載の方法。
  15. 前記テーブルの行を列ヘッダーとして選択するステップは、前記テーブルの第1の行を前記列ヘッダーとして選択するステップを備える請求項9に記載の方法。
  16. 前記テーブルの前記行を前記列ヘッダーとして選択する際の信頼性を、前記選択された行の少なくとも1つの列が前記少なくとも1つの列に含まれるセル値の上位語であることを推論することによって高めるステップをさらに備える請求項9に記載の方法。
  17. コンピューターシステムにおける、前記コンピューターシステム、1つまたは複数の行を含むテーブルの列ヘッダーを検出するための方法であって、
    前記テーブルの候補列名のセットを構築するステップと、
    候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることを、前記列に含まれるセル値に基づいて推論するステップと、
    前記列を前記テーブルの列ヘッダーとして含む行を選択するステップとを備える方法。
  18. 候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であること推論するステップは、候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることをナレッジベースを参照することにより推論するステップを備える請求項17に記載の方法。
  19. 候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることをナレッジベースを参照することにより推論するステップは、1つまたは複数の概念属性および1つまたは複数のインスタンス属性を前記ナレッジベースから抽出するステップを備える請求項18に記載の方法。
  20. 前記列を前記テーブルの列ヘッダーとして含む前記行を選択するステップの前に、候補列名の前記セットに含まれる別の列について、前記列ヘッダーのセルタイプと前記列内のその他のセルのセルタイプが異なることを決定するステップをさらに備える請求項18に記載の方法。
  21. 1つまたは複数のプロセッサーと、
    システムメモリと、
    テーブルの1つまたは複数の件名列を検出するための件名列検出器を表すコンピューター実行可能命令を格納された1つまたは複数のコンピューターストレージ媒体とを備え、前記件名列検出器は、
    前記テーブルから指定された数の列を件名列候補として選択するように構成され、各件名列候補は、前記テーブルの件名列の候補であり、各件名列候補は、複数の値を含み、
    各件名列候補については、
    複数の他のテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別し、
    前記識別された出現に基づいて前記件名候補列のスコアを計算するように構成され、前記計算されたスコアは前記候補列が件名列である尤度を指示し、さらに
    前記計算されたスコアに従って、前記件名列候補の少なくとも1つを前記テーブルの件名列として選択するように構成されるシステム。
  22. 前記件名列検出器が前記テーブルから指定された数の列を件名列候補として選択するように構成されることは、前記件名列検出器が前記テーブルの指定された数の左端の列を件名列候補として選択するように構成されることを備える請求項21に記載のシステム。
  23. 前記件名列検出器が前記テーブルから指定された数の列を件名列候補として選択するように構成されることは、前記指定された数の列内のセル値の個別性に基づいて前記件名列検出器が前記テーブルの指定された数の列を件名列候補として選択するように構成されることを備える請求項21に記載のシステム。
  24. 前記件名列検出器が複数の他のテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別するように構成されることは、前記件名列検出器が複数のWebテーブルにわたり1つまたは複数の列名とペアにされている前記複数の値から任意の値の出現を識別するように構成されることを備える請求項21に記載のシステム。
  25. 前記件名列検出器が前記件名列候補の少なくとも1つを前記テーブルの件名列として選択するように構成されることは、前記件名列検出器が複数の前記件名列候補を前記テーブルの件名列として選択するように構成されることを備える請求項21に記載のシステム。
  26. 1つまたは複数のプロセッサーと、
    システムメモリと、
    列ヘッダー検出器を表すコンピューター実行可能命令を格納された1つまたは複数のコンピューターストレージ媒体とを備え、前記件名列検出器はテーブルの1つまたは複数の件名列を検出するためのものであり、前記件名列検出器は、
    前記テーブルを定義するデータから前記テーブルの候補列名のセットを構築するように構成され、
    候補列名の前記セット内の各候補列名については、
    前記候補列名の候補列名頻度を、その他のテーブルのセットから、同じく前記候補列名を候補列名として含む1つまたは複数のその他のテーブルを識別することによって計算し、
    前記候補列名の非候補列名頻度を、その他のテーブルの前記セットから、前記候補列名を候補列名以外として含む第2の1つまたは複数のその他のテーブルを識別することによって計算するように構成され、さらに
    行に含まれる候補列名の少なくとも指定されたしきい値が、非候補列名頻度よりも大きい候補列名頻度を有する場合、前記テーブルの前記行を列ヘッダーとして選択するように構成されるシステム。
  27. 候補列名のセットを構築する前に、前記テーブルに明示的に定義された列ヘッダーが不足していることを決定するように構成された前記件名列検出器をさらに備える請求項26に記載のシステム。
  28. 前記件名列検出器が前記テーブルの候補列名のセットを構築するように構成されることは、前記件名列検出器が前記テーブルの候補列名のセットを前記テーブルの第1の行に含まれる列名から構築するように構成されることを備える請求項26に記載のシステム。
  29. 前記テーブルの前記行を前記列ヘッダーとして選択する際の信頼性を、前記選択された行の少なくとも1つの列が前記少なくとも1つの列に含まれるセル値の上位語であることを推論することによって高めるように構成された前記件名列検出器をさらに備える請求項26に記載のシステム。
  30. 1つまたは複数のプロセッサーと、
    システムメモリと、
    列ヘッダー検出器を表すコンピューター実行可能命令を格納された1つまたは複数のコンピューターストレージ媒体であって、前記件名列検出器はテーブルの1つまたは複数の件名列を検出するためのものであり、前記件名列検出器は、
    前記テーブルの候補列名のセットを構築し、
    候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることを前記列に含まれるセル値に基づいて推論するように構成され、
    前記列を含む行を前記テーブルの列ヘッダーとして選択するように構成される、コンピューターストレージ媒体と
    を備えるシステム。
  31. 前記件名列検出器が候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることを推論するように構成されることは、前記件名列検出器が候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることをナレッジベースを参照することにより推論するように構成されることを備える請求項30に記載のシステム。
  32. 前記件名列検出器が候補列名の前記セットに含まれる列が前記列に含まれるセル値の上位語であることをナレッジベースを参照することにより推論するように構成されることは、前記件名列検出器が1つまたは複数の概念属性および1つまたは複数のインスタンス属性を前記ナレッジベースから抽出するように構成されることを備える請求項30に記載のシステム。
  33. 前記列を含む行を前記テーブルの列ヘッダーとして選択する前に、前記件名列検出器が候補列名の前記セットに含まれる別の列について、前記列ヘッダーのセルタイプと前記列内のその他のセルのセルタイプが異なることを決定するように構成されることをさらに備える請求項30に記載のシステム。
JP2016575801A 2014-06-30 2014-06-30 検索のためのテーブルの理解 Active JP6434542B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/081109 WO2016000115A1 (en) 2014-06-30 2014-06-30 Understanding tables for search

Publications (2)

Publication Number Publication Date
JP2017525033A true JP2017525033A (ja) 2017-08-31
JP6434542B2 JP6434542B2 (ja) 2018-12-05

Family

ID=54930742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016575801A Active JP6434542B2 (ja) 2014-06-30 2014-06-30 検索のためのテーブルの理解

Country Status (7)

Country Link
US (2) US9734181B2 (ja)
EP (1) EP3161673B1 (ja)
JP (1) JP6434542B2 (ja)
CN (1) CN105518667B (ja)
BR (1) BR112016027272A2 (ja)
RU (1) RU2671047C2 (ja)
WO (1) WO2016000115A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019168758A (ja) * 2018-03-22 2019-10-03 Kddi株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
JP2020123233A (ja) * 2019-01-31 2020-08-13 富士ゼロックス株式会社 情報処理装置及びプログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201703829SA (en) * 2014-11-14 2017-06-29 Fujitsu Ltd Recording medium, data acquisition method, and data acquisition device
US10545942B2 (en) * 2016-06-13 2020-01-28 International Business Machines Corporation Querying and projecting values within sets in a table dataset
WO2018066144A1 (ja) * 2016-10-07 2018-04-12 富士通株式会社 インデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システム
CN110020342A (zh) * 2017-08-31 2019-07-16 北京国双科技有限公司 数据的处理方法及装置
JP6984729B2 (ja) * 2018-03-08 2021-12-22 日本電気株式会社 意味推定システム、方法およびプログラム
US10878195B2 (en) * 2018-05-03 2020-12-29 Microsoft Technology Licensing, Llc Automated extraction of unstructured tables and semantic information from arbitrary documents
US11157496B2 (en) * 2018-06-01 2021-10-26 International Business Machines Corporation Predictive data distribution for parallel databases to optimize storage and query performance
US11163764B2 (en) * 2018-06-01 2021-11-02 International Business Machines Corporation Predictive data distribution for parallel databases to optimize storage and query performance
US11443106B2 (en) 2018-09-20 2022-09-13 International Business Machines Corporation Intelligent normalization and de-normalization of tables for multiple processing scenarios
US10831798B2 (en) 2018-09-20 2020-11-10 International Business Machines Corporation System for extracting header labels for header cells in tables having complex header structures
US10776573B2 (en) 2018-09-20 2020-09-15 International Business Machines Corporation System for associating data cells with headers in tables having complex header structures
US11514258B2 (en) 2018-09-20 2022-11-29 International Business Machines Corporation Table header detection using global machine learning features from orthogonal rows and columns
JP2022541199A (ja) * 2019-07-16 2022-09-22 エヌフェレンス,インコーポレイテッド データテーブルの画像表現に基づいて構造化されたデータベースにデータ挿入するためのシステムおよび方法。
CN110516048A (zh) * 2019-09-02 2019-11-29 苏州朗动网络科技有限公司 pdf文档中表格数据的提取方法、设备和存储介质
US11270065B2 (en) * 2019-09-09 2022-03-08 International Business Machines Corporation Extracting attributes from embedded table structures
US11176324B2 (en) * 2019-09-26 2021-11-16 Sap Se Creating line item information from free-form tabular data
CN112287660B (zh) * 2019-12-04 2024-05-31 上海柯林布瑞信息技术有限公司 Pdf文件中的表格解析方法及装置、计算设备、存储介质
US11636082B2 (en) 2020-06-23 2023-04-25 International Business Machines Corporation Table indexing and retrieval using intrinsic and extrinsic table similarity measures
CN111897884B (zh) * 2020-07-20 2024-02-23 北京用友薪畴数字科技有限公司 数据关系信息显示方法、终端设备
US20230161774A1 (en) * 2021-11-24 2023-05-25 International Business Machines Corporation Semantic annotation for tabular data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100114902A1 (en) * 2008-11-04 2010-05-06 Brigham Young University Hidden-web table interpretation, conceptulization and semantic annotation
WO2013049084A1 (en) * 2011-09-26 2013-04-04 Microsoft Corporation Chart recommendations

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680324B2 (en) * 2000-11-06 2010-03-16 Evryx Technologies, Inc. Use of image-derived information as search criteria for internet and other search engines
US7054871B2 (en) * 2000-12-11 2006-05-30 Lucent Technologies Inc. Method for identifying and using table structures
US20060230016A1 (en) * 2005-03-29 2006-10-12 Microsoft Corporation Systems and methods for statistics over complex objects
US7740281B2 (en) * 2007-01-31 2010-06-22 The Ergonomic Group Method and system for producing certified documents and the like
JP4778474B2 (ja) * 2007-05-14 2011-09-21 日本電信電話株式会社 質問応答装置、質問応答方法、質問応答プログラム並びにそのプログラムを記録した記録媒体
US8312366B2 (en) * 2009-02-11 2012-11-13 Microsoft Corporation Displaying multiple row and column header areas in a summary table
CN101556606B (zh) * 2009-05-20 2010-12-01 同方知网(北京)技术有限公司 一种基于Web数值表格抽取的数据挖掘方法
US10394754B2 (en) * 2010-03-08 2019-08-27 International Business Machines Corporation Indexing multiple types of data to facilitate rapid re-indexing of one or more types of data
US20110270815A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Extracting structured data from web queries
US20170262529A1 (en) * 2010-10-01 2017-09-14 Google Inc. Sponsor answers and user-approved, system-suggested links in a social search engine
EP2469421A1 (en) * 2010-12-23 2012-06-27 British Telecommunications Public Limited Company Method and apparatus for processing electronic data
US8566308B2 (en) * 2011-01-26 2013-10-22 International Business Machines Corporation Intelligent adaptive index density in a database management system
JP5536687B2 (ja) * 2011-01-31 2014-07-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 目次と見出しの対応付け方法、対応付け装置、及び対応付けプログラム
US9020947B2 (en) 2011-11-30 2015-04-28 Microsoft Technology Licensing, Llc Web knowledge extraction for search task simplification
CN103198069A (zh) * 2012-01-06 2013-07-10 株式会社理光 抽取关系型表格的方法和装置
DE102012200600A1 (de) 2012-01-17 2013-07-18 Siemens Aktiengesellschaft MRT- Lokalspulenpositions-Erkennung in einem MRT-System
KR101872564B1 (ko) * 2012-01-23 2018-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 무경계 표 검출 엔진
US9665572B2 (en) * 2012-09-12 2017-05-30 Oracle International Corporation Optimal data representation and auxiliary structures for in-memory database query processing
US9047333B2 (en) * 2012-09-20 2015-06-02 Cray Inc Dynamic updates to a semantic database using fine-grain locking
EP2728493A1 (en) * 2012-11-01 2014-05-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus and computer program for detecting deviations in data repositories
US9116940B1 (en) * 2013-04-15 2015-08-25 Google Inc. Searching for join candidates
CN103605641A (zh) * 2013-11-11 2014-02-26 清华大学 一种汉语缩略语自动发现的方法及装置
US9940365B2 (en) * 2014-07-08 2018-04-10 Microsoft Technology Licensing, Llc Ranking tables for keyword search

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100114902A1 (en) * 2008-11-04 2010-05-06 Brigham Young University Hidden-web table interpretation, conceptulization and semantic annotation
WO2013049084A1 (en) * 2011-09-26 2013-04-04 Microsoft Corporation Chart recommendations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JINGJING WANG, ET AL.: "Understanding Tables on the Web", CONCEPTUAL MODELING, JPN6018024655, 18 October 2012 (2012-10-18), pages 141 - 155, XP047020633 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019168758A (ja) * 2018-03-22 2019-10-03 Kddi株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
JP2020123233A (ja) * 2019-01-31 2020-08-13 富士ゼロックス株式会社 情報処理装置及びプログラム
JP7180420B2 (ja) 2019-01-31 2022-11-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Also Published As

Publication number Publication date
US20150379057A1 (en) 2015-12-31
US20170322964A1 (en) 2017-11-09
EP3161673B1 (en) 2020-12-02
WO2016000115A1 (en) 2016-01-07
EP3161673A4 (en) 2018-05-23
EP3161673A1 (en) 2017-05-03
RU2671047C2 (ru) 2018-10-29
BR112016027272A2 (pt) 2021-06-08
RU2016152191A (ru) 2018-07-02
CN105518667A (zh) 2016-04-20
CN105518667B (zh) 2019-06-18
US9734181B2 (en) 2017-08-15
JP6434542B2 (ja) 2018-12-05
RU2016152191A3 (ja) 2018-07-02
US10853344B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
JP6434542B2 (ja) 検索のためのテーブルの理解
US10725836B2 (en) Intent-based organisation of APIs
US9171081B2 (en) Entity augmentation service from latent relational data
Santos et al. Learning to combine multiple string similarity metrics for effective toponym matching
Rajendra Prasad et al. Visual topic models for healthcare data clustering
US10452661B2 (en) Automated database schema annotation
US9619571B2 (en) Method for searching related entities through entity co-occurrence
US10896229B2 (en) Computing features of structured data
US10467256B2 (en) Automatic query pattern generation
KR100980579B1 (ko) 온톨로지에 대한 자연어 질의 검색 방법 및 시스템
US20180232410A1 (en) Refining structured data indexes
CN110209659A (zh) 一种简历过滤方法、系统和计算机可读存储介质
Han et al. Linking fine-grained locations in user comments
JP6145562B2 (ja) 情報構造化システム及び情報構造化方法
US9984684B1 (en) Inducing command inputs from high precision and high recall data
Tabarcea et al. Framework for location-aware search engine
Al-Ghossein et al. Somap: Dynamic clustering and ranking of geotagged posts
Rabiu et al. TEXTUAL AND STRUCTURAL APPROACHES TO DETECTING FIGURE PLAGIARISM IN SCIENTIFIC PUBLICATIONS.
Blanco-Fernández et al. Automatically Assembling a Custom-Built Training Corpus for Improving the Learning of In-Domain Word/Document Embeddings
JP5903372B2 (ja) キーワード関連度スコア算出装置、キーワード関連度スコア算出方法、及びプログラム
Agarwal et al. Scalable resource description framework clustering: A distributed approach for analyzing knowledge graphs using minHash locality sensitive hashing
Cellary et al. Web Information Systems Engineering–WISE 2016: 17th International Conference, Shanghai, China, November 8-10, 2016, Proceedings, Part I
de La Cruz-Caicedo et al. Semantic annotation of SOAP web services based on word sense disambiguation techniques
Mabrouk et al. An efficient semantic graph-based approach for text representation
Chen Dataset Search and Augmentation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170621

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181108

R150 Certificate of patent or registration of utility model

Ref document number: 6434542

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250