JP2012514792A - 文書再構成の方法及びシステム - Google Patents

文書再構成の方法及びシステム Download PDF

Info

Publication number
JP2012514792A
JP2012514792A JP2011544617A JP2011544617A JP2012514792A JP 2012514792 A JP2012514792 A JP 2012514792A JP 2011544617 A JP2011544617 A JP 2011544617A JP 2011544617 A JP2011544617 A JP 2011544617A JP 2012514792 A JP2012514792 A JP 2012514792A
Authority
JP
Japan
Prior art keywords
document
storage medium
instruction set
readable storage
computer
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.)
Pending
Application number
JP2011544617A
Other languages
English (en)
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2012514792A publication Critical patent/JP2012514792A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • 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/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/163Handling of whitespace
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

本発明の種々の実施形態は、構造化文書を規定するために非構造化文書を分析する種々の技術を使用する。非構造化文書は、複数の基本要素を含むが、基本要素間の構造関係を指定する構造要素及び/又はそれらの基本要素に基づく文書の構造属性を含まない。構造化文書を規定するために、非構造化文書の基本要素が使用され、非構造化文書の種々の幾何学的属性を識別する。識別された幾何学的属性及び基本要素の他の属性は、関連する基本要素(例えば、単語、段落、結合グラフ等)、表、ガイド、のど等の構造要素を規定するために並びに基本要素及び構造要素の読み取りフローを規定するために使用される。幾何学的分析及び文書再構成処理(例えば、階層プロファイリング、効率的なクラスタ分析技術、効率的なデータ構造)の効率を向上する種々の方法が提供される。

Description

本発明は、文書再構成に関する。特に、本発明は、非構造化文書から構造化文書を規定し、そのような処理の効率を向上し且つ構造化文書の表示及び構造化文書との対話を向上する方法に関する。
文書は、規定された場所においてページに描かれる基本要素の集合としてのみ規定されることが多い。例えばPDF(Portable Document Format)ファイルは、構造の定義を有さず、種々の場所にグリフ、形状及びビットマップを描く命令にすぎない。
ユーザは、標準的なモニタでそのような文書を閲覧でき且つ構造を推定できる。しかし、そのようなファイルは単に基本要素の集合であるため、文書閲覧アプリケーションは文書の意図する構造の知識を有さない。例えば、表は一連の線及び/又は線の間にテキストを有する一連の矩形として表示され、閲覧者がそれを表として認識する。しかし、文書を表示するアプリケーションは、テキストのグループが行及び列に基づく互いに対する関係を示さない。これは、文書がそのような情報を含まないためである。同様に、アプリケーションは、ページ中のテキストのフロー(例えば、1つの列から次の列へのフロー又は埋め込み画像の周囲のフロー)又はユーザにより即座に判定される種々の他の重要な品質を示すこともない。
ユーザが標準的なモニタで単純に文書を閲覧している時は、この文書構造に関する知識の欠落は常に問題になるわけではない。しかし、多くの場合、読者が構造及び要素間の関係を有するワードプロセッサ、画像編集アプリケーション等により生成された文書であるかのようにファイルにアクセスして編集できることは価値あることである。
従って、非構造化文書を再構成できる方法が必要とされる。同様に、文書の表示(例えば、文書全体を1度に画面に表示するのが現実的でない小型スクリーンデバイスに対する)を理想化するため又は文書の要素のインテリジェント選択を可能にするためにそのような再構成された文書構造を利用する方法が必要とされる。
現在、益々多くのコンピューティングアプリケーションがハンドヘルドデバイス(例えば、携帯電話、メディアプレーヤ等)に移行している。従って、文書再構成技術は、一般に標準的なパーソナルコンピュータより消費電力が少ないそのようなデバイスにおいて実行可能である必要がある。しかし、文書再構成は、相当の計算及びクラスタ分析のようなメモリ集中型手順を使用することが多く、メモリの多くの部分を使用することが多い。従って、一般に文書再構成及び特にクラスタ分析をより効率的にする技術が更に必要とされる。
本発明の種々の実施形態は、構造化文書を規定するために非構造化文書を分析する種々の技術を使用する。いくつかの実施形態において、非構造化文書は、多くの基本要素を含むが、基本要素間の構造関係を指定する構造要素及び/又はそれらの基本要素に基づく文書の構造属性を含まない。従って、構造化文書を規定するために、いくつかの実施形態は、非構造化文書の基本要素を使用して非構造化文書の種々の幾何学的属性を識別し、識別された幾何学的属性及び基本要素の他の属性を使用して関連する基本要素(例えば、単語、段落、結合グラフ等)、表、ガイド、のど等の構造要素を規定し且つ基本要素及び構造要素の読み取りフローを規定する。
上述したように、いくつかの実施形態は、種々の幾何学的属性を識別するために基本要素を使用する。例えばいくつかの実施形態は、基本要素の集合間の境界線及び境界線により制限された領域を識別する方法を提供する。方法は、文書に対して構造要素を規定するために識別された領域を使用し、基本要素及び構造要素に基づいて構造化文書を規定する。いくつかの実施形態において、構造要素を規定することは、特定の領域の基本要素の集合間の関連付けを行うために各領域を別個に分析することを含む。いくつかの実施形態において、構造化文書を規定することは、識別された領域間の階層関係を識別することを含む。
いくつかの実施形態は、多くの単語を含む非構造化文書を分析する方法を提供する。ここで、各単語は関連するグリフの集合であり、各グリフは位置座標を有する。方法は、位置値のクラスタを識別する。各位置値は、1つの単語と関連付けられ、単語の位置揃えの基本であり、その単語のグリフの位置座標から導出される。方法は、識別された位置値のクラスタに基づいて、単語に対する位置揃えガイドの集合を識別する単語に対する境界要素の集合を規定する。方法は、グリフ及び規定された境界要素に基づいて構造化文書を規定する。いくつかの実施形態は、一対の境界要素の間の空白の少なくとも1つの領域を規定し、その空白の領域に基づいて構造化文書を更に規定する。いくつかの実施形態は、密度クラスタリングを使用して位置値のクラスタを識別する。
いくつかの実施形態は、構造要素を規定するため並びに基本要素及び構造要素の読み取りフローを規定するために幾何学的属性及び基本要素の他の属性を使用する。例えばいくつかの実施形態は、各々が非構造化文書における位置を有する複数のグリフを含む非構造化文書を分析する方法を提供する。方法は、グリフの位置に基づいて、異なるグリフの集合を異なる単語として識別するために異なるグリフの集合間の関連付けを行う。方法は、異なる単語の集合を異なる段落として識別するために異なる単語の集合間の関連付けを行う。方法は、段落の読み取り順序を規定するために連続していない段落の間の関連を規定する。異なる単語の集合を異なる段落として識別するために異なる要素の集合間の関連付けを行うために、いくつかの実施形態は、異なるテキスト行である異なる単語の集合間の関連付けを行い、異なる段落である異なるテキスト行の集合間の関連付けを行う。
いくつかの実施形態は、グリフの集合間の境界線を識別し且ついくつかの境界線が表を形成することを識別する方法を提供する。方法は、いくつかの行及び列に配置されたいくつかのセルを含む表に基づいて表の構造要素を規定する。ここで、各セルは関連したグリフの集合を含む。いくつかの実施形態は、より大きな矩形及びそのより大きな矩形内に含まれたいくつかの矩形を形成する境界線の集合を識別することにより境界線が表を形成することを識別する。いくつかの実施形態において、識別された境界線のうち少なくとも一部の境界線はセルを形成する関連したグリフの集合の位置に基づいて推論される。
いくつかの実施形態は、各々が単一のオブジェクトとして規定される多くの基本図形要素を含む非構造化文書を分析する方法を提供する。文書は、基本図形要素が描かれる順序を示す描画順序を有する。方法は、その描画順序が連続する基本図形要素間の位置関係を識別する。方法は、位置関係に基づいて、いくつかの基本図形要素から単一の構造図形要素を規定する。いくつかの実施形態は、第1の基本図形要素及び第2の基本図形要素を含む構造図形要素のサイズを計算することにより描画順序が連続する第1の基本図形要素と第2の基本図形要素との間の位置関係を識別する。
いくつかの実施形態は、幾何学的分析及び文書再構成をより効果的にする方法を提供する。例えばいくつかの実施形態は、複数の基本要素を含む構造化文書を規定するデフォルトの文書再構成動作の集合を提供する方法を提供する。方法は、プロファイルの階層集合を提供する。各プロファイルは、(i)文書再構成結果の集合及び(ii)中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致する場合に文書再構成動作を変更するための結果を含む。階層の下位レベルにおけるプロファイルからの命令は、上位レベルにおけるプロファイルからの命令を無効にする。いくつかの実施形態において、特定のプロファイルに対する命令は、中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致した時にテストされるべきであるプロファイルの階層集合の下位レベルにおけるプロファイルの部分集合を含む。
構造化文書が規定されると、いくつかの実施形態は、構造化文書とのユーザ対話を理想化する種々の技術を提供する。例えばいくつかの実施形態は、非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を表示する方法を提供する。方法は、構造化文書をデバイス(例えば、小型スクリーンデバイス)に表示する。方法は、文書中の関心位置を受信し、関心位置に基づいて階層内の構造要素を関心領域として識別する。方法は、識別された関心領域を強調表示するために文書の表示を変更する。いくつかの実施形態は、関心位置を含む階層の最下位レベルの構造要素を識別し、関心領域として適格な構造要素に到達するまで最下位レベルで識別された構造要素を含む階層の上位レベルの構造要素を識別することにより、構造要素を識別する。いくつかの実施形態は、関心領域から移動するために入力を受信し、構造的に関連する関心領域を強調表示するために文書の表示を変更する。
いくつかの実施形態は、多くのグリフを含む非構造化文書においてテキストの選択を規定する方法を提供する。方法は、関連したグリフの集合及びグリフの読み取りフローを指定する読み取り順序を識別する。方法は、文書を表示し、表示された文書内のテキストの選択のための開始点及び終了点を受信する。方法は、識別されたグリフの集合及び意図された読み取りフローを使用して開始点から終了点までのテキストの選択を規定する。いくつかの実施形態において、関連したグリフの集合は段落であり、読み取り順序は連続しない第1の段落から第2の段落までの読み取りフローを指定する。
いくつかの実施形態は、幾何学的分析及び文書再構成処理の効率を向上する方法を提供する。いくつかの実施形態は、計算集中処理である文書再構成及び/又は幾何学的分析のためのクラスタ分析を使用する。従って、いくつかの実施形態は、文書中の位置に関して規定される多くの基本要素を含む非構造化文書に対して構造を規定する方法を提供する。方法は、最近接する基本要素の対毎のグループを規定し、最近接する対から最も離れた対までの順序に基づいて対毎の基本要素をソートする。方法は、区分を形成するのに十分に離間している対毎の基本要素を識別する単一の値を格納する。方法は、文書に対する構造要素を規定するために、格納された値を使用して区分を識別及び分析する。
いくつかの実施形態は、効率的なデータ構造を使用する方法を更に提供する。例えばいくつかの実施形態は、多くの基本要素を含む非構造化文書を分析及び操作するいくつかの異なる処理を提供する。いくつかの実施形態は、基本要素と関連付けられたデータに対する記憶装置を更に提供する。データの少なくとも一部は、処理とは別個のメモリ空間に格納され、少なくとも2つの異なる処理により共有される。処理は、データに対する参照を使用してデータにアクセスする。データは処理により複製されない。
本発明の新しい特徴を添付の請求の範囲に示す。しかし、本発明のいくつかの実施形態を説明の目的で以下の図面に示す。
いくつかの実施形態の全体の再構成フローを示す図である。 文書のページ、並びにそのページにおいて実行されるいくつかの実施形態の幾何学的分析及び文書再構成から得られる種々の結果を示す図である。 文書のページのゾーンを識別し且つページに対するゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。 いくつかの実施形態において、ページ、並びにページのゾーンを識別し且つページに対するゾーン木を生成するシーケンスを示す図である。 いくつかのゾーンを含む文書のページを示す図である。 回転グループを含む複数のゾーン及びゾーン境界図形を含むページを示す図である。 図5のページに対するいくつかの実施形態のゾーン木を示す図である。 ページ上の回転グループを規定するいくつかの実施形態の処理を概念的に示すフローチャートである。 ゾーン境界及び交点を識別するいくつかの実施形態の処理を概念的に示すフローチャートである。 種々の図形及びテキストを含むページを示す図である。 図10のページに対するゾーン境界区間及び交点を示す図である。 ゾーンを識別するいくつかの実施形態の処理を概念的に示すフローチャートである。 図10のページのゾーンを識別するための図12の処理を適用することを示す図である。 図10のページのゾーンを識別するための図12の処理を適用することを示す図である。 ゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。 ゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。 サイズによりソートされ且つノードグラフに配置された図10のページのゾーンを示す図である。 いくつかの実施形態のゾーン分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 文書中のガイド及びのどを識別するいくつかの実施形態の全体の処理を示すフローチャートである。 2つのテキストカラムを有するページ並びにそのページに対して識別されたガイド及びのどを示す図である。 密度クラスタリングを実行するいくつかの実施形態の処理を概念的に示すフローチャートである。 左揃えガイドを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。 ページ上の左揃えガイドの識別を示す図である。 ページ上の左揃えガイドの識別を示す図である。 ページ上の左揃えガイドの識別を示す図である。 右揃えガイドを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。 文書の領域に対するのどを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。 ページ上ののどの識別を示す図である。 ページ上ののどの識別を示す図である。 ページ上ののどの識別を示す図である。 いくつかの実施形態のガイド及びのど分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 文書のレイアウト及びフローを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。 文書のページに対するレイアウト及びフロー情報を判定するいくつかの実施形態のシーケンスを示す図である。 テキスト行を識別及びマージするいくつかの実施形態の処理を概念的に示すフローチャートである。 6グループのテキスト行の重なりを有するページを示す図である。 図34のテキスト行のグループのマージを示す図である。 差分クラスタリングを実行するいくつかの実施形態の処理を概念的に示すフローチャートである。 差分クラスタリングの一例を示す図である。 テキスト行を分割するいくつかの実施形態の処理を概念的に示すフローチャートである。 テキスト行を分割するいくつかの実施形態の処理を概念的に示すフローチャートである。 ページ上のテキスト行を分割する場所の識別を示すシーケンスを示す図である。 テキスト行を段落にグループ化するいくつかの実施形態の処理を概念的に示すフローチャートである。 ページ上の段落の識別を示す図である。 文書の一部におけるカラム及びレイアウトを識別するいくつかの実施形態の処理を概念的に示すフローチャートである。 2つの異なるページ上の段落を示す図である。 2つの異なるページ上の段落を示す図である。 図43及び図44のページに対するフローグラフの生成を示す図である。 図43及び図44のページに対するフローグラフの生成を示す図である。 いくつかの実施形態のレイアウト及びフロー分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 文書の一部における表を識別するいくつかの実施形態の処理を概念的に示すフローチャートである。 完全な境界を有する表の一例を示す図である。 接続されるが不完全な境界を有する表の一例を示す図である。 境界を有さない表の一例を示す図である。 接続されない境界を有する表の一例を示す図である。 完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理を概念的に示すフローチャートである。 完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理を概念的に示すフローチャートである。 完全な境界を有する表を含むページを示す図である。 接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 接続された境界の集合を有する表の識別及び再構成を示すシーケンスを示す図である。 境界のない表又は接続されない境界を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 境界のない表又は接続されない境界を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 接続されない境界を有する表を識別するためにページに対して図57の処理を適用することを示す図である。 接続されない境界を有する表を識別するためにページに対して図57の処理を適用することを示す図である。 接続されない境界を有する表を識別するためにページに対して図57の処理を適用することを示す図である。 いくつかの実施形態の表識別アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 個々のグラフを結合グラフに結合するいくつかの実施形態の処理を概念的に示すフローチャートである。 ページ上のグラフの結合を示す図である。 結合されるべきグラフを識別するために境界クラスタリングを実行し且つそれらのグラフを結合するいくつかの実施形態の処理を概念的に示すフローチャートである。 広がりが計算される2つの図形オブジェクトをそれぞれ有する2つのページを示す図である。 サブシーケンスに含めるようにクラスタを処理するいくつかの実施形態の処理を示すフローチャートである。 結合されるべきグラフを識別し且つそれらのグラフを1つのグラフとして関連付けるいくつかの実施形態のグラフ結合アプリケーションを概念的に示す図である。 コンテンツの種類に合わせてコンテンツ処理を適合するためにプロファイルを使用するいくつかの実施形態の処理を概念的に示すフローチャートである。 #10封筒のプロファイルに適合する文書を示す図である。 いくつかの実施形態のプロファイルの階層集合を示す図である。 階層プロファイルに従ってコンテンツを処理するいくつかの実施形態の処理を概念的に示すフローチャートである。 階層プロファイリングを使用して文書再構成を実行するいくつかの実施形態の処理を概念的に示すフローチャートである。 いくつかの実施形態が特定の方法を実現する最下位レベルの有効なプロファイルを識別する方法を示す図である。 4つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。 4つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。 4つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。 4つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。 いくつかの実施形態において関心位置の識別に基づいて文書を表示する処理を概念的に示すフローチャートである。 本発明のいくつかの実施形態に従って関心位置が選択され且つ表示が変更される小型スクリーンデバイスにおけるシーケンスを示す図である。 関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第1の詳細な処理を示すフローチャートである。 関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第1の詳細な処理を示すフローチャートである。 関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第2の詳細な処理を示すフローチャートである。 関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第2の詳細な処理を示すフローチャートである。 意味的に再構成された文書を表示するいくつかの実施形態の処理を概念的に示すフローチャートである。 いくつかの実施形態の図82の処理の適用例を示す図である。 意味的に再構成された文書において領域間をナビゲートするいくつかの実施形態の処理を概念的に示すフローチャートである。 小型スクリーンデバイスに対して意味的に再構成された文書のレイアウトを変更するいくつかの実施形態の処理を概念的に示すフローチャートである。 本発明のいくつかの実施形態に従って大きな画面に表示されるような文書のページ及び小型スクリーンデバイス上のページの一部の表示を示す図である。 意味的に再構成された文書においてテキストの選択を判定するいくつかの実施形態の処理を概念的に示すフローチャートである。 いくつかの実施形態に従って意味的に再構成された文書のページにおけるテキストの選択のシーケンスを示す図である。 意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の第1の詳細な処理を示すフローチャートである。 意味的に再構成された文書のページにおける選択に対する第1の開始点及び終了点を示す図である。 図89の処理に従って図90の開始点及び終了点により規定された選択を示す図である。 意味的に再構成された文書のページにおける選択に対する第2の開始点及び終了点を示す図である。 図89の処理に従って図92の開始点及び終了点により規定された選択を示す図である。 意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の第2の詳細な処理を示すフローチャートである。 図94の処理に従って図90の開始点及び終了点により規定された選択を示す図である。 図94の処理に従って図92の開始点及び終了点により規定された選択を示す図である。 クラスタ分析を使用してリソースの制限されたデバイスにおいて文書を意味的に再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 文書が意味的に再構成される際のいくつかの実施形態のシーケンスを示す図である。 間接的にソートされた配列を使用することによりデータセットを区分するいくつかの実施形態の処理を概念的に示すフローチャートである。 9つのデータ項目を含むデータセットの区分を示す図である。 複数の距離尺度でクラスタ分析を同時に実行するいくつかの実施形態の処理を概念的に示すフローチャートである。 クラスタ分析を実行するいくつかの実施形態のクラスタ分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 文書を効率的に再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。 文書が図103の処理に従って構文解析及び分析される際のシーケンスを示す図である。 データが本発明のいくつかの実施形態に従って格納される方法を示す図である。 効率的なメモリ管理技術を使用しつつ、文書再構成処理を実行するAPIを概念的に示す図である。 文書を再構成及び表示し且つ文書と対話するいくつかの実施形態のアプリケーションのソフトウェアアーキテクチャを概念的に示す図である。 図107で説明されたアプリケーション等のコンピュータプログラムを格納するコンピュータ可読媒体を生産するいくつかの実施形態の処理を概念的に示すフローチャートである。 本発明のいくつかの実施形態を実現するコンピュータシステムを概念的に示す図である。
以下の説明において、説明の目的で多くの詳細を示す。しかし、本発明がそれらの特定の詳細を使用せずに実現されてもよいことは、当業者には認識されるだろう。例えばいくつかの例において、以下に説明する技術は特定の順序で行われるものとして説明される。しかし、いくつかの実施形態において、それら技術は説明する順序とは異なる順序で実行される。更にそれら技術は、左から右に読まれる言語(例えば、英語)に関して説明されるが、右から左に読まれる言語に対しても容易に適応されることが当業者には理解されるだろう。
I.概要
本発明のいくつかの実施形態は、非構造化文書から構造化文書を規定する新しい方法を提供する。いくつかの実施形態において、非構造化文書は、形状(例えば、ベクトル図形)、画像(例えば、ビットマップ)及びグリフ(glyph)等の基本要素のみを含むように規定された文書である。いくつかの実施形態において、グリフは、テキスト文字(例えば、英字、数字、句読点又は他のインライン文字)、文字の集合又は文字の一部の視覚表現である。いくつかの実施形態において、グリフは、グリフの輪郭に対するパス定義を含む事前に指定されたスケーラブルベクトル図形の集合であってもよい。いくつかの実施形態において、グリフは種々のサイズに対して最適化された事前に指定されたラスタ画像又はラスタ画像の集合であってもよい。一例として、文字「i」は、ドットの輪郭を示すサブパス及び下部の輪郭を示すサブパスの2つのサブパスを有するパスである単一のグリフにより表現される。別の例として、3つの文字の組み合わせ「ffi」は、順番に現れた場合、個々に現れる文字とは僅かに異なる方法で描かれるリガチャと呼ばれる単一のグリフにより表される場合がある。第3の例として、
等のアクセント符号付き文字は、2つ以上のグリフ(1つは文字を示し、1つはアクセントを示す)により表される場合もあり、単一のグリフ(アクセントを文字と組み合わせる)により表される場合もある。
いくつかの実施形態の非構造化文書は基本要素間の関係又は関連付けを全く指定しないが、他の実施形態においては最低限のそのような関係及び関連付けを指定する。いくつかの実施形態において、非構造化文書はある程度の構造を有してもよいが、構造は理解不能であるか又は信頼できない。いくつかの実施形態において、非構造化文書は、未知の構造を有するか又は構造化されていないと仮定される。
いくつかの実施形態は、基本要素間の関連付け及び関係、基本要素のグループ化及び順序付け、並びに基本要素のグループの特性を含む構造化文書を非構造化文書から生成する。例えばいくつかの実施形態は、非構造化文書の基本要素を使用して非構造化文書の種々の幾何学的属性を識別し、それらの識別した幾何学的属性を使用して(基本要素の他の属性と共に)構造要素を規定する。いくつかの実施形態の構造要素は、関連した基本要素(例えば、単語、段落、結合グラフ等)、ガイド、のど、テキストフロー、表等を含む。これらの構造要素は、いくつかの実施形態において階層的に関連付けられる(例えば、段落はテキスト行を含み、テキスト行は単語を含み、単語は基本グリフを含む)。いくつかの実施形態において、構造化文書は2つの目的を満たす。すなわち、関連した要素(例えば、表を構成する要素)を識別し、基本要素のフロー順序(すなわち、ユーザが文書の基本要素を読み取ると予想される順序)を識別する。
いくつかの実施形態は、非構造化文書を受信すると、その文書をまず構文解析して構成要素(例えば基本要素、並びに座標位置、描画順序等の基本要素に関連した情報)を得る。例えばテキストの大きなブロックは、非構造化文書において複数の文字グリフとして規定される。各文字グリフは、各グリフのサイズを判定する変倍因子(及び適用される他のあらゆる線形変換)と共に、特定のページ上のアンカが配置されるx座標及びy座標を有する。各文字グリフは、特定の順序(1つのグリフが別のグリフに重なる時に実行される合成動作に関係する)でページ上に描かれる。いくつかの実施形態は、基本要素に対して幾何学的分析を実行し、文書の幾何学的属性を規定する。例えばいくつかの実施形態は、基本要素間の境界線及び境界線により境界をつけられた領域を識別するために基本要素を分析する。
図1は、いくつかの実施形態の全体のフローを示す。図示するように、文書100は、最初に(いくつかの実施形態においては、基本要素を識別するために構文解析した後)幾何学的分析モジュール110により分析される。幾何学的分析モジュール110は、境界線及び境界線により境界をつけられた領域等の幾何学的属性を識別するために文書を分析する。いくつかの実施形態において、領域は直線及び細い矩形等の基本要素により境界をつけられたゾーン(すなわち、特定の基本形状及び画像)を含む。
図2は、入力文書のページ200、並びに幾何学的分析及び文書再構成から得られた種々の結果を示す。入力文書は、文書を閲覧しているユーザがテキスト、境界、表及び図形オブジェクトとして認識する基本要素の集合を有する非構造化文書である。分析結果205は、幾何学的分析モジュール110が文書200において境界線250により分離された2つのゾーンZ 240及びZ 245を認識したことを示す。
いくつかの実施形態において、幾何学的分析モジュール110により識別された境界線は、位置揃えガイドを更に含む。いくつかの実施形態において、位置揃えガイドは単語の最初又は終了により形成された垂直なエッジである(例えば、左揃えテキストカラムの左側エッジ)。同様に、いくつかの実施形態において、幾何学的分析により識別された領域は、グリフのグループの間(例えば、ガイドの間)の空白の空隙(間隙, gap)を含む。いくつかの実施形態において、これらの空隙はのど(gutter)と呼ばれる。
分析結果210は、テキストの第1のカラムの左側エッジにおける左揃えガイド212及びテキストの2つのカラムの間の空白にわたるのど214を示す(簡潔にするために、他のガイド及びテキストカラムは示さない)。図1に示すように、いくつかの実施形態の意味分析モジュール110の出力は、ゾーン105、ガイド115及びのど125である。
幾何学的分析モジュール110から出力されたデータは、文書再構成モジュール120に送出される。文書再構成モジュール120は、構造化文書を規定するために非構造化文書を分析する処理を継続する。いくつかの実施形態において、文書再構成モジュール120は、テキスト、表及び形状等の連続した構造要素を規定するために基本要素間の関連付けを行う。更にいくつかの実施形態は、構造要素の階層及び構造要素間の関係を規定する。
例えばいくつかの実施形態において、文書再構成モジュール120は、グリフ、グリフの集合、グリフの集合の集合等の間の関連付けを行う。いくつかの実施形態は、個々のグリフを関連付けて単語にし、単語を関連付けてテキスト行にし、テキスト行を関連付けて段落にする。分析結果215は、個々の行217及び段落219が第1のテキストカラム内で識別されることを示す。
文書再構成モジュール120は、グリフにおけるテキストフローを規定するためにグリフのレイアウトを更に識別する。特にテキストフローを規定するために、いくつかの実施形態は、グリフ(又はグリフの集合)の読み取り順序(読み順, reading order)を識別する。読み取り順序は、ユーザがページ上のグリフを読み取ると予想される順序を表す(例えば、第1のカラムの最下部から第2のカラムの最上部へ進み、中央の分離されたテキストボックスをスキップする等)。分析結果220は、2つのカラムが文書200内で識別され、読み取りフロー222が第1のカラムの最下部から第2のカラムの最上部に進むことを示す。いくつかの実施形態において、レイアウト及びフローの識別及び規定は、ゾーンの結果205、ガイド及びのどの結果210、並びにグリフ関連付けの結果215を利用する。
文書再構成モジュール120は、グリフ以外の基本要素間又は構造要素間の関連付けである文書中の他の構造要素を更に規定する。例えばいくつかの実施形態において、文書再構成モジュール120は、幾何学的分析モジュール110により識別された領域間、並びに領域内のグリフ間及びグリフの集合間の関連付けとして文書中の表を識別する。例えばいくつかの実施形態は、表のセルとして領域を関連付け、表情報として各領域内のグリフを関連付ける。分析結果225は、文書再構成モジュール120による文書200における9つのセル229を有する表227の識別を示す。いくつかの実施形態は、表の構造要素を規定することにより表を形成する基本要素を関連付ける。初期の文書において、表として閲覧されたものは関連付けられていない基本要素(線及びグリフ)の集合として規定されたが、再構成後、セルは表の構造要素において表のセルとして識別され且つ個々に又は一括して編集可能である。更に示されるように、いくつかの実施形態において、表の識別及び再構成には、ゾーンの結果205、グリフ関連付けの結果215、並びにレイアウト及びフローの結果220を使用する。
いくつかの実施形態は、文書中の2つ以上の基本図形要素又は図形オブジェクト(例えば、形状、画像、写真、ビットマップ等)が1つの構造図形要素としてグループ化されるべき時期を更に識別する。例えば殆どが重なり合う2つのオブジェクトは、非構造化文書において2つの形状又は画像として規定される1つの要素であってもよい。文書再構成モジュール120は、それら2つのオブジェクトを1つのオブジェクトとして結合する。分析結果230は、初期の文書200の2つの基本形状(星形及び六角形)が文書再構成モジュール120により1つの図形232として結合されたことを示す。
図1に示すように、文書再構成モジュール120の出力の例は、意味階層データ135(すなわち、グリフの関連付け)、レイアウト及びフローデータ145、表データ155、並びに結合グラフデータ165を含む。更にいくつかの実施形態において、この情報の一部はいくつかの文書再構成モジュール120の間で渡される。図2は、この情報の全てが構造化文書235を規定するのに使用されることを示す。構造化文書235は、非構造化文書200と同一の外観を有するが、構造要素、並びに要素の関連付け、関係及び階層に関する情報を含み、それにより編集、より直観的な表示が可能になる。
文書再構成モジュール120からのデータ(並びにいくつかの実施形態においては幾何学的分析モジュール110からのデータ)は、文書表示及び対話モジュール130により使用される。文書表示及び対話モジュール130により、ユーザは文書の閲覧、編集、スクロール等ができる。例えばシーケンス140は、直立に保持されるハンドヘルドデバイスに2つのテキストカラムとして表示された文書を示す。ハンドヘルドデバイスが横向きに回転されると、2つのテキストカラムは3カラムに再配置される。この再配置は、要素間の関連付け、特に非構造化文書の一部分でない、グリフにわたるテキストのフローに依存するため、非構造化文書では行えない。
いくつかの実施形態において、文書表示及び対話モジュール130は、ユーザにより選択された構造要素(例えば、段落、図形オブジェクト等)を認識し、選択された要素を表示するようにインテリジェントズームできる。いくつかの実施形態において、ユーザは関心位置(すなわち、表示された文書中の特定の場所)を選択し、表示及び対話モジュール130は構造要素の階層における適格な構造要素を識別する。いくつかの実施形態は、構造要素の特定の種類を適格な構造要素として規定する。適格な構造要素は、いくつかの実施形態において表示の際に強調表示される関心領域を規定するために使用される。
シーケンス150は、段落170の選択(例えば、段落内の関心位置を選択することによる)、並びにその後の段落及び近傍のテキストのインテリジェント表示を示す。文書表示及び対話モジュール130は、テキスト及び図形オブジェクトのインテリジェント選択、文書のインテリジェントスクロール等の他の機能を更に提供する。
いくつかの実施形態は、中間の分析及び再構成結果を使用して、幾何学的分析及び文書再構成がその場で実行される方法を変更するために階層プロファイリングを使用する。いくつかの実施形態は、プロファイルに対して文書が含むコンテンツの種類を示す中間結果をチェックし、それに従って再構成処理を変更する。いくつかの実施形態において、階層プロファイルは、分析及び再構成モジュールに対してより多くの又はより少ない処理の実行、異なる方法での処理の実行又は処理の再実行を指示できる。例えば文書が1ページの長さであり、1つのテキストカラムを有し且つ形状又は画像を有さないことを中間分析結果が示す場合、いくつかの実施形態は、グリフを関連付けて単語、行及び段落にするための処理のみを実行する。例えば、表の識別は実行されない。
いくつかの実施形態は、より効率的にメモリ及び処理を使用するために種々の新しい効率化技術を採用する。例えばいくつかの実施形態は、他の要素に対してある程度近接して離間される要素のグループを識別するために使用される技術であるクラスタ分析を使用して上述の処理の一部を実行する。いくつかの実施形態は、同一又はほぼ同一のx座標から開始又は終了するか、そのx座標を中心とするか、あるいはそのx座標に位置揃えされる多数の単語に基づいてガイドを識別するためにクラスタ分析を使用する。いくつかの実施形態は、単語間の空隙及び単語間の空隙より大きい空隙を識別するようにグリフ間の異なる大きさの空隙を認識するためにクラスタ分析を使用する。更にいくつかの実施形態は、単一のグリフを得るように結合されるべき基本図形(例えば、形状、画像)を識別するためにクラスタ分析を使用する。
いくつかの実施形態は、ソートされていないデータを参照する順序付けされたデータ(例えば、基本要素位置データ)を使用することにより且つ単一の値を使用してデータの区分を格納することによりクラスタ分析を効率的に実行する。区分という用語が本発明において使用されるように、区分はシーケンスすなわち線形的に順序付けされた集合をサブシーケンスに分割する。サブシーケンスは、同一の順序関係を有するシーケンスの部分集合である。更に区分は、(i)元のシーケンスの全てのメンバが区分のサブシーケンスのただ1つに含まれ、(ii)区分のサブシーケンスの2つをS及びTとすると、順序関係に従ってSの全てのメンバがTの全てのメンバより小さいか又はTの全てのメンバがSの全てのメンバより小さいという特性を有する。いくつかの実施形態において、区分を単一の値として格納することにより、複数の区分の検査等の種々のクラスタ分析機能をより効率的に実行できる。
いくつかの実施形態は、データのコピー量を最小限にするアプリケーションプログラムインタフェース(API)を使用することにより文書再構成処理における効率を向上し、その一方でAPIのユーザにはデータが自由に変更可能であるかのように見える。いくつかの実施形態は、ランダムに順序付けされた配列にデータを格納し、データに対する参照のソート済み配列を規定し、このソート済み配列を多くの集合オブジェクト(例えば、文字データの集合である文字シーケンスオブジェクト)の間で共有してメモリ及び処理の使用を最適化する。これらの効率向上機能等はいくつかの実施形態において使用され、文書再構成が携帯電話、メディアプレーヤ等(例えば、iPhone(登録商標))のリソースの限定されたデバイスにおいて実行されることを可能にする。
上述したいくつかの実施形態の概要は図1及び図2に示した例を参照して提供されたが、これらの例は本発明のいくつかの実施形態の特徴及び動作を導入する例示的な実施形態としてのみ説明されたことが当業者には認識されるだろう。多くの実施形態は、図1及び図2に示した特徴及び動作とは異なる特徴及び動作を有することが当業者には認識されるだろう。例えば、幾何学的分析が1つのモジュールの集合110として説明されたが、いくつかの実施形態は必ずしも全ての幾何学的属性を1度に識別しないことが当業者には認識されるだろう。例えばいくつかの実施形態は、最初に幾何学的分析の部分集合(例えば、文書において1つ以上のゾーンを識別するための領域分析)を行い、その後ガイド及びのどがゾーン毎に識別される。
いくつかの実施形態については以下に更に詳細に説明する。第II節において、境界基本要素に基づく文書の領域(すなわち、ゾーン)の識別、並びに構造化文書のフレームワークを形成する階層構造(例えば、文書オブジェクトモデル)の規定について説明する。第III節において、位置揃え点の間の特定の空間(のど)及びグリフ(例えば、位置揃えガイド)に対する境界要素の識別について説明する。次の第IV節において、単語、テキスト行、段落、カラム等の構造要素を規定するためにグリフ及びグリフの集合間の関連付けの作成、並びにそれらの構造要素(及び図形、表等の他の要素)にわたるフロー順序の規定について詳細に示す。第V節において、基本要素からの表の識別、並びに表の構造要素を形成するための基本要素間の関連付けの作成について説明し、第VI節において、グループ化されるべき基本図形要素の識別、並びに複合図形要素を規定するためのそのような基本要素間の関連付けの作成について説明する。次の第VII節において、コンテンツ処理の効率及び精度を向上できるような事前定義済みプロファイルの集合に対して一致する中間処理結果に基づくコンテンツ処理の変更(第II節〜第VI節で詳述するような文書再構成の例を使用する)について説明する。
次の第VIII節において、小型スクリーンデバイス(例えば、ハンドヘルド電話又はメディアプレーヤ)において文書を表示するために構造化文書(例えば、文書オブジェクトモデルにより規定された文書)を使用する種々の態様を詳細に示す。小さな画面に対する文書表示の適応及び識別された関心領域の表示について説明する。第IX節において、ユーザ入力に応答してテキスト(又は文書の他の要素)の選択を規定するために構造化文書を使用することに関して説明する。
第X節において、文書再構成処理における位置揃えガイド、単語及びグリフ間隔、並びに複合図形の識別に(特に)使用されるクラスタ分析技術の効率を向上する種々の方法について説明する。次の第XI節において、文書のより効率的な構文解析及び分析を可能にする方法及びデータ構造について詳細に説明する。これらのデータ構造は、文書再構成処理において使用可能なグリフ間の関連付けを行う(例えば、単語、テキスト行、段落等を形成するため)1つの方法を示す。しかし、当該技術において既知であるように、構造要素(例えば、段落、表、複合図形等)を規定するために基本要素(例えば、グリフ、図形要素等)の間の関連付けを行う多くの他の方法が可能であることが当業者には理解されるだろう。第XII節において、いくつかの実施形態の文書再構成アプリケーションのソフトウェアアーキテクチャについて説明し、第XIII節において、本発明のいくつかの実施形態を実現するコンピュータシステムについて説明する。
II.ゾーン分析
1ページに複数の情報の記事、小領域又はカテゴリがある場合、それらは線、画像又は形状により視覚的に示されることが多い。ユーザは、グラフィカルキューがページのゾーンへの分割方法を示すことを意図する方法を容易に識別できるが、これは、コンピュータにとっては大きな問題である(特に、一部の図形基本要素がページコンテンツであることを意図し且つ他の図形基本要素がコンテンツゾーンを視覚的に示すことを意図するような図形基本要素の組み合わせが存在する場合)。
本発明のいくつかの実施形態は、非構造化文書の基本要素(例えば、形状及び画像)に基づいて境界線及びそれら境界線により境界をつけられた領域(例えば、ゾーン)を識別する方法を提供する。いくつかの実施形態において、領域は、続く文書の再構成で使用され、更なる再構成処理の区分化のために使用される。いくつかの実施形態は、コンテンツが所属させられ、コンテンツとそのコンテンツが配置される領域との関連付けを可能にする領域グラフ(すなわち、木等の階層構造)を生成する。いくつかの実施形態は、ページ毎に領域識別を実行する。
図3は、いくつかの実施形態において文書のページのゾーンを識別し且つページに対するゾーン木を生成する処理300を概念的に示す。処理300については図4と共に説明する。図4は、いくつかの実施形態に従って文書のページ400のゾーンを識別し且つページに対するゾーン木430を生成するシーケンスを示す。図3に示すように、処理300は文書のページを受信すること(305)により開始する。文書は、多くのページを含むこともある(例えば、電子書籍)が、1ページしか含まないこともある(例えば、広告チラシ)。
次に、処理はページにおいてゾーンを識別する(310)。いくつかの実施形態において、ゾーンを識別することは、ゾーン境界及び交わりを識別し且つゾーンを識別するためにゾーン境界を通ることを含む。図4の例を参照すると、処理300は、ページ400が5つのゾーンA 405、B 410、C 415、D 420及びE 425を含むことを識別する。
ゾーンを識別した後、処理300はページに対するゾーングラフ(すなわち、木等の階層構造)を生成する(315)。ゾーングラフはゾーンの階層を示す。例えばゾーン木430は、ページ(ノードP)に対するゾーンが4つのゾーンA、B、C及びDを含むことを示す。更にゾーンDは、ゾーンEが完全にゾーンD内にあるためゾーンEを含む。いくつかの実施形態において、第2のゾーンが完全に第1のゾーン内にある場合に第1のゾーンは第2のゾーンの親である。いくつかの実施形態において、親及び子は1つ以上の境界を共有できる。
ゾーングラフを生成した後、処理300はページのコンテンツをゾーングラフに挿入する(320)。その後、処理は終了する。いくつかの実施形態において、ページはテキスト、図形又は他のコンテンツを含む。特定の各コンテンツグループ(例えば、画像、段落、カラム等)は、特定のコンテンツグループを完全に含む最小のゾーンの子として配置される。いくつかの実施形態において、コンテンツが更に分析されると(例えば、テキストの段落へのグループ、表の識別等)、コンテンツオブジェクトのゾーングラフへの挿入は文書再構成処理において後で実行される。更に、文書再構成が実行されると、いくつかの実施形態はゾーングラフを各ゾーンについてのコンテンツ部分木で更新する。
A.専門用語
図5は、いくつかのゾーンを含む文書のページ500を示す。ページ500は、ゾーン境界505〜509を含む多くのゾーン境界を含む。いくつかの実施形態において、ゾーン境界は、ゾーン境界に寄与するゾーン境界図形により規定された太さを有する水平又は垂直(すなわち、直線)のストリップである。いくつかの実施形態において、ゾーン境界の太さは、ゾーン境界に寄与するゾーン境界図形の直立バウンディングボックスの狭い方の幅である。いくつかの実施形態において、特定の要素又は要素の集合に対する直立バウンディングボックスは、要素又は要素の集合を完全に囲む最小の直立矩形(分析されている座標系における)である。
ゾーン境界図形は、細い矩形であるか又は細い矩形である直立バウンディングボックスを有するページの図形オブジェクト(例えば、形状、画像、線)である。例えばゾーン境界505〜509は、全て特定の(相対的に細い)太さの線である。いくつかの実施形態において、ゾーン境界図形は相対的に細いオブジェクトを含み、そのレンダリングの全て又は一部はゾーン境界の全て又は一部を塗りつぶす。いくつかの実施形態において、ゾーン境界図形は、境界線がゾーン境界に寄与するオブジェクトを更に含む(例えば、塗りつぶされた多角形の1辺は、多角形自体が狭くなく且つ境界の限界にフィットしていなくてもゾーン境界の全て又は一部を示すことができる)。
しかし、ゾーン境界図形は完全な直線でなくてもよい。例えば図6は、ゾーン境界図形605を含むページ600を示す。ゾーン境界図形605は、完全な垂直ストリップではなく、ほぼ垂直に位置揃えされる小枝の画像である。いくつかの実施形態は図形をゾーン境界図形として認識し、いくつかの実施形態はそのように認識しない。
図5のページ500は、交点510及び511等の多くのゾーン境界の交点を更に含む。いくつかの実施形態において、ゾーン境界の交点は、垂直なゾーン境界と水平なゾーン境界との直交点である。交点511が示すように、ゾーン境界の交点はゾーン境界の終端でなくてもよい。いくつかの実施形態において、ゾーン境界の中心のゾーン境界の交点は、ゾーン境界を1つ以上のゾーン境界区間に区切る。例えばページ500の最下部のゾーン境界は、ゾーン境界区間515、516、517及び518に分割される。
従って、いくつかの実施形態において、ゾーンは直立直線形状(まっすぐな直線形状)を形成するゾーン境界区間の集合により制限された閉領域である。直立直線形状は、水平線分及び垂直線分により形成されるあらゆる多角形であり、これは、水平線分及び垂直線分から形成された矩形である直立矩形を含むがこれに限定されない。各ゾーンは、矩形の縁をつけるゾーン境界の外側から形成される形状である直立直線外側境界を有する。更に各ゾーンは、矩形を制限するゾーン境界の内側から形成される形状である直立直線内側境界を有する。
ページ500は、ゾーンP 526(ページ範囲)、ゾーンA 520(左側及び右側、並びにゾーンC及びDの上の領域に細いストリップを含む弓型のゾーン)、ゾーンB 521、ゾーンC 522(ゾーンEと境界を共有する左側ゾーン)、ゾーンD 523(ゾーンCの鏡像である右側ゾーン)、ゾーンE 524及びゾーンG 525を含む。いくつかの実施形態において、ゾーンは、ゾーンの外側境界及び内側境界により規定される外側範囲及び内側範囲を有する。
図7は、ページ500のゾーン木700を示し、ゾーンP(ページ境界)はゾーンA、C、E及びDの親であり、ゾーンBはゾーンAの子であり、ゾーンGはゾーンDの子である。ゾーンB、E及びGは島の例である。島は、親ゾーンと境界区間を共有しないゾーンである。ゾーンEはゾーンC及びDと境界区間を共有するが、ゾーンC及びDのいずれも実際にはゾーンEを囲まないためゾーンEの親ではない。ゾーン木は、ノードにはそれらが含むコンテンツが読み込まれていることを更に示す。いくつかの実施形態において、各ページの文書オブジェクトモデル(DOM)の一部は、そのページのゾーン木のノードに構築される。文書オブジェクトモデルは、ノードがオブジェクトであるグラフとしての文書の表現である。いくつかの実施形態において、このグラフは木であり、その葉ノードは基本要素を表し、非葉ノードは、それらの子ノード間の関係及び子ノードがグループとして有する特性を表す構造オブジェクトである。いくつかの実施形態において、ノードの子の順序はそれら子の読み取り順序を表す。いくつかの実施形態において、根ノードは文書ノードであり、その子はページノードであり、ゾーン木は各ページノードから派生し、フロー木(表、テキストボックス、レイアウト、カラム、段落、リスト及びテキスト行等の構造を表すノードを含む)はゾーンノードの一部から派生し、基本要素(グリフ、形状及び画像等)を表すノードはフロー木の一部のノードの子である。いくつかの実施形態において、構造ノードは、木の親子関係(その有向グラフエッジ)により表された関係に加えてノード間の関係を表す特性を含む。例えば新しいカラムを開始する段落は、前のカラムで終了した段落の続きであってもよく、2つのカラムの間の段落区切りはなくてもよい。この場合、木には異なるカラムノードの親を有する2つの段落ノードがあるが、それらのノードは単一の共通の段落の部分を表す2つのノードであることを示すために互いを指し示す特性を有する。いくつかの実施形態において、DOMは文書の全ての構造要素を含む文書の階層表現である。いくつかの実施形態は、コンテンツ全体が特定のゾーンの外側境界内に配置され、且つこの特定のゾーンのいずれの子の外側境界内にも配置されない場合に、このコンテンツがこの特定のゾーンの子であることを規定する。従って、ゾーンBはヘッダテキストを含み、ゾーンC及びDは標準テキストを含み、ゾーンE及びGは画像を含む。
B.回転グループ
いくつかの実施形態は、ページのいくつかの回転グループを規定し、各回転グループのコンテンツ及びゾーンを別個に分析する。いくつかの実施形態において、回転グループはいずれのゾーン境界も有さないこと以外はゾーンに類似する。回転グループは、同一角度(又は閲覧者が区別するのが困難である程小さい特定の閾値内になるようなほぼ同一の角度)だけ回転される全てのコンテンツを含むように規定される。図8は、ページ上の回転グループを規定するいくつかの実施形態の処理800を概念的に示す。図示するように、処理800は、文書のページを受信する(805)。そのページは、文書の唯一のページである場合もあり、複数のページのうちの1ページである場合もある。いくつかの実施形態は、ページ毎ではなく複数ページの文書(又は複数ページの小領域)全体に対して回転グループ分析を1度に実行する。
その後、処理はページ上の各オブジェクトの回転角を判定する(810)。いくつかの実施形態において、不規則に成形された画像がゼロの回転角を有すると仮定される。例えばページ500のゾーンEの画像は、不規則に成形され、非ゼロの回転角を与えられない。水平方向に揃えられたテキストもまたゼロの回転角を有するが、その一方でx軸から外れて揃えられるテキストにはある回転角が与えられる。例えばページ500の領域F 530のテキストは約−45°の回転角を有する。同様に、ページ600のテキスト610(「Organic」及び「Pure」)は独自の回転角を有する。図形オブジェクトを回転グループに配置する実施形態において、テキスト610の上の矩形画像615はテキスト610と同一の回転角を有する。
次に処理800は、回転角によりオブジェクトを順序付ける(815)。処理は、特定の閾値を下回る回転角の広がりを有するクラスタにオブジェクトをグループ化する(820)。いくつかの実施形態において、特定の閾値と比較される広がりは、グループの最大回転角からグループの最小回転角を減算した値である。非ゼロの閾値を使用することにより、グループ化は最初に受信した文書におけるコンテンツ定義の小さな誤りを考慮できる(例えば、水平から僅かにずれたテキスト行)。
処理800は、各回転グループを別個に分析する(825)。その後、処理は終了する。殆どのページにおいて、殆どの分析が直立(ゼロの角度)グループを含む。いくつかの実施形態は、直立グループ以外のグループに対するゾーン分析を実行せず、回転されたグループのコンテンツをページ全体の子として単に分類する。いくつかの実施形態において、各回転グループは、コンテンツが直立しているように見える座標系を有する。そのような実施形態において、各回転グループは、文書に対するDOMに適合するコンテンツを含むゾーン木を有する。いくつかの実施形態は、ページ上のコンテンツが回転されている区別可能な角度毎に1つの回転グループを規定する。各グループに対する分析については以下に詳細に説明する。
C.ゾーン境界及び交点の識別
図9は、ゾーン境界及び交点を識別するいくつかの実施形態の処理900を概念的に示す。処理900について図10と共に説明する。図10は、種々の図形及びテキストを含むページ1000を示す。
図9に示すように、処理は回転グループを受信し、グループを直立座標系に正規化する(900)。いくつかの実施形態において、グループを直立座標系に正規化することは、グループの全てのオブジェクトが垂直又は水平になる(例えば、テキスト行が座標系において水平になる)ようにグループに対する座標系を規定することを含む。以下の説明では、回転グループが直立(ゼロの角度)グループであると仮定する。当業者は、コンテンツが直立しているように見える座標系で非ゼロの角度を有する回転グループに同一の技術を適用できる。いくつかの実施形態は、特定の回転グループに対してゾーン識別を実行する前に他の回転グループからのコンテンツを除去する。例えばいくつかの実施形態は、直立直線座標系においてゾーン識別及び分析を実行する前に図6のページ600からテキスト610及び画像615を除去する。
処理は、潜在的なゾーン境界を識別する(910)。いくつかの実施形態において、潜在的なゾーン境界は、十分に細いいかなる水平又は垂直図形オブジェクトも含む。いくつかの実施形態において、特定の図形オブジェクトが十分に細いかの判定には、絶対測定を使用する(例えば、図形オブジェクトの直立バウンディング矩形の小さい方の寸法が1/24インチ未満である場合)。他の実施形態において、判定には、相対測定を使用するか(例えば、直立バウンディング矩形の大きい方の寸法が小さい方の寸法の8倍である)、あるいは絶対測定及び相対測定の組み合わせを使用する(例えば、狭い方の寸法は1/12インチまで許されるが、8:1の相対測定が適用される)。いくつかの実施形態は、ページのサイズに関して閾値を調整する。例えば上記例は、標準的な8.5×11インチのページに該当するが、はるかに大きなページがより大きい潜在的なゾーン境界を有することができる。
図10を参照すると、ページ1000は、潜在的なゾーン境界、すなわち水平境界1005〜1010及び垂直境界(1011〜1016)として分類されるいくつかの線を含む。しかし、図形オブジェクト1020は、x方向に太すぎるため一般に潜在的なゾーン境界として考えられない。
いくつかの実施形態は、少なくとも閾値サイズを有する全ての直立直線形状を識別し、それらの形状の辺を潜在的なゾーン境界として使用する。いくつかの実施形態において、閾値サイズは特定の面積であり、他の実施形態において、閾値幅及び閾値高さを上回る必要がある。例えばオブジェクト1020は、エッジを潜在的なゾーン境界としてみなすのに十分な大きさの面積を有するかもしれないが、幅が狭すぎるため別個のゾーンにはならない。一方、星形オブジェクト1025は、直立直線形状ではないため、そのエッジはゾーン境界としてみなされない。従って、これらのオブジェクトは、1つのゾーン又は別のゾーン内のコンテンツ(特に図形オブジェクト)として単純に分類される。いくつかの実施形態は、ストロークされている場合はストローク幅を含めて、辺の境界をつける直立矩形として、直立直線形状の辺として識別された潜在的な各ゾーン境界の範囲を設定する。いくつかの実施形態は、ページ境界が回転グループの座標系において直立直線である場合、ページ境界をゾーン境界として更に含む。
潜在的なゾーン境界を識別した後、処理900はページ上の他のオブジェクトと交差する境界又は境界の一部を除去する(915)。例えば潜在的な境界1015は、星形オブジェクト1025により隠蔽されるため、2つの潜在的なゾーン境界(星形の上の領域及び星形の下の領域)に分割される。いくつかの実施形態は、文字バウンディングボックスと交差するゾーン境界を除去する。いくつかの実施形態において、特定の文字に対する文字バウンディングボックスは文字を完全に囲む最小の矩形である。例えば潜在的なゾーン境界1010は、文字「Lorem Ipsum」を横切る。従って、いくつかの実施形態は、潜在的なゾーン境界1010を考慮から外す。
次に、処理900は境界をマージする(920)。いくつかの実施形態は、平行であり且つ重なるか又はほぼ重なる境界をマージする。境界は、それらの範囲が交差する時に重なる。例えば一方が他方を完全に囲むように異なる幅の2つの非常に細い矩形が描かれる場合、2つの潜在的なゾーン境界はマージされる。いくつかの実施形態は、重なりをテストするために範囲(潜在的なゾーン境界の幅及び長さの双方)を僅かに拡張する。従って、図10の境界1013及び1014はマージされ、境界1013及び1014の太さより太い1つのゾーン境界1027になる。
処理900は、未処理のマージされた境界があるかを判定する(923)。境界がマージされなかった場合、あるいは全てのマージされた境界が処理された場合、以下に説明する945に進む。未処理のマージされた境界がある場合、処理は未処理のマージされた境界を選択する(925)。処理は、マージされた境界が太すぎるか又はマージされた境界が含むゾーン境界図形が多すぎるかを判定する(930)。いくつかの実施形態において、狭い方の幅が特定の閾値を上回る場合、マージされた境界は太すぎる。いくつかの実施形態において、太さのテストは、図形オブジェクトが最初にゾーン境界として分類されるのに十分細いかの判定と同一である。境界が太すぎないと判定された場合、上述した923に進む。マージされた境界が太すぎる場合、潜在的なゾーン境界候補からそのマージされた境界を除去し、単一の図形オブジェクトとして分類し(935)、923に進む。例えばこれは、画像が一連の細い矩形として描かれた場合又は近接して離間された細い棒を含む棒グラフが描かれた場合に起こる。
全てのマージされた境界が検査されると、処理はゾーン境界の交点を識別する(945)。上述したように、ゾーン境界の交点は、水平境界が垂直境界と交差する場合に必ず識別される。いくつかの実施形態は、ほぼ交差する点を識別し、それらを交点として分類する。ほぼ交差する点を見つけるために、境界は少し延長され、交点に関してテストされる。いくつかの実施形態は、一定量(例えば、1/4インチ)だけ境界を延長し、その一方で、他の実施形態は、特定のゾーン境界の長さのある割合である量だけ各境界を延長する。延長された境界が交差する場合、ほぼ交差する点は交点として分類され、2つの境界は他方の太さを完全に横切るように延長される。一例として、図10の境界1027及び1008は完全に交差していない。しかし、それらは交差していると分類されるのに十分近接しており、交差するように延長される。
処理は、1つ以下の交点を有する境界を削除する(950)。境界が除去されると、除去された境界と交差していたいずれの境界も依然として少なくとも2つの交点を有するかを判定するために再テストされる。ページ1000の例において、境界1006及び境界1015の残りの2つの部分は、ゾーン境界の交点を有さないため除去される。ゾーン境界及び交点が識別されると、処理は最も外側の交点を越えて延在するいずれの部分も除去するようにゾーン境界を取り除く(955)。例えば境界1027及び1009は、それらの交点を越えて延在する。これら境界は、互いの最も外側の範囲まで延在するように取り除かれる。境界を取り除いた後、処理は後で使用するためにゾーン境界及び交点情報を格納する(960)。その後、処理は終了する。
この時点で、ゾーン境界区間及びゾーン境界の交点は全て判定されている。図11は、垂直なゾーン境界区間1105、1115、1125、1135、1145、1155、1165及び1175と、水平なゾーン境界区間1110、1120、1130、1140、1150、1160、1170及び1180を示す。図11は、ゾーン境界の交点1102、1112、1113、1122、1123、1132、1133、1142、1143、1152、1162、1172、1182及び1192を更に示す。
D.ゾーンの識別
ゾーン境界及びゾーン境界の交点が識別されると、ゾーンが識別される。図12は、ゾーンを識別するいくつかの実施形態の処理1200を概念的に示す。処理1200については図13及び図14と共に説明する。図13及び図14は、ページ1000のゾーンを識別するための処理1200の適用法を示す。図13及び図14の各々は、シーケンスとして示される。図13は、第1のゾーン境界を識別するためのシーケンス1305〜1330を示す。図13の矢印は方向ベクトルを示し、破線はゾーンを規定するためにゾーン境界区間にわたってとられるパスを示す。図14は、処理1200により識別されたゾーンを示す。
図12に示すように、処理1200は、グループ又はページに対するゾーン境界及び交点を受信する(1205)。いくつかの実施形態において、ゾーン境界及び交点は、上述した処理900の出力である。処理は、いずれかのゾーン境界区間が存在するかを判定する(1207)。存在しない場合、処理は終了する。存在する場合、処理は2つの方向ベクトルを各ゾーン境界区間(すなわち、水平の区間は左右を指し示すベクトルを有し、垂直の区間は上下を指し示すベクトルを有する)に割り当てる(1210)。図13は、ページ1000に対する各境界区間が双方向の方向ベクトルから開始することを示す(1305)。
次に、処理は境界区間b、交点i及び方向dを選択する(1215)。いくつかの実施形態は開始点をランダムに選択するが、他の実施形態は特定の方向の1番上の最も左側の交点等のヒューリスティック法を使用する。図13は、交点1182で開始して区間1115に沿って上方向に移動するランダムな選択を示す(1305)。処理1200は、次の交点に到着するまで交点iから方向dに進む(1220)。
交点に到達すると、処理は、交点が1215で選択された開始交点であるかを判定する(1225)。交点が元の開始交点である場合、以下に説明する1265に進む。元の開始交点でない場合、処理は、ゾーン境界区間を通るパスがその交点で時計方向に曲がれるかを判定する(1230)。パスが時計方向に曲がれる場合、パスはそのように曲がる(1235)。その後、以下に説明する1255に進む。パスが時計方向に曲がれない場合、処理は、パスが交点を通って直線を継続できるかを判定する(1240)。パスが直線を継続できる場合、パスはそのように継続する(1245)。その後、以下に説明する1255に進む。パスが直線を継続できない場合、パスは反時計方向に曲がって次の境界区間に入る(1250)。ステップ1230及び1240で行われた選択により、処理1200は、境界の各交点において時計方向に曲がることが好ましいことを示す。いくつかの実施形態は、反時計方向に曲がることが好ましいことを示し、このことは同一の結果を与える。
処理は、新しい境界区間を現在の境界区間bとして設定し、新しい交点を現在の交点iとして設定する(1255)。処理は、境界bに沿って交点iから離れる方向dを設定する(1260)。その後、上述した1220に進む。
元の交点に到達すると、処理1200は、動作1215以降に横断された境界区間の集合としてゾーンZを規定する(1265)。上述したように、図13は、処理1200に従うゾーン境界区間の集合の横断を示す。1305において、交点1182から上方向に移動する区間1145から開始することを選択した(円及び短い矢印で図示する)後、パスは交点1112に達する。時計方向に曲がることがオプションであるから、パスは区間1120に向かって曲がり(1310)、交点1122で再度時計方向に曲がって区間1155に入る。パスは交点1132で再度時計方向に曲がって区間1150に入るが、交点1142では時計方向にも曲がれず直線にも継続できない(1315)。パスは反時計方向に曲がって区間1145に入り、交点1152で曲がって区間1160に入り、交点1162に向かって進む。交点1162において、パスは時計方向に曲がって区間1175に入り、交点1172において再度時計方向に曲がって区間1180に入る(1320)。区間1180はパスを元の交点1182に戻す。
図13は、区間1115、1120、1155、1150、1145、1160、1175及び1180の横断、並びにその横断で使用された方向ベクトルにより規定されたゾーン1300を示す(1325)。処理1200に戻ると、ゾーンZを規定した(1265)後、処理はゾーンZを横断するのに使用された方向ベクトルを除去する(1270)。図13は、除去されたゾーン1300を横断するのに使用された方向ベクトルを有するページ1000のゾーン境界区間を示す(1330)。
次に処理1200は、方向ベクトルが残っていない全ての境界区間を除去する(1275)。これは、第1のゾーンが識別された後に行われないが、更なるゾーンのいずれかが識別された後に行われる。ゾーンZが島(すなわち、その親と境界を共有しないゾーン)である場合、処理1200はそのゾーンを島として分類する(1280)。時計方向に曲がるのが好ましい実施形態において、反時計方向に中央を横断することにより規定されたゾーンは島である。
処理は、いずれかのゾーン境界区間が残っているかを判定する(1285)。更にゾーン境界区間が残っている場合、上述した1215に進む。あるいは、全てのゾーン境界区間が双方向で使用されると、ページに対する全てのゾーンを規定したことになる。処理はゾーン情報を格納する(1290)。その後、処理は終了する。
図14は、ページ1000に適用された処理1200の続きを示す。簡潔にするために、図14は、ゾーン境界区間の横断の全ての動きを示さない。まず、交点1113、1123、1133及び1143のいずれかから開始し、2つのゾーン1435及び1440が識別される。島ではない子を有さない島の場合に起こるように、これらのゾーンは互いに対する複製である。いくつかの実施形態は、複製ゾーンを除去する。しかし、他の実施形態は、それらのゾーンを通常のゾーン及び島の2つのゾーンとして処理する。次に、交点1192から開始すると、ページ境界の全ての可能な分岐路が反時計方向の移動であるため、ゾーン1445(ページ境界)が結果として得られる。最後にこれは、横断され且つ除去されるゾーン1450及び1455を残す。全てのゾーンが横断されると、残っているゾーン境界区間はなくなる。
E.ゾーン木の生成
ゾーンが識別されると、ゾーングラフ(ゾーン木)が生成される。いくつかの実施形態において、ゾーン木はゾーン毎に行われる文書再構成において使用される。図15は、ゾーン木を生成するいくつかの実施形態の処理1500を概念的に示す。図示するように、処理はゾーン及びコンテンツオブジェクトを受信する(1505)。いくつかの実施形態において、これらのゾーンは処理1200等の処理により識別されている。処理は面積によりゾーンをソートする(1510)。いくつかの実施形態は、ゾーンをソートする目的で面積が等しい場合に島でないゾーンより大きいものとして島を処理する。
次に処理は、最小のゾーンをzとして選択する(1515)。処理は、ゾーンzがページに対するゾーングラフにおいてノードを有するかを判定する(1520)。zがノードを有する場合、以下に説明する1530に進む。zがノードを有さない場合、処理1500はゾーンzに対するノードを規定する(1525)。
次に、処理は次に最小のゾーンをゾーンpとして選択する(1530)。処理は、ゾーンpがゾーンzを含むか(すなわち、ゾーンzの外側境界が完全にゾーンpの外側境界内にあるか)を判定する(1535)。ゾーンpがゾーンzを含む場合、処理は、ゾーンzがゾーンpの子であると判定する(1540)。これに基づいて、処理はゾーンpに対するノードをノードグラフに規定する(1545)。処理は、ゾーンpからゾーンzまでのエッジを規定する(1550)。その後、以下に説明する1565に進む。
1535においてゾーンpがゾーンzを含まないと判定されると、処理は、現在のソーンpより大きいゾーンが存在するかを判定する(1555)。より大きいゾーンが残っている場合、1530に進み、次に最小のゾーンをゾーンpとして選択し、新しいゾーンpがゾーンzの親であるかをテストする。ゾーンpより大きいゾーンがない場合、処理は、ゾーンzが親ゾーンを有さないと判定する(1560)。
次に処理は、ゾーンzより大きいゾーンがあるかを判定する(1565)。より大きいゾーンがある場合、処理は選択対象のゾーンの集合からゾーンzを除去し(1570)、1515に進んで親子分析のために別のゾーンを選択する。
図16は、サイズの順序でソートされ(A’はAに対する島である)且つノードグラフ1600に配置されたページ1000(図10に示す)のゾーン1435(A)、1440(A’)、1455(B)、1450(C)、1300(D)及び1445(E)を示す。処理1500を使用して、最初にゾーンA(最小のゾーン)に対するノードが規定され、ゾーンは、島ゾーンA’がゾーンAの親であると判定されるまでテストされ、この時、ゾーンAはノードグラフにおいて規定され、A’からAまでのエッジが規定される。次に、ゾーンDは、島ゾーンA’の親であると判定され、ゾーンB、C及びDの全ては親を有さない島ゾーンEの子であると判定される。いくつかの実施形態において、ゾーン及び島ゾーンのレベルはゾーングラフにおいて常に交互になる。従って、島E及びA’はグラフ1600の第1のレベル及び第3のレベルにあり、ゾーンB、C、D及びAは第2のレベル及び第4のレベルにある。
全てのゾーンが分析されると、1573に進み、未処理のコンテンツオブジェクトが存在するかを判定する。コンテンツオブジェクトが存在しない(すなわち、文書がゾーン境界以外空白である)場合、あるいは全てのコンテンツオブジェクトが処理された場合、以下に説明する1597に進む。未処理のコンテンツオブジェクトが存在する場合、1575に進み、コンテンツオブジェクトcを選択する。処理は、オブジェクトcに対するノードを規定する(1580)。いくつかの実施形態において、コンテンツオブジェクトは基本オブジェクト(例えば、グリフ、形状又は画像)である。処理は、コンテンツオブジェクトcを含む最小のゾーンxを判定する(1585)。コンテンツオブジェクトcを含むゾーンxが判定されると、処理はゾーンxからコンテンツオブジェクトcまでのエッジをゾーングラフに規定する(1590)。全てのオブジェクトが追加されると、処理はゾーングラフを格納する(1597)。その後、処理は終了する。
いくつかの実施形態において、各ゾーンのコンテンツは更に分析される(例えば、テキストの段落へのグループ化、表の識別等)。また、文書再構成が実行されると、いくつかの実施形態は各ゾーンに対するコンテンツ部分木によりゾーングラフを更新する。ここで、コンテンツ部分木はゾーンの基本オブジェクトの階層グループ化を表す構造ノードを含む。最初にゾーン分析を実行することにより、種々のゾーンからのコンテンツが次の文書再構成ステップにおいて不適切にグループ化されないことを保証する。
いくつかの実施形態において、境界線及びそれら境界線により境界をつけられた領域(例えば、ゾーン)等の幾何学的属性の識別は、更なる文書再構成の準備をする。例えば、プロファイルはゾーンの幾何学的配置に依存してもよく、表又はテキストボックス等の構造要素はゾーンの幾何学的配置から認識されてもよい。
F.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したゾーン分析処理は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図17は、文書に対してゾーン分析を実行するいくつかの実施形態のゾーン分析アプリケーション1700のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
ゾーン分析アプリケーション1700は、境界識別モジュール1705、区間及び交点識別モジュール1710、ゾーン識別モジュール1715、ゾーングラフビルダ1720、並びにゾーン情報記憶装置1725を含む。
図17は、文書コンテンツ1730を更に示す。境界識別モジュール1705は、文書コンテンツ1730から情報を受信する。いくつかの実施形態において、この情報は文書中の全ての図形(例えば、形状、画像、線等)に関する情報である。境界識別モジュール1705は、潜在的なゾーン境界を識別し、この情報を区間及び交点識別モジュール1710並びにゾーン情報記憶装置1725に渡す。いくつかの実施形態において、境界識別モジュール1705は、処理900の一部又は全てを実行する。
区間及び交点識別モジュール1710は、境界識別モジュール1705及び/又はゾーン情報記憶装置1725からゾーン境界情報を受信する。区間及び交点識別モジュール1710は、モジュール1705により識別された潜在的なゾーン境界に基づいてゾーン境界の交点及びゾーン境界区間を識別する。識別されたゾーン境界の交点及びゾーン境界区間は、ゾーン識別モジュール1715に渡され、ゾーン情報記憶装置1725に格納される。いくつかの実施形態において、区間及び交点モジュール識別1710は、処理900の一部又は全てを実行する。
ゾーン識別モジュール1715は、境界識別モジュール1705からゾーン境界情報を受信し、区間及び交点識別モジュール1710からゾーン境界の交点及びゾーン境界区間の情報を受信し、且つ/又はゾーン情報記憶装置1725から情報を受信する。ゾーン識別モジュール1715は、モジュール1705及び1715からの情報に基づいてゾーンを識別する。識別されたゾーンは、ゾーングラフビルダに渡され、ゾーン情報記憶装置1725に格納される。いくつかの実施形態において、ゾーン識別モジュール1715は処理1200の一部又は全てを実行する。
ゾーングラフビルダ1720モジュールは、ゾーン識別モジュール1715及び/又はゾーン情報記憶装置1725からゾーン情報を受信し、文書コンテンツ1730からコンテンツ情報を受信する。ゾーングラフビルダ1720は、ゾーン情報に基づいて文書に対するゾーングラフを規定し、コンテンツ情報をゾーングラフに読み込む。いくつかの実施形態において、コンテンツ情報が以下の節で説明するような他の再構成処理により識別されると、ゾーングラフビルダ1720はゾーングラフにデータを読み込む。いくつかの実施形態において、ゾーングラフビルダ1720は処理1500の一部又は全てを実行する。
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューし且つ/又は文書と対話できるように(例えば、タッチスクリーン、カーソル制御デバイス等を介して)、電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
III.ガイド及びのどの分析
本発明のいくつかの実施形態は、文書又は文書の一部の境界線(例えば、位置揃えガイド)及び塗りつぶされていない空白(例えば、のどと呼ばれるグリフのグループの間の塗りつぶされていない空白の空隙)等の幾何学的属性を識別する方法を提供する。いくつかの実施形態において、のどは2つの位置揃え点の間(例えば、右揃え点と左揃え点との間)の空間である。いくつかの実施形態において、ガイド及びのどの識別は、カラムの識別及びテキスト行の分割等の次の再構成手順において使用される。いくつかの実施形態は、ゾーン毎又はページ毎にガイド及びのどを識別する。
図18は、文書中のガイド及びのどを識別するいくつかの実施形態の全体の処理1800を示す。処理1800について図19と共に説明する。図19は、2つのテキストカラムを有するページ1900、並びにページ1900において識別されるガイド及びのどを示す。図18に示すように、処理1800は文書の一部を受信する(1805)。この一部は、複数ページであってもよく、1ページであってもよく、あるいは前のゾーン分析により識別されたゾーンであってもよい。文書の一部は、本出願の他の箇所で説明する方法によりグリフプリミティブから再構成された単語を含んでもよい。
処理は、受信した文書の一部のガイドを判定するためにクラスタ分析を適用する(1810)。クラスタ分析により、処理は単語の終了又は開始がグループ化されるx座標を判定でき、このx座標を可能性のある位置揃えガイドにする。上述したように、図19は、2つのテキストカラムを含むページ1900を示す。ページ1900は、ガイドの集合1905を含む。いくつかの実施形態は、カラムの最下部の行及び最上部の行をガイドとして判定し、その一方で、他の実施形態は、左揃えガイド及び右揃えガイドのみを判定する。いくつかの実施形態は、中央揃え又は数字のリストの小数点揃え等の他の位置揃えに対するガイドを更に識別する。クラスタ分析及びガイド判定処理については、以下に更に詳細に説明する。
次に、処理は、文書の一部ののどを判定する(1815)。いくつかの実施形態は、のどを判定するために動作1810からの情報を使用する。図19は、カラム1の右揃えガイドとカラム2の左揃えガイドとの間でページ1900に対して判定されるのど1910を示す。いくつかの実施形態はページの余白をのどとして処理するが、他の実施形態は処理しない。ガイド及びのどが判定されると、処理1800は、文書の更なる再構成のためにガイド及びのどを使用する(1820)。その後、処理は終了する。
A.密度クラスタリング
いくつかの実施形態は、ページ上で同一のx座標又はほぼ同一のx座標で開始又は終了するテキスト行を探索し且つx座標が実際に位置揃え点であるという十分な根拠があるかを判定することにより右揃えガイド及び左揃えガイドを判定する。いくつかの実施形態は、位置揃えガイドを判定するために密度クラスタリングと呼ばれるクラスタ分析の形式を使用する。いくつかの実施形態の密度クラスタリングは、リソースの制限されたデバイス(例えば、iPhone(登録商標))において実行されるように第X節において以下に説明するメモリ及び処理効率化を利用する。
多くの場合、密度クラスタリングは、「ノイズ」又はランダムデータがない場合に鮮明に可視であるクラスタと組み合わされた、非常に多くの「ノイズ」又はランダムデータが存在するという問題に適用可能である。データが実数の集合である場合、クラスタは、所定の密度制約を最適に満たす部分集合として識別される。一般に制約は、他の部分集合より相対的に密度の高い部分集合を選定するように設計される。例えばいくつかの実施形態は、クラスタの最小サイズ及びクラスタの最大広がりを制約として使用する。
図20は、密度クラスタリングを実行するいくつかの実施形態の処理2000を概念的に示す。図示するように、処理は入力データの集合を受信する(2005)。いくつかの実施形態において、入力データは、ページ上の文字グリフの座標データである。例えば左揃えガイドを見つけるために密度クラスタリングを使用する時、入力データはページ上の各単語の最初の英字のアンカのx座標である。
処理は入力データの集合をソートする(2010)。いくつかの実施形態は昇順にデータをソートし、他の実施形態は降順にデータをソートする。例えば位置揃えガイドを判定するために密度クラスタリングを使用する場合、データ(x座標値)は、2つのx座標値が等しい場合にソート済みデータにおいて隣り合うように(2つの間に入る同一のx座標値を有する他の単語がない限り)最小のx座標値から最大のx座標値へとソートされる。いくつかの実施形態は、ソート済みデータに対して新しい配列を作成し、その一方で、いくつかの実施形態は、第X節において以下に説明するように間接的にソートされた指標の配列を使用する。
次に処理2000は、集合が少なくとも2つのデータを有するかを判定する(2012)。有さない場合、クラスタリングするものがないため処理は終了する。有する場合、ソート済み集合において連続するデータ間の差分の集合を判定すること(2015)に進む。そのような集合は、入力データの集合より1少ない値を有する。一例として、ページ上に3つの単語が存在する場合、差分の集合の2つの値は、第1の単語と第2の単語との間のx座標値の差分及び第2の単語と第3の単語との間のx座標値の差分である。
次に、処理は変数dを差分の集合の未評価の最大の差分に設定する(2020)。例えば単語の集合に対する差分が0.7インチ、0.2インチ、0.0インチ及び0.4インチである場合、変数dは最初に0.7インチに設定される。処理は、差分がd以上である場合は必ずソート済みデータを区分して、データの部分集合の集合を生成する(2025)。dが最大差分に設定されるため、第1の区分は常にdに等しい差分でのみソート済みデータを区分する。0.7、0.2、0.0及び0.4の差分を有する5つのデータ値の上記例において、区分により2つの部分集合が生成される(一方の部分集合には最初の値があり、他方の部分集合には他の4つの値がある)。
問題を解決するために特定の制約を満たす部分集合の集合Sを判定する(2030)。いくつかの実施形態において、制約の目的は、他の部分集合より相対的に密度の高い部分集合を判定することである。いくつかの実施形態は、最小クラスタサイズ(すなわち、部分集合の値の数の最小値)及び最大クラスタ広がり(すなわち、部分集合の最大値と最小値との間の最大許容差)の2つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の1かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字(左揃えの場合)又は最後の文字(右揃えの場合)のフォントサイズの中央値の何分の1かである最大広がりを使用する。
制約を満たす部分集合の集合Sが判定されると、処理は、Sが空であるかを判定する(2035)。Sが空である場合、以下に説明する2055に進む。Sが少なくとも1つの部分集合を含む場合、処理はSに対する最適化関数を評価する(2040)。いくつかの実施形態は、制約を満たす最大部分集合を有する集合Sを探す最適化関数を使用する。他の実施形態は、制約を満たす全ての部分集合にわたり特定の値(例えば、部分集合のサイズ−最小クラスタサイズ)の二乗和を最大にしようとする最適化関数を使用する。更に他の実施形態は、上述した最適化関数が同等の場合は最適化関数の一方を使用し、その後他方を使用する。他の最適化関数は他の実施形態により使用される。
次に処理は、最適化関数に基づいて、集合Sがこの時点までで最適であるかを判定する(2045)。Sが最適でない場合、以下に説明する2055に進む。Sが最適である場合、処理は既に見つけられた最適なクラスタの集合としてSを格納する(2050)。Sが空でない場合、最初の通過時(ここで、dは最大差である)には常にこの時点で最適である。その後の通過時には、現在のSが格納されたクラスタの集合と比較される。
処理は、未評価の差分が存在するかを判定する(2055)。いくつかの実施形態は、最適なクラスタの集合を見つけるために可能な各区分をテストする。そのようないくつかの実施形態は、第X節において以下に説明する効率化技術を使用してより高速で効率的な処理を可能にする。未評価の差分があると判定される場合、上述した2020に進む。
全ての差分が評価されると、処理は現在格納されている最適な集合(又は制約を満たすクラスタが見つけられない場合は空の集合)を最終的なクラスタの集合として出力する(2060)。位置揃えガイドを判定する場合、最終的なクラスタの集合は非常に近いx座標を有する単語のグループである。その後、処理は終了する。密度制約及び最適な測定に加えて、処理2000は、整合性制約をクラスタに課すことが当業者には理解されるだろう。すなわち、データが指定された空隙の最小値以上の全ての差分で区分されるため、クラスタにおいて連続する値の間のクラスタ内差分がクラスタ間差分以上になることはない。
B.位置揃えガイドの判定
上述したように、いくつかの実施形態は、ページ上で同一のx座標又はほぼ同一のx座標において開始又は終了する関連したグリフの集合(例えば、用語、テキスト行)を探索し且つx座標が実際に位置揃え点であるという十分な根拠があるかを判定することにより右揃えガイド及び左揃えガイドを判定する。いくつかの実施形態は、左揃えガイド及び右揃えガイドを見つけるために、類似するが同一ではない処理を使用する。
図21は、左揃えガイドを判定するいくつかの実施形態の処理2100を概念的に示す。処理2100の一部については図22〜図24に関連して説明する。図22〜図24は、ページ2200において左揃えガイドを判定する処理を示す。図21に示すように、処理2100は、密度クラスタリングに対する入力データを文書の領域の単語の左エッジのx座標として設定する(2105)。いくつかの実施形態において、その領域はページ又はページのゾーンである。いくつかの実施形態において、特定の単語の左エッジは、特定の単語の第1のグリフのアンカのx座標であり、そのグリフに対して予想される左揃え位置に調整される。
処理は所望のクラスタ特性を判定する(2110)。いくつかの実施形態において、クラスタ特性は上述した密度クラスタリングに対する制約である。いくつかの実施形態は、最小クラスタサイズ(すなわち、部分集合の値の数の最小値)及び最大クラスタ広がり(すなわち、部分集合の最大値と最小値との間の最大許容差)の2つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の1かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字(左揃えの場合)又は最後の文字(右揃えの場合)のフォントサイズの中央値の何分の1かである最大広がりを使用する。制約の一例は、最小クラスタサイズが領域のテキスト行の総数の5%であり且つ最大広がりがフォントサイズの中央値の10%であることである。
次に処理は、位置揃えガイドであってもよいx座標値のクラスタを判定するために判定されたクラスタ特性を使用して入力データに密度クラスタリングを適用する(2115)。いくつかの実施形態は、上述したように処理2000を使用する。
処理2100は、未評価のクラスタが存在するかを判定する(2117)。クラスタがない場合又は全てのクラスタが評価された場合、処理は終了する。未評価のクラスタが存在する場合、処理はクラスタ(すなわち、クラスタ分析から出力されたクラスタのうちの1つ)を選択する(2120)。処理は、クラスタ中の最小値及び最大値である最小x座標及び最大x座標、並びにページの最上部及び最下部である最小y座標及び最大y座標を有する矩形として左揃えガイドを設定する(2125)。いくつかの例において、クラスタの全てのx座標が同一値を有するため、最小x座標及び最大x座標は同一である。他の例において、偶然にクラスタに含まれる小さな収差又は単語は非ゼロの幅をこの矩形に与える。
図22は、いくつかの実施形態において、潜在的な左揃えガイド2205を含むページ2200を示す。単語2210が密度クラスタリング処理により右カラムの左エッジを形成する単語とグループ化されるように単語2210の開始がそれら単語の開始と十分に近接するため、矩形2205の最小x座標は右のカラム2215の左エッジにより設定され、その一方で、最大x座標はページの中央の単語「tate」2210により設定される。
処理2100は、矩形において開始する単語及び矩形と交差する単語の分析に基づいて制約を満たさないy座標の矩形を除去する(2130)。その後、上述した2117に進む。いくつかの実施形態は、単語が矩形の左側で開始し矩形と交差する場合は必ず矩形の一部を除去する。あらゆるy座標において、間に十分な数の境界の単語を有さない2つの交差する単語の間の矩形は除去される。境界の単語は、矩形において開始するか又は矩形の1つのエッジで開始する単語である。いくつかの実施形態は、交差する単語の間に少なくとも5つの境界の単語が存在するという要件を使用し、それらの5つの境界の単語のうち少なくとも1つは、そのテキスト行の最も左側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の前の単語と離間される必要がある。いくつかの実施形態は、参考として本明細書に取り入れられるMansfield他の米国特許出願公開第2007/0250497号明細書「Semantic Reconstruction」で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作2130を実行するために種々の要件(例えば、交差する単語の間に4つ以下又は6つ以上の境界の単語)を使用する。
図23は、矩形2205に対する交差する単語を丸で囲んだ状態でページ2200及び矩形2205を示す。交差する単語は、特に単語2340(「reprehenderit」)及び単語2315(「dolore」)を含む。交差する単語2340及び2315の間に2つの境界の単語2210(「tate」)及び2325(「esse」)が存在する。しかし、交差する単語の間の境界の単語に対する要件が3つ以上である場合、矩形はこの小領域においても除去される。いくつかの実施形態は、交差する単語の一番上(greatest ascent)から一番下(greatest descent)まで及び交差する単語の間の適格でない領域のみを除去する。他の実施形態は、交差する単語2330(「auteir」)からその上にある境界の単語2335(「reprehenderit」)までの領域等の位置揃えガイドを超える可能性が高い領域を更に除去する。
図24は、ページ2200に対する左揃えガイド2405及び2410を示す。ページの中央のコールアウト領域のために、特定のx座標における左揃えガイドはページ2200全体の長さにわたって伸びていない。
上述したように、いくつかの実施形態は、右揃えガイドを判定するために処理2100に類似する処理を使用する。図25は、右揃えガイドを判定するいくつかの実施形態の処理2500を概念的に示す。図示するように、処理は、密度クラスタリングに対する入力データを文書の領域の単語の右エッジのx座標として設定する(2505)。その領域は、いくつかの実施形態においてページ又はページのゾーンである。いくつかの実施形態において、特定の単語の右エッジは、特定の単語の最後のグリフのアンカのx座標+単語の最後のグリフに対する前進ベクトルのx座標であり、グリフに対して予想される右揃え位置に調整される。
処理は、所望のクラスタ特性を判定する(2510)。いくつかの実施形態において、クラスタ特性は上述した密度クラスタリングに対する制約である。いくつかの実施形態は、最小クラスタサイズ(すなわち、部分集合の値の最小数)及び最大クラスタ広がり(すなわち、部分集合の最大値と最小値との間の最大許容差)の2つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の1かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字(左揃えの場合)又は最後の文字(右揃えの場合)のフォントサイズの中央値の何分の1かである最大広がりを使用する。制約の一例は、最小クラスタサイズが領域のテキスト行の総数の5%であり且つ最大広がりがフォントサイズの中央値の10%であることである。
次に処理は、位置揃えガイドでありうるx座標値のクラスタを判定するために判定されたクラスタ特性を使用して入力データに密度クラスタリングを適用する(2515)。いくつかの実施形態は、上述したように処理2000を使用する。
処理は、未処理のクラスタが存在するかを判定する(2517)。クラスタがない場合又は全てのクラスタが処理された場合、処理は終了する。未処理のクラスタが存在する場合、処理はクラスタ(すなわち、クラスタ分析から出力されたクラスタのうちの1つ)を選択する(2520)。処理は、クラスタ中の最小値及び最大値である最小x座標及び最大x座標、並びにページの最上部及び最下部である最小y座標及び最大y座標を有する矩形として右揃えガイドを設定する(2525)。いくつかの例において、クラスタの全てのx座標が同一値を有するため、最小x座標及び最大x座標は同一である。他の例において、偶然にクラスタに含まれる小さな収差又は単語は非ゼロの幅を矩形に与える。
処理は、矩形において終了する単語及び矩形と交差する単語の分析に基づいて制約を満たさないy座標において矩形を除去する(2530)。その後、上述した2517に進む。いくつかの実施形態は、単語が矩形と交差するか又は矩形において開始し且つ矩形の右側で終了する場合は必ず矩形の一部を除去する。あらゆるy座標において、間に十分な数の境界の単語を有さない2つの交差する単語の間の矩形は除去される。境界の単語は、矩形において終了するか又は矩形の1つのエッジで終了する単語である。いくつかの実施形態は、交差する単語の間に少なくとも5つの境界の単語が存在するという要件を使用し、それらの5つの境界の単語のうち少なくとも1つは、そのテキスト行の最も右側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の次の単語と離間される必要がある。いくつかの実施形態は、上述した米国特許出願公開第2007/0250497号明細書で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作2530を実行するために種々の要件(例えば、交差する単語の間に4つ以下又は6つ以上の境界の単語)を使用する。
C.のどの判定
ガイドを判定した後、いくつかの実施形態は領域(例えば、ゾーン、ページ等)ののどを判定する。いくつかの実施形態は、領域の関連したグリフの間の塗りつぶされていない空白(例えば、のど)のグループ化を判定するために、ガイド判定処理(例えば、処理2100及び2500)からの情報を使用する。いくつかの実施形態は、領域ののどを判定するためにガイドに加えて他の位置揃え点を使用する。
図26は、領域に対するのどを判定するいくつかの実施形態の処理2600を概念的に示す。処理2600の部分については図27〜図29と共に説明する。図27〜図29は、ページ2700においてのどを識別する処理を示す。
図26に示すように、処理は位置揃え情報を受信する(2605)。いくつかの実施形態において、この情報は処理2100及び2500により判定されたガイドである。いくつかの実施形態は、他の位置揃え点及びガイドを含む。例えばいくつかの実施形態において、左揃えされた(行揃えされていない)テキストのテキスト行の終端は右揃え点として処理される。これにより、ガイドが第1のカラムの右エッジにおいて見つけられない場合でも、のどはカラムの空隙において識別される。同様に、いくつかの実施形態において、右揃えされたテキストの左エッジ又は中央に置かれたテキストの両側のエッジは位置揃え点として考えられる。
処理2600は、未処理の右揃え点があるかを判定する(2607)。右揃え点がない場合又は全ての点が処理された場合、処理は終了する。未処理の右揃え点がある場合、処理は右揃え点を選択する(2610)。いくつかの実施形態においては、処理は最も左側の右揃え点を最初に識別し、他の実施形態においては、処理はランダムな右揃え点を選択する。
処理は、左揃え点が選択した右揃え点と領域の右エッジとの間に存在するかを判定する(2615)。左揃え点がない場合、上述した2607に進む。あるいは、右揃え点と領域エッジとの間に少なくとも1つの左揃え点がある場合、処理は選択した右揃え点から領域と交差して移動して次の左揃え点を識別する(2620)。のどが存在するかを判定するために処理がテストするのは、それら2つの点の間の領域である。
右揃え点及び左揃え点が識別されると、処理は、最小x座標である右揃え点及び最大x座標である左揃え点を有する矩形としてのどを設定する(2625)。矩形の最小y座標及び最大y座標は、ページの最上部及び最下部である。図27は、ページ2700及びのどになりうるものとしてテストされる矩形2705を示す。最小x座標は、第1のカラムの右エッジの右揃え点であり、最大x座標は第2のカラムの左エッジの左揃え点である。
次に、処理は、矩形と交差し且つ矩形に境界をつける単語の分析に基づいて制約を満足しないy座標においてのどを除去する(2630)。いくつかの実施形態は、単語が矩形と交差するか又は矩形において開始する場所において矩形の一部を除去する。あらゆるy座標において、間に十分な数の境界の単語を有さない2つの交差する単語の間の矩形は除去される。のどに対する境界の単語は、矩形の左エッジで終了するか又は矩形の右エッジで開始する単語である。いくつかの実施形態は、交差する単語の間に少なくとも5つの境界の単語が存在するという要件を使用し、それらの5つの境界の単語のうち少なくとも1つは、そのテキスト行の最も左側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の前の単語と離間される必要があるか、あるいはそのテキスト行の最も右側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の次の単語と離間される必要がある。いくつかの実施形態は、上記の米国特許出願公開第2007/0250497号明細書で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作2630を実行するために種々の要件(例えば、交差する単語の間に4つ以下又は6つ以上の境界の単語)を使用する。その後、処理は上述した2607に進む。
図28は、矩形2705に対する交差する単語を丸で囲んだ状態でページ2700及び矩形2705を示す。交差する単語は、特に単語2810(「cillum」)及び単語2815(「nulla」)を含む。交差する単語2810及び2815の間に境界の単語2820(「eu」)が存在する。しかし、交差する単語の間の境界の単語に対する要件が2つ以上である場合、矩形はこの小領域においても除去される。いくつかの実施形態は、交差する単語の一番上(greatest ascent)から一番下(greatest descent)まで及び交差する単語の間の適格でない領域のみを除去する。他の実施形態は、のどを超える可能性が高い領域を更に除去する。
図29は、ページ2700に対するのど2905及び2910を示す。ページの中央のコールアウト領域のために、2つの主なカラムの間ののどはページ全体の長さにわたっていない。
いくつかの実施形態は、意味再構成処理 中にガイド及びのどを使用する。例えば、のどはテキスト行を分割し且つカラムを識別するために使用される。処理について、以下の第IV節において説明する。
D.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したガイド及びのど分析処理は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図30は、文書におけるガイド及びのどを識別するいくつかの実施形態のガイド及びのど分析アプリケーション3000のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
ガイド及びのど分析アプリケーション3000は、ガイド識別モジュール3005、密度クラスタリングモジュール3010及びのど識別モジュール3015、並びにガイド及びのど情報記憶装置3020を含む。
図30は、文書コンテンツ3025を更に示す。ガイド識別モジュール3005は、文書コンテンツ3025から情報を受信する。ガイド識別モジュール3005は、文書において位置揃えガイドを識別するために文書コンテンツを分析する。識別されたガイドは、のど識別モジュール3015、ガイド及びのど情報記憶装置3020、並びに文書コンテンツ3025に渡される。いくつかの実施形態において、ガイド識別モジュール3005は、処理2100及び2500の一部又は全てを実行する。
ガイド識別モジュール3005は、密度クラスタリングモジュール3010に情報を渡し、密度クラスタリングモジュール3010から情報を受信する。潜在的なガイドを判定するために、密度クラスタリングモジュール3010は、ガイド識別モジュール3005並びに/あるいはガイド及びのど情報記憶装置3025から入力データを受信し、入力データに対して密度クラスタリングを実行する。いくつかの実施形態において、密度クラスタリングモジュール3010は処理2000の一部又は全てを実行する。
のど識別モジュール3015は、ガイド識別モジュール3005及び文書コンテンツ3025から情報を受信する。のど識別モジュールは、文書においてのどを識別するために受信情報を分析する。識別されたのどは、ガイド及びのど情報記憶装置3020並びに文書コンテンツ3025に渡される。いくつかの実施形態において、のど識別モジュール3015は処理2600の一部又は全てを実行する。
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューでき且つ/又は文書と対話できるように(例えば、タッチスクリーン、カーソル制御デバイス等を介して)、電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
IV.レイアウト及びフローの判定
一般に、文書はコンテンツの黙示的構造及びフローを有する。特に、いくつかの例において、順序付けされた文字シーケンス(及びインライングラフィックス)は単語を構成し、順序付けされた単語シーケンスはテキスト行を構成し(又はハイフンによりテキスト行をまたぐ)、順序付けされたテキスト行シーケンスは段落を構成し、順序付けされた段落シーケンスはカラムを構成し(又はカラムをまたぐ)、順序付けされたカラムシーケンスはレイアウトを構成し、順序付けされたレイアウトシーケンスは文書の小領域を構成する。この構造が電子文書のファイル形式で提供されない場合、以前はソフトウェアから構造にアクセスできなかった。文書を単に閲覧することは文書構造を必ずしも必要としないが、文書の編集、インポート、検索、書式設定又は転用を行うアプリケーションは適切に機能するために文書構造及びフローの知識を必要とする。
本発明のいくつかの実施形態は、文書又は文書のある領域のレイアウト及びフローを判定する方法を提供する。これは、意味階層(例えば、文書の単語、行及び段落)、並びにカラム等のレイアウト特性及び意図した文書の読み取りのためのどのようにカラムが調和しているかを判定することを含む。いくつかの実施形態において、処理の目的は、ユーザが最初から最後まで文書を読み取る順序を識別することである。
図31は、文書のレイアウト及びフローを判定するいくつかの実施形態の処理3100を概念的に示す。処理3100について図32と共に説明する。図32は、2つのテキストカラムを含む文書のページ3200に対して判定される種々のレイアウト及びフロー情報のシーケンスを示す。図32において、ページ3200のコンテンツが重要ではなく、行及び段落等が重要であることが理解されるだろう。図31に示すように、処理3100は文書の一部を受信する(3105)。いくつかの実施形態において、その一部は文書全体であるか、あるいは小領域、ページ又はゾーンである。
処理は、受信した文書中のテキスト行を識別する(3110)。これは、必要に応じて共通の並び線及びマージ基本線を共有する文字(例えば、下付き文字及び上付き文字)を識別することを含む。図32は、行3205及び3210の識別を示す。いくつかの実施形態の行識別処理は、第A項において以下に更に詳細に説明する。
次に、処理はテキスト中の単語を識別する(3115)。いくつかの実施形態は、テキスト中の単語を識別するために、上述した米国特許出願公開第2007/0250497号明細書で説明したように差分クラスタリングを使用する。図32は、行3205の単語3215(「Lorem」)及び行3210の単語3220(「amet」)を含むページ3200の単語の識別を示す。単語識別処理については、第B項で以下に更に詳細に説明する。
処理は、テキストが不連続であるテキスト行を分割する(3120)。図32は、行3205が行3225及び3230に分割され且つ行3210が行3235及び3240に分割されることを示す。いくつかの実施形態の行分割処理については、第C項で以下に更に詳細に説明する。
行を分割した後、処理はテキスト行を段落に配置する(3125)。図32は、ページ3200上で識別された段落3245及び3250を示す。段落識別処理については、第D項で以下に更に詳細に説明する。
最後に、処理は段落をカラム及びレイアウトに配置する(3130)。図32は、ページ3200上で識別されたカラム3255及び3260を示す。カラム及びレイアウト識別処理については、第E項で以下に更に詳細に説明する。
いくつかの実施形態は、処理3100の全ての動作を1度に実行しない。いくつかの実施形態は、処理3100の動作の間で他の文書再構成処理を実行する。例えばいくつかの実施形態は、テキスト行及びテキスト中の単語を判定するが、テキスト行を分割する前にガイド及びのどを識別する。
A.最初の行識別
上述したように、いくつかの実施形態において、テキスト行は識別される必要がある。特定のテキスト行の全ての文字が共通の並び線を必ずしも共有しないため、いくつかの実施形態は、2つの行の文字が同一のテキスト行の一部(例えば、上付き文字及び下付き文字)として読み取られることが意図されるという根拠に基づいて行をマージしようとする。
図33は、テキスト行を識別及びマージするいくつかの実施形態の処理3300を概念的に示す。処理3300については図34及び図35と共に説明する。図34は、重なり合うテキスト行の6つのグループ3405〜3430を含むページ3400を示す。図35は、本発明のいくつかの実施形態に係るこれらのテキスト行のグループのマージを示す。
図33に示すように、処理は文書の一部を受信する(3305)。いくつかの実施形態において、その一部は文書のページ又はページのゾーン等である。処理は、その文書の一部に文字があるかを判定する(3307)。文字がない場合、処理は終了する。文字がある場合、処理は共通の並び線を共有する文字を基本テキスト行として関連付ける(3310)。文字は、同一のy座標のアンカ点を有する場合、いくつかの実施形態において共通の並び線を共有する。一般に、共通の並び線を共有する文字の関連付けにより、標準的なテキスト行をグループ化する。いくつかの実施形態は、基本テキスト行のy座標のアンカ点が厳密に等しい必要はないが互いの小さな閾値内になる必要があるような小さな閾値を使用する。
次に、処理は垂直に重なり合うテキスト行のグループを識別する(3315)。第1の行のバウンディング矩形がy座標値において第2の行のバウンディング矩形と重なり合う場合、いくつかの実施形態において、2つの行は垂直に重なり合う。図35は、垂直に重なり合うテキスト行の6つのグループ、すなわち行3505及び3506、行3510及び3511、行3515及び3516、行3520、3521及び3522、行3525及び3526、並びに行3530及び3531を含むページ3400を示す。行3520及び3522が互いに重なり合わないが双方とも行3521と重なるため、行3520は1つのグループにおいて行3522と関連付けられる。水平方向の重なりはないが、行3530及び3531は、垂直に重なり合うため、いくつかの実施形態において最初にグループ化される。
その後、処理は未評価のグループを選択し(3320)、異なる小領域のテキスト行の間で水平に重なり合わない小領域にグループを区分する(3325)。第1のテキスト行のバウンディングボックスのx座標が第2のテキスト行のバウンディングボックスのx座標と重なり合う場合、いくつかの実施形態において、2つのテキスト行は水平に重なり合う。例えば行3530及び3531は、水平に重なり合わず同一行であると考えられる可能性が低いため、この時点で区分される。いくつかの実施形態は、テキスト行の最初及び最後で短い距離(例えば、間隔文字の半分)だけ水平方向の重なりの基準を拡張し、その結果、行の最初及び最後のオフセット文字(例えば、下付き文字及び上付き文字)がマージされる。例えば、行3510と行3511との間に水平方向の重なりはないが、行3510の終端が行3511の開始に十分近いため、それらの行は区分されない。
選択したグループを区分した後、処理はグループから未評価の小領域を選択し(3330)、最上部から最下部へと小領域の行をソートする(3335)。従って、行3520〜3522を含む選択した小領域が選択される場合、行は、1番目に行3520、2番目に行3521、3番目に行3522になるようにソートされる。種々の実施形態は、昇順、降順、並び線、又は行の垂直位置の他の基準により行をソートする。
その後、処理は小領域の最上部の未評価の行を選択する(3340)。次に、処理は選択した行の最初(左から右に読まれる言語の場合は左から読む)の未評価の文字を選択する(3345)。処理は、選択した文字が次の行にマージされるかを判定する(3350)。いくつかの実施形態は、選択した文字が次の行のあらゆる文字と水平にそれ程重なり合わない場合に文字が次の行にマージされることを可能にする。いくつかの実施形態は、文字の間のある少ない量の水平方向の重なりを可能にする。左から右に読まれる言語の場合、いくつかの実施形態は、オフセット文字に対する共通の間隔調整を考慮するために、マージされる文字の左側の重なりがマージされる文字の右側の重なりより少ないことを可能にする。
更に、いくつかの実施形態は、重なり合う文字の元の挿入順が隣接する場合、あらゆる量の重なりを可能にする。いくつかの実施形態において、挿入順は、文字がページに書かれる順序である。多くの場合(常にではないが)、文字は読まれる順序で書かれるため、垂直及び水平に重なり合う2つの文字が挿入順で隣接する場合、それらの文字は共に読まれることを意図する可能性が高い。
選択した文字が次の行にマージ可能であると判定される場合、処理は選択した文字を次の行にマージする(3355)。その後、以下に説明する3365に進む。あるいは、選択した文字がマージできない場合、処理は選択した文字を選択した行に保持する(3360)。
次に処理は、選択した行が更に文字を含むかを判定する(3365)。現在選択されている行に更なる文字がある場合、3345に進み、その行の次の未評価の文字を選択する。あるいは、その行の全ての文字が評価された場合、処理は、現在の小領域が更なる行を含むかを判定する(3370)。現在選択されている小領域に更なる行がある場合、3340に進み、次の未評価の行を選択する。
小領域の全ての行が評価された場合、処理は、選択したグループが更なる小領域を含むかを判定する(3375)。現在選択されているグループに更なる小領域がある場合、3330に進み、別の小領域を選択し且つその小領域の行をマージする。あるいは、グループ中の全ての小領域が評価された場合、処理は、文書の一部に評価するグループが更に存在するかを判定する(3380)。更なるグループがある場合、3320に進み、別のグループを選択する。あるいは、全てのグループが評価された場合、行のマージはその文書の一部に対して終了し、処理が終了する。
図35は、いくつかの実施形態においてページ3500に対する行のマージの結果を示す。行3506は、行3505にマージできるため、行3505は行3506の上付き文字「m」を含み、その一方で、行3506は空であるため除去される。行3510と3511との間には水平方向の重なりがないが、行3510の終端は行3511の開始と十分に近く、それらの行は区分されず、行3510の全てが3511にマージされる。行3516の双方の文字は、行3515にマージされる。
行3520〜3522は完全にマージできない。行3520の文字「b」は最初に行3521にマージされる。その後、行3521の文字「A」は、文字「c」と重なり合わないため行3522にマージされる。しかし、文字「b」は、文字「c」と完全に重なり合うため行3522にマージされない。従って、行3521は「b」のみを含み、行3522は「A」及び「c」を含み、行3520は空である。上述したように、いくつかの実施形態は、「b」及び「c」が挿入順で隣接する場合、「b」を行3522にマージする。
同様に、行3525及び3526はマージされない。行3526の全ての文字は、行3525の1つ以上の文字と多くの部分が重なり合うため、行3525にマージされない。行3526の「T」がページ3500に対する挿入順で行3525の「h」と「n」との間になる可能性は低い。最後に、行3530及び3531は、間に水平方向の重なりがなく且つ従って動作3325において区分されるためマージされない。
行が識別され且つマージされた後、いくつかの実施形態において単語が識別される。いくつかの実施形態は、単語内の英字の間及び単語の間の間隔に基づいて単語を識別するために米国特許出願公開第2007/0250497号明細書で説明されるような差分クラスタリングを使用する。いくつかの実施形態において、差分クラスタリングは、セグメントの空隙、カラムの空隙等に関する情報を更に提供する。いくつかの実施形態は、差分クラスタリングを実行するために以下に第X節で説明するメモリ及び処理効率化技術を使用する。
B.差分クラスタリングを使用する単語及び空隙の識別
図36は、差分クラスタ分析を実行するいくつかの実施形態の処理3600を概念的に示す。多くの形態のクラスタ分析は、複数のクラスタリングのレベル/階層が存在する可能性があるため、グループ/クラスタ数の予知を必要とする。例えば天体をグループ化するためにクラスタ分析を使用する場合、クラスタ数の指定により、クラスタ分析が星のレベル、太陽系のレベル、銀河のレベル又は超銀河団のレベルで天体をグループ化するかを判定する。しかし、コンテンツの要素間の構造関係を発見するためにクラスタ分析を使用する場合、例えばグループ数は多くの場合に未知である。例えばテキストのページの場合、所定の最初のテキスト行が2つ以上の段落の部分を含むかもしれないように、文書が2カラム以上のテキストを有してもよいため、グリフが単語を構成し、単語が組み合わされて行を形成し、行のグループが段落を形成すると推定できない。
いくつかの実施形態において、クラスタ分析は、別のクラスタの点に対する距離より互いに近接するクラスタに点をグループ化するためにデータ点の集合に適用可能な一組の技術である。いくつかの実施形態において、クラスタ分析は、グリフ、単語及びテキスト行等のオブジェクト間の水平方向及び垂直方向の空隙を表すデータ点に適用される。例えばいくつかの実施形態は、次に説明するk平均クラスタ分析を使用する。空間的空隙を表す数字(p,...,p)の集合及びk(クラスタ数)に対する既知の値から開始すると、技術は不等式の形態C={p|a≦p<a+1}で定義されたk個のクラスタC,...,Cに数字を区分するために使用される。式中、a,...,ak+1は増加シーケンスである。k平均技術を適用する前に、差分pi+1−pはサイズによりソートされ、k−1番目に大きい差分は区分点になるように利用される。例えばpi+1−pがk−1番目に大きい差分の1つである場合、pi+1はpとは異なるクラスタにあり、pi+1は連続した値aのうちの1つである。k平均クラスタ分析は、クラスタを繰り返し改善するために適用される。k平均技術は、各クラスタ中の数字の平均をとり、最も近い計算された平均と関連付けることによりpをクラスタに分散させることを含む。これは、クラスタ又はそれらの平均に変化がなくなるまで繰り返し実行される。
いくつかの実施形態において、本明細書において「差分クラスタリング」と呼ばれる開示された技術は、所定のソースコンテンツを含むコンテンツ要素間に存在する構造関係のレベル数及び/又はそのようなレベル間の1つ以上の階層関係、並びにコンテンツ要素が判定された各レベルの別のコンテンツと関連付けられるかを判定するために使用される1つ以上の特性を判定するために使用される。いくつかの実施形態において、差分クラスタリングはk平均技術を他の技術と共に利用する。図36に示す例において、コンテンツ要素の位置の間の差分(間隔)は差分クラスタリング分析を使用して分析される。いくつかの実施形態において、コンテンツ要素間の間隔を分析することにより、コンテンツ要素は間隔のグループ化データを使用して少なくとも部分的にグループ化される。いくつかの実施形態において、間隔の各方向成分は別個に分析される。例えば水平成分に対する差分クラスタリング分析は、文字間隔と単語間隔とカラム間隔とを区別するために使用される。いくつかの実施形態において、垂直成分に対する差分クラスタリング分析は、行間隔と段落間隔とテキストボックス間隔とを区別するために使用される。処理3600は、単一の方向成分に対する差分クラスタリング分析を概念的に示す。処理は、1つ以上の追加の方向成分を分析するために再度使用されてもよい。いくつかの実施形態において、1次元以上で差分クラスタ分析を実行した結果は、1つ以上のレベルのコンテンツ要素間の構造関係を判定するために組み合わされる。
図36に示すように、処理3600は文書の一部を受信する(3605)。処理は、文書の要素の場所を識別する(3610)。いくつかの実施形態において、要素は、文字、グリフ、画像、行、図、ボックス、セル、余白及び/又は種々の他のコンテンツ要素を含む。いくつかの実施形態において、要素の場所は、1つ以上の位置座標成分を判定し且つ/又はそれらを要素に割り当てることを含む。いくつかの実施形態において、要素の場所はある順序で編成される。例えば、クラスタの水平方向の間隔を分析する場合、文字は文字の行毎に水平座標の昇順に編成される。いくつかの実施形態において、要素の位置座標値は要素間の間隔と関連付けられるのが望ましく、位置値は要素の幅/長さに対して補正される。例えば要素の編成順のn番目の位置の要素に対する補正された水平座標(x座標)値を判定する場合、以下の式が使用される。
式中、X’は補正された位置座標値であり、Xは元の位置座標値であり、Wはi番目の位置の要素の幅である。いくつかの実施形態において、要素の幅は、要素が表す文字、フォントサイズ、文字の書式等に基づく。いくつかの実施形態は、文字毎の既知のアンカ座標を使用し且つ特定の文字毎の座標をその特定の文字の幅により調整することにより補正された位置座標値を判定する。
次に処理は、隣接する要素の場所の間の1次差分を判定する(3615)。いくつかの実施形態において、少なくとも1つの同一の位置座標成分値を有する2つの要素が少なくとも1つの他の位置座標成分値において隣接し合って順序付けられる場合、一方の要素は他方の要素に隣接する。例えば2つのグリフが同一のテキスト行に属し且つそれらの間に他のグリフが存在しない場合、それらグリフは互いに隣接する。いくつかの実施形態において、2つの要素の対応する位置座標成分値の間の差分が極限値より小さいか又は範囲値内である場合、それらの要素は少なくとも1つの同一の位置座標成分を有する。種々の実施形態において、2つの要素が要素の識別された場所と関連付けられた編成及び/又は順序で互いに隣接している場合、一方の要素は他方の要素と隣接している。いくつかの実施形態において、場所の間の1次差分は幅/長さが補正された位置座標値の間の差分である。例えば補正された水平座標(x座標)の編成順のn番目及びn+1番目の位置の隣接する要素に対する補正された水平座標値の間の差分を判定する場合、いくつかの実施形態においては以下の式が使用される。
いくつかの実施形態において、1次差分はコンテンツのグリフ間の空隙間隔と関連付けられる。
次に、処理3600は1次差分をソートする(3620)。いくつかの実施形態において、1次差分を編成することは1次差分を昇順に順序付けすることを含む。いくつかの実施形態において、1次差分を編成することは、1つ以上の1次差分に重み値を割り当て且つ重み値を使用して少なくとも部分的に1次差分を編成することを含む。例えばいくつかの実施形態において、使用されるフォント並びにサイズ、デフォルトの英字間隔及びフォントファイルと共に格納されたカーニング値のテーブルを含むそのフォント計測値を与えられて、特定のグリフの対毎に予想されたグリフ間隔で、実際のグリフ間隔は除算される。実際の間隔と予想された間隔との比は昇順に順序付けされ、この比の値は、残りの差分クラスタリング方法において1次差分の代わりに使用される。
処理は、ソート済み1次差分の間の2次差分を判定する(3625)。例えば、1次差分の編成順のi番目及びi+1番目の位置における1次差分の間の2次差分を判定する場合、以下の式が使用される。
式中、Δはi番目の2次差分であり、ΔX(i)はソート済み1次差分のi番目の位置の1次差分であり、ΔX(i+1)は同一のソート済み1次差分のi+1番目の位置の1次差分である。いくつかの実施形態において、2次差分はグリフの間隔の間の差分と関連付けられる。
次に、処理3600は2次差分を分析することによりクラスタレベル数を判定する(3630)。いくつかの実施形態において、2次差分を分析することは、判定された2次差分を編成することを含む。いくつかの実施形態において、2次差分を編成することは、2次差分を昇順に順序付けし且つ/又は2次差分値の昇順に2次差分をグラフ化することを含む。いくつかの実施形態において、2次差分を編成することは、1つ以上の2次差分に重み値を割り当てることを含む。いくつかの実施形態において、2次差分を編成することは、2次差分を1つ以上のグループにグループ化することを含む。いくつかの実施形態において、2次差分は、グループ間差分又はグループ内差分としてそれぞれ分類される。
グループ内差分は、相対的により小さい2次差分値と関連付けられ、同一のクラスタリンググループ内の1次差分の2次差分を表すことができる。グループ内差分の一例は、文字幅で補正された同一の単語内の英字間の間隔において見つけられると予想される相対的に小さな変化である。グループ間差分は、相対的により大きい差分値と関連付けられ、異なるクラスタリンググループ間の1次差分の2次差分を表すことができる。グループ間差分の一例は、2つの単語間の空間と同一の単語内の2つの英字間の空間との間の相対的に大きな差分である。
いくつかの実施形態において、2次差分をグループ内の値及びグループ間の値に分類することは、2平均クラスタ分析を順序付けされた2次差分値に適用することにより達成される。特に、(p,...,p)を利用して昇順で{Δ,...,Δ}を得る。同様に、データ値の2つのクラスタを区別するのに十分であるクラスタ分析のあらゆる他の技術が順序付けされた2次差分値に適用可能である。グループ内差分は第1のクラスタC={p|a≦p<a}にあり、グループ間差分は第2のクラスタC={p|a≦p<a}にある。式中、a<a<aである。いくつかの実施形態において、上述したように分析された空間関係に基づいてコンテンツ要素が編成されると判定されるレベル数は、差分クラスタ分析を通して見つけられたグループ間差分の数より1つ多い。例えば2つのグループ間差分が存在する場合、構造レベル数は3である。単純な例を利用して、単一のテキスト行を構成する単語を形成する文字を考慮する。x−x方向の文字間の間隔の1次差分は、文字間隔と単語間隔との間の2次差分(1つのグループ間差分)を与え、構造の2つのレベル(単語及び行)を示す。テキストが2つのカラムにあった場合、更なる2次差分(単語間隔とカラム間隔との間)が検出されており、合計で2つのグループ間差分に対してx方向の3つの構造レベルを示す(単語、行及びカラム)。特定のコンテンツに適用可能である場合はy方向の分析を繰り返し且つ結果を組み合わせることにより、いくつかの実施形態において文字間の間隔及び文字のグループで示される更なる構造レベル(例えば、段落等)を識別する。
処理は、各クラスタレベルの特性を判定する(3635)。その後、処理は終了する。いくつかの実施形態において、特性を判定することは、どの1次差分(及び/又は1次差分の範囲)がどのクラスタレベルと関連付けられるかを判定することを含む。いくつかの実施形態において、特性を判定することは、クラスタレベルと関連付けられた1次差分と関連付けられた統計値を計算することを含む。例えばクラスタレベルと関連付けられた1次差分の一部の平均値、最小値、最大値を判定することにより、コンテンツ中のグリフ間の平均、最小及び最大間隔が判定される。
Lをクラスタリングのレベル数とする。いくつかの実施形態において、Lは2次差分の第2のクラスタの点の数をカウントし且つ1を加算することにより計算される。次に、例えば以下の2つの方法のうちの1つの方法により、各レベルに対応する1次差分のグループが識別され、補正されたX’個の値のクラスタが各レベルにおいて識別される。
1つの可能性は、1次差分に対してL平均クラスタ分析を実行することである。結果として得られるL個のクラスタは、各レベルに対応する1次差分のグループである。次に、レベルmにおけるX’のクラスタ数Kは、1次差分の(m+1)番目、(m+2)番目、...、L番目のクラスタの点の数+1により計算される。最後に、レベルmにおけるK個のクラスタを生成するために、補正されたX’個の値に対してK平均分析を実行する。
第2の可能性は、各1次差分ΔX=Xn+1’−X’を最初に計算する時にその差分を生成するために減算された連続するX個の値の対の一方を識別するために使用できる指標nと共に1次差分の値を格納することである。値及び指標参照を単一の「1次差分」データ構造に格納する。同様に、各2次差分を最初に計算する時、その差分を生成するために値が減算された連続する「1次差分」データの対の一方を識別するために使用できる指標参照と共に2次差分の値を格納する。ここで、第2のクラスタにある2次差分毎に(すなわち、グループ間差分毎に)、1次差分の区分点を識別するために指標参照を使用する。これは、指標が別個のクラスタに入るように区分される一対の1次差分値を識別することを意味する。このように区分することにより、元のデータにおけるクラスタリングのL個のレベルに対応する1次差分のL個のクラスタが生成される。ここで、レベルnにおけるX個の値のクラスタは以下のように識別される。すなわち、1次差分の(m+1)番目、(m+2)番目、...、及びL番目のクラスタにおける1次差分データ毎に、その指標参照をX’個の値の区分点として使用する。
図37は、差分クラスタリングの一例を示す。いくつかの実施形態において、図37の例は、図36の処理3600と関連付けられる。1次差分値のグループ3705、3710及び3715は、1次差分値と関連付けられたライン上に、最小値から最大値という順序でプロットされる。各点は、例えばテキスト文字又は他のグリフから隣接するテキスト文字又はグリフまでの距離である差分値と関連付けられ、図37において、点は例を明示的に示すために互いの上に重ね合わされない。
図示する例において、データはグリフ間の水平方向の間隔と関連付けられる。1次差分値を順序付けすることにより、例は1次差分値の3つのグループ3705、3710及び3715を示す。1次差分値のグループ3705は、単語を構成するグリフ間の間隔と関連付けられる。1次差分値のグループ3710は、単語間の間隔と関連付けられる。1次差分値のグループ3715は、カラム間の間隔と関連付けられる。隣接する1次差分値の対毎に、2次差分値(すなわち、1つの1次差分と隣接する1次差分との間の差分)が判定され、2次差分値と関連付けられたライン上に、昇順にプロットされる。2次差分値のグループ3720、3725及び3730の各々は2次差分値と関連付けられた1つ以上の点を含む。いくつかの実施形態において、点3725は2次差分値のグループを含む関連した2次差分点のグループのメンバである。
いくつかの実施形態において、点3730は2次差分値のグループを含む関連した2次差分点のグループのメンバである。いくつかの実施形態において、3720は、1つのクラスタとして識別され、3725は3730と共に第2のクラスタとして識別される。同一の単一の1次差分値グループ内の1次差分値間の2次差分値(グループ内差分)は、2次差分値グループ3720に含まれる。テキスト文書において、例えば一般に単語内の文字間の文字の幅が補正された間隔又は単語の異なる対の間の間隔は僅かだけ変動する。グループ3705及び3710のグループ間の隣接する点の間の2次差分は点3725に含まれる。グループ3710及び3715のグループ間の隣接する点の間の2次差分は点3730に含まれる。この例においてグループ間の2次差分値が2つ存在するため、2+1(3)個のグループ化レベル(この例においては、1つのカラム内のテキスト行の単語、文又は文の一部、並びに複数のカラム)が存在する。グループ3705の1次差分値の最小値及び最大値を判定することにより、単語を構成するグリフ間の最小間隔及び最大間隔が判定でき、同様に、グループ3710及び3715は単語間隔及びカラム間隔をそれぞれ判定するために使用される。
いくつかの実施形態において、各グループ化レベルと関連付けられた最小間隔及び最大間隔は、例えば単語を構成する文字のグループを識別することによりコンテンツ要素(例えば、グリフ)をグループ化するため、カラム内のテキスト行に単語をグループ化するため等に使用される。クラスタ分析から判定されたデータを使用することにより、グリフは判定されたグループ化レベルにグループ化される。部分的な理由として、分析されているコンテンツの構造又は他の要素の集合にあるグループ化レベルの数を事前に認識する必要がないため、あらゆる任意のコンテンツに関して迅速に且つ自動的に分析を実行できる。グループ化レベルの数に関わらず、レベル数は2つの処理ステップのみで判定される。グループ3705の1次差分値の平均値を判定することにより、単語を構成するグリフ間の平均間隔が判定できる。同様に、単語を構成するグリフに対して、他の統計量が判定できる。同様に、グループ3710及び3715の1次差分値の分析は、単語間隔及びカラム間隔に関係する統計量を判定するために使用される。
C.行の分割
単語及びセグメント区切り情報が生成された後、いくつかの実施形態はテキスト行を分割する。2つ(又はそれ以上)の小領域のテキストが共に読まれることを意図しない可能性が高いため、テキスト行が分割され、例えば、テキスト行は2つ以上のカラムにまたがる。いくつかの実施形態は、テキスト行を分割するために差分クラスタリング(例えば、セグメント空隙等)からの情報と共に第III節で上述した処理から導出されたガイド及びのど情報を使用する。
図38は、テキスト行を分割するいくつかの実施形態の処理3800を概念的に示す。処理3800の部分について図39と共に説明する。図39は、ページ3900の行が分割されるべき場所の識別を示すシーケンスを示す。図38に示すように、処理3800は文書の一部に対するテキスト行、ガイド及びのど情報、並びにセグメント区切り情報を受信する(3805)。テキスト行情報は、いくつかの実施形態においては処理3300の出力であり、ガイド及びのど情報は、いくつかの実施形態においては処理2100、2500及び2600の出力である。セグメント区切り(又はセグメント空隙)情報は、上述した米国特許出願公開第2007/0250497号明細書及びいくつかの実施形態で説明したように差分クラスタリングの出力の1つである。いくつかの実施形態において、その文書の一部は文書全体、小領域、ページ、又はページのゾーンである。
次に、処理は受信したテキスト行の並び線のy座標に基づいてそれらテキスト行をソートする(3810)。ページの最下部から開始すると、処理は最下部の未評価のテキスト行を選択し(3815)、選択された行において潜在的な分割を識別する(3820)。行の2つの単語間のあらゆる空隙が(1)差分クラスタリングにより規定されるようにセグメント空隙であるか、あるいは(2)通過するガイド又はのどを有する時、いくつかの実施形態は潜在的な分割を規定する。他の実施形態は、潜在的な分割に対して一方の規定又は他方の規定のみ、あるいは種々の規定を使用する。
処理は、いずれかの潜在的な分割が識別されたかを判定する(3822)。何も規定されていない場合、以下に説明する3845に進む。分割が識別された場合、処理は現在選択されているテキスト行から潜在的な分割を選択する(3825)。処理は、その潜在的な分割のx区間が前のテキスト行からのいずれかの潜在的な分割のx区間と重なり合うかを判定する(3830)。評価された第1のテキスト行は、前のテキスト行を有さないため、重なり合う潜在的な分割は存在しない。現在選択されている潜在的な分割のx区間が前の行からの潜在的な分割のx区間と重なり合わない場合、上述した3822に進む。重なり合う場合、重なり合う潜在的な分割を関連付ける(3835)。その後、上述した3822に進む。
未評価の潜在的な分割がそれ以上存在しない場合、処理は、評価する行が更に存在するかを判定する(3845)。更なる行が残っている場合、3815に進み、次の行における潜在的な分割を識別し、重なり合うかに関してテストする。
全ての行が評価された場合、その文書の一部における全ての潜在的な分割が識別され且つ関連付けられている。処理は、偽肯定(すなわち、テキスト行を実際に分割すべきでない潜在的な分割)を除去するためにいくつかの動作を実行する。処理は、潜在的な分割のあらゆるグループが識別されたかを判定する(3847)。何も識別されなかった場合、処理は終了する。識別された場合、処理は関連付けられた潜在的な分割のグループを選択し(3850)、選択したグループの潜在的な分割を完全に通過する矩形ストリップを規定する(3855)。いくつかの実施形態において、ストリップは、選択したグループの全ての潜在的な分割のx区間の共通部分であるx区間を有する(すなわち、2つの潜在的な分割が殆ど重なり合わないストリップに対するx区間は非常に細い)。
図39は、いくつかのテキスト行を含むページ3900を示す。殆どのテキスト行は、2つのカラムの間で分割される。しかし、並び線はいずれのカラムにおいても同一である。従って、行分割処理の前、第1のカラムの各行は第2のカラムの行と同一の行にある。図39は、関連付けられた潜在的な分割の4つの矩形ストリップ3905、3910、3915及び3820を更に示す。
選択したグループに対して矩形ストリップを規定した後、処理は、ストリップが閾値より少ない数のテキスト行にまたがるかを判定する(3860)。1つ又はいくつかのテキスト行のみにまたがるストリップは、読む時の実際の分割を表す可能性は低いが、行内のタブ又は他の区切りでない空隙であってもよい。両端を揃えられたテキストのために単語間の空隙が非常に大きい場合、場合によってはセグメント空隙が差分クラスタリングにより見つけられる。ストリップが閾値より少ない数の行にまたがる場合、処理は、潜在的な分割のリストからそのグループを除去し(3865)、それら場所においてテキスト行を分割しない。その後、以下に説明する3890に進む。ページ3900において、ストリップ3910及び3920を構成する潜在的な分割は、カラム区切りの可能性があるほど十分な分割を有していないため除去される。潜在的な分割はタブ又は大きい単語空隙である可能性が更に高い。
スプリットが少なくとも閾値の数の行にまたがる場合、処理は、現在のストリップが別のストリップから閾値距離内にあるかを判定する(3870)。いくつかの実施形態は、別のストリップが現在のストリップから閾値距離内にあるかを判定する時にテストされており且つまだ除去されていない前のストリップのみを見る。現在のストリップが別のストリップから閾値距離内にある場合、処理は垂直方向により短いストリップ(場合によっては、行が全て同一サイズである場合、これはより少ないテキスト行にまたがるストリップである)を含むグループを除去する(3875)。その後、以下に説明する3890に進む。
ページ3900のストリップ3905及び3915の双方は、動作3860を通過するのに十分なテキスト行をまたがるものとして適格である。しかし、いくつかの実施形態において、ストリップは互いに近接しすぎていて双方が維持されない。従って、3915が2つのストリップのうち長い方のストリップであるため、ストリップ3905を構成する潜在的な分割のグループは除去される。この処理により、いくつかの実施形態において、リスト項目マーカ又は数字がこれらにより参照される項目と分割されること、並びに他の潜在的に問題となる分割が防止される。
現在のストリップが別のストリップと近接しすぎない場合、処理は、ストリップがセグメント空隙でない行の後続する潜在的な分割を閾値の数だけ含むかを判定する(3880)。いくつかの実施形態において、単語のエッジが偶然整列しているガイド及び/又はのどを識別できる。これは、特にテキストが単一文字幅のフォント(例えば、Courier)で表示される場合に当てはまる可能性が高い。ストリップが後続する非セグメント空隙の潜在的な分割を少なくともこの閾値の数だけ含む場合、処理は、潜在的な分割のリストからそのグループを除去し(3885)、それらの場所においてテキスト行を分割しない。
次に、処理は、種々の閾値の要件に対してテストされていない潜在的な分割のグループが更に存在するかを判定する(3890)。更にグループが残っている場合、3850に進み、潜在的な分割の次のグループを選択及び評価する。あるいは、全てのグループが評価された場合、処理は、除去されていない分割のいずれかを使用してテキスト行を分割する(3895)。その後、処理は終了する。ページ3900に対して示された例において、使用される分割のみが、2つのテキストカラムを分離する中央にある分割である。
処理3800は潜在的な分割のグループを除去するための3つの特定のテスト(動作3860、3870及び3880)を使用して示されるが、いくつかの実施形態はそれらの一部のみを採用し、他の実施形態は潜在的な分割を考慮から外すために不図示の他のテストを使用する。
D.段落の識別
いくつかの実施形態において、テキスト行がマージされ且つ分割されると、行は段落にグループ化される。図40は、テキスト行を段落にグループ化するいくつかの実施形態の処理4000を概念的に示す。処理の部分について図41と共に説明する。図41は、文書のページ4100における段落の識別を示す。図40に示すように、処理4000は文書の一部に対するテキスト行を受信する(4005)。いくつかの実施形態において、テキスト行は、処理4000が実行される前にマージされ(例えば、処理3300により)且つ分割されている(例えば、処理3800により)。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ、ゾーン等である。
処理は、文書の一部に行が存在するかを判定する(4007)。存在しない場合、処理は終了する。存在する場合、受信した文書の一部の最上部から開始し、処理は文書の一部において第1の未評価のテキスト行を選択する(4010)。処理は、選択した行の下に2つ以上のテキスト行が存在するかを判定する(4015)。いくつかの実施形態において、行は動作4015の目的で選択した行の下にあると考えられる下位行に対して互いの特定の垂直方向の距離内に存在すべきである。いくつかの実施形態は、テキスト行が同一の段落に属するかに関する判断を行うために少なくとも3つのテキスト行を必要とする。いくつかの実施形態において、比較を行うために2つの間隔(すなわち、第1のテキスト行と第2のテキスト行との間の間隔及び第2のテキスト行と第3のテキスト行との間の間隔)が必要であるため、この要件が課される。
選択したテキスト行の下に2つ以上の行が存在する場合、以下に説明する4030に進む。あるいは1つ以下の行が選択したテキスト行の下にある場合、処理は選択した行のみを段落に配置する(4020)。処理は、文書の一部において更なる行が存在するかを判定する(4025)。それ以上行がない場合(例えば、文書の一部においてテキスト行が1つだけ存在する場合)、処理は終了する。更なる行が存在する場合、4010に進み、次のテキスト行を選択する。
4015において、4010で選択された行(すなわち、現在の段落における第1の行)の下に2つ以上のテキスト行が存在する場合、処理は選択したテキスト行の下の次の2つの行を識別する(4030)。その後、処理は、間隔及び位置揃えが3つの行の間で一貫しているかを判定する(4035)。いくつかの実施形態において、この判定は、第1の行から第2の行までの垂直方向の距離が第2の行から第3の行までの垂直方向の距離と同一であるかを検査することを含む。いくつかの実施形態は、垂直方向の間隔を判定するためにテキスト行の並び線を使用する。いくつかの実施形態において、位置揃えの差分は、1つの行がインデントされて開始するか又は他の行の左側で終了する場合に識別され、それにより段落の開始又は終了である可能性があることを知らせる。
間隔及び位置揃えが一貫していない場合、処理は、選択した第1の行を含む段落に識別された行のいずれかを追加するかを判定するためにヒューリスティックルールを適用する(4040)。例えばいくつかの実施形態において、最初の2つの行が近接しており、第3の行が離れている場合、最初の2つの行は1つの段落に配置され、第3の行は次の段落の開始である。同様に、いくつかの実施形態において、第1の行が第2の行及び第3の行から離れている場合、第1の段落は1行の段落であり、次の段落は第2の行で開始する。いくつかの実施形態において、行間の位置揃えの差分に対して同様の規則が使用される。ヒューリスティックルールの適用後、4010に進み、次の未評価のテキスト行(すなわち、段落にまだ割り当てられていない次の行)を選択し、新しい段落を開始する。
間隔及び位置揃えが3つの行の間で一貫している場合、処理は、3つの全ての行を同一段落に配置する(4045)。いくつかの実施形態は、段落の間隔及び位置揃え特性(属性, property)を識別する。例えばいくつかの実施形態は、左揃え、右揃え、両端揃え、中央揃え等として段落を識別する。いくつかの実施形態は、複数の可能性を可能にしている(例えば、第1の行がインデントされ、全ての3つの行が右揃えされたか又は非常に近接し、下の2つの行が左揃えされた段落は、左揃え、右揃え又は両端揃えのいずれかであってもよい)。
新しい段落の開始を識別する最初の段階の後、処理4000は段落に行を追加しようとする。いくつかの実施形態において、行の追加は、段落の開始を構成する3つの行から判定された間隔及び位置揃え特性に基づく。他の実施形態において、段落に対する間隔及び位置揃え特性と不一致ではない行が追加されるため、間隔及び位置揃え特性はあらゆる更なる根拠に基づいて向上される。
次に処理は、文書の一部において更なる行が存在するかを判定する(4047)。更に行が存在しない場合(すなわち、文書の一部が3つの行のみを有する場合)、処理は終了する。更に行が存在する場合、処理は文書の一部において次のテキスト行を識別する(4050)。処理は、現在の段落と識別された次の行との間に間隔又は位置揃えの不整合があるかを判定する(4055)。不整合がある場合、処理は段落を終了し、上述した4010に進む。このような場合、前に不整合を起こした行は4010で選択される行となる。
間隔及び位置揃えが整合している場合、処理はその行を現在の段落に追加する(4060)。その後、上述した4047に進む。いくつかの実施形態において、位置揃えの不整合は、識別された次のテキスト行が段落の特性(例えば、両端揃え)の1つに適合しない場合に見つけられる。同様に、段落の最後の行と次の行との間の間隔が段落の間隔と比較して増加した場合、いくつかの実施形態において、間隔の不整合が見つけられる。
いくつかの実施形態は、他の停止条件(例えば、識別された行が段落に追加されない結果を与える条件)を採用する。例えばいくつかの実施形態は、識別された行の最初の単語が、左揃えの段落の最後の行の終端の余白にはまるかを認識する。はまる場合、もし新しい行が現在の段落の一部であったとすればこの単語は新しい行の最初ではなく最後の行の終端の余白に入るはずであるから、新しい行は次の段落の一部であると仮定される。同様に、いくつかの実施形態は、新しい段落を示すようなインデントを認識する。いくつかの実施形態の第3の条件は、識別された行が一様に書式設定され(例えば、全て太字であるか又はより大きいフォントサイズである)且つ前の行のあらゆる文字の書式とは異なるかである。
処理4000が完了すると、文書の一部における全ての段落が識別され、全てのテキスト行が段落に割り当てられる。いくつかの実施形態は、カラム及びレイアウトを識別するために段落を使用する。
図41は、4つの段落を含むページ4100を示す。処理4000をこのページに適用すると(ページは文書の一部である場合)、段落4105、4110、4115及び4120が識別される。いくつかの実施形態の処理は、最初の3つの行をグループ化し、第4の行及び第5の行を追加することにより開始し、第6の行4125で間隔及び位置揃えの不整合が起き、段落4105を5行で終了する。その後、処理は第6の行から開始し、以下の2つの行の間の間隔及び位置揃えの不整合に気付く。行6が行7及び8の互いの距離より行7及び8から離れているため、行6は段落4110全体であり、次の段落4115は行7から開始する。段落4115及び4120は同様に識別される。
E.カラム及びレイアウトの識別
いくつかの実施形態は、段落を識別した後、段落をカラム及びレイアウトに配置する。いくつかの実施形態において、カラムは、テキストが上から下に一貫して読まれる垂直方向に順序付けられた段落のグループである。いくつかの実施形態のレイアウトは、重なり合わないカラムの集合であり、いくつかの実施形態の線形レイアウトは、テキストが最も左側のカラムの最上部から最も右側のカラムの最下部に一貫して読まれる水平方向に順序付けされたカラムのグループである。例えばいくつかの実施形態は、1つのカラムを含む単一の線形レイアウトとして、セグメント化されていないテキスト行を含み且つヘッダ又はフッタを有さない単純なページを分類する。
図42は、いくつかの実施形態において文書の一部のカラム及びレイアウトを識別する処理4200を概念的に示す。処理4200について図43〜46と共に説明する。図43及び図44は、2つの異なるページ4300及び4400における段落を示す。図45及び図46は、2つのページ4300及び4400に対するフローグラフの生成をそれぞれ示す。
図42に示すように、処理4200は文書の一部に対する段落の情報を受信する(4205)。いくつかの実施形態の文書の一部は、文書全体、文書の小領域、ページ、ゾーン等である。いくつかの実施形態において、段落情報は上述した処理4000を使用して判定される。処理は、選択する段落が存在するかを判定する。存在しない場合、処理は終了する。
選択する段落が存在する場合、処理は段落を選択する(4210)。いくつかの実施形態において、文書の一部の段落は左上から開始して順番に選択される。その一方で、他の実施形態において、段落はランダムな順番で選択される。
次に、処理はin−order、out−order、left−order及びright−order、並びにそれらの値の各々に付属する段落の集合を計算する(4215)。いくつかの実施形態において、段落pのout−orderは集合B(p)を使用して計算される。集合B(p)は、最初、水平方向に段落pと重なり合う(すなわち、x座標と重なり合う)文書の一部における段落pの下の全ての段落である。例えば、図43は、段落P 4305を含む11個の段落を含むページ4300を示す。集合B(P)は、最初{Q,R,S,T,U}である。次にpに最近接する段落はqとして識別され、段落qと水平方向に重なり合う全ての段落は集合B(P)から除去される。段落P 4305の場合、段落Q 4310は段落Pに最近接し、段落R 4315、S 4320、T 4325及びU 4330は集合B(P)から除去される。この時点で集合B(P)は{Q}である。
いくつかの実施形態は、最初に集合B(p)にあったpに次に最近接する段落に継続し、この次に最近接する段落の下にあり且つ水平方向に重なり合うあらゆる段落をB(p)から除去する。他の実施形態は、集合B(p)に残っているpに次に最近接する段落に継続し、この段落と水平方向に重なり合うあらゆる段落をB(p)から除去する。いずれの方法でも、図43の例において、段落P 4305に対する集合B(P)は{Q}である。pのout−orderは、集合B(p)の濃度(すなわち、要素数)である。これは、B(p)の段落毎に繰り返される。従って、この場合、段落P 4305のout−orderは1である。1より大きいout−orderを有する段落の例として、段落R 4315の場合、集合B(R)は{S,X}であるため段落R 4315のout−orderは2である。
段落pのin−orderは、いくつかの実施形態において、集合A(p)を使用することによりout−orderと同様に計算される。集合A(p)は、最初、水平方向にpと重なり合うpの上の文書の一部における全ての段落である。pに最近接する段落は段落qとして選択され、段落qと水平方向に重なり合う段落はA(p)から除去される。これは、A(p)の段落毎に繰り返される。ページ4300の例において、段落P 4305に対する集合A(P)は空の集合であり、段落R 4315に対する集合A(R)は{Q,W}である。段落pのin−orderは集合A(p)の濃度(すなわち、要素数)である。
段落pのleft−order及びright−orderは、いくつかの実施形態において、集合L(p)(同一の除去規則を使用して、pと垂直方向に重なり合うpの左側の段落)及び集合R(p)(同一の除去規則を使用して、pと垂直方向に重なり合うpの右側の段落)を使用して同様に計算される。いくつかの実施形態は、言語の方向が上から下であると判定された(例えば、外部手段により)時にフローグラフ(以下を参照)に対してL(p)及びR(p)を使用する。ページ4300の場合、段落P 4305に対する集合R(P)は{V}であり、段落V 4335に対する集合L(V)は{P}である。段落R 4315に対する集合L(R)及びR(R)は双方とも空である。
選択された段落に対してin−order、out−order、left−order及びright−orderが計算されると、処理4200は、種々の値が計算される必要がある段落が更に残っているかを判定する(4220)。更に段落が残っている場合、4210に進み、別の段落を選択する。
値が全ての段落に対して計算されると、処理は段落に対するフローグラフを生成する(4225)。いくつかの実施形態のフローグラフは、評価されている文書の一部の各段落がノードになるように生成される。有向エッジが段落pに対するノードから集合A(p)の段落に対する各ノードに対して描かれる。いくつかの実施形態において、これは、集合B(p)の段落に対する各ノードから段落pに対するノードまでの有向エッジを描くことと同一である。図45はページ4300に対する初期フローグラフ4501を示す。
次に、処理4200はコールアウトを識別する(4230)。いくつかの実施形態において、識別されたコールアウトはフローグラフから除去される。いくつかの実施形態において、コールアウトは、ページ上の残りのテキストに依存しない順序で読み取られることを意図したページ上のテキスト要素である。コールアウトのいくつかの例には、ヘッダ及びフッタ、脚注、欄外の注、サイドバー、並びに雑誌の記事における大きなフォントの引用文等の他の要素のうち配置されたテキストの他のブロックが含まれる。
いくつかの実施形態は、テキスト要素の幾何学的配置、ページにおけるテキスト要素の位置、テキスト要素のフロー特性(in−order、out−order、left−order及びright−order)及び要素の書式特性の組み合わせに基づいてコールアウトを識別する。例えば、頂点vがページの最上部に近接する1行の段落を含む場合、1行の段落からA(v)のあらゆる要素までの距離は1行の高さより大きく、L(v)≦1であり、R(v)≦1であり、L(v)及びR(v)のあらゆる頂点がこれらの条件を共有する。その後、いくつかの実施形態は、段落をヘッダコールアウトとして分類する。フッタコールアウトに対する要件は、ページの最下部まで及びB(v)の要素までの距離を探すこと以外はいくつかの実施形態において同様である。
いくつかの実施形態は、カラムに突出している(且つ自身のゾーンに存在しない)サイドバー、ランダムに配置されたテキストボックス、他のテキスト(例えば、図の表題)に対して明示的な関係を有さない小さいビット数のテキスト等をコールアウトとして識別する。いくつかの実施形態は、純粋なテキスト分析に基づいてこれらの判定(及びフロー特性の他の判定)を行い、その一方で、他の実施形態は画像を分析に組み込む(例えば、図の表題に対する更なる根拠として)。例えばいくつかの実施形態において、いくつかの実施形態は、A(p)及びB(p)の全ての要素から離れた単一行の段落を分離された小さな段落として識別する。いくつかの実施形態において、単一のテキスト行を有する段落が画像の範囲により囲まれ且つ特定の方法で画像の範囲と位置揃えされた(例えば、最下部の近くに中心が置かれる、最上部の近くに中心が置かれる等)場合、表題が識別される。
2つ以上の段落の矩形バウンディングボックスが交差する場合、いくつかの実施形態は、1つの段落以外の全ての段落を交差コールアウトとして識別する。例えば2つの段落p及びqが重なり合い、B(p)={q,r}であるとする。rがin−orderとして1を有する場合又はqがA(r)にある場合、いくつかの実施形態において、qは交差コールアウトである。いくつかの実施形態は、書式及び/又は位置揃え特性がA(p)又はB(p)の段落と一貫していないあらゆる段落pを交差コールアウトとして分類する。2つの段落が交差し且つ上記規則が当てはまらない場合、いくつかの実施形態はより小さな領域を有する段落をコールアウトとして分類する。
文書の一部の段落に対するフローグラフを生成した後、処理4200はフローグラフのノードをカラムにマージする(4235)。いくつかの実施形態は、A(p)={q}且つB(q)={p}である場合に段落p及びqに対するノードをマージする。これは、いくつかの実施形態において、段落p及びqは同一のカラムに入ることを示す。いくつかの実施形態において、新しいノードpqはA(pq)=A(q)、B(pq)=B(p)、L(pq)=L(p)+L(q)及びR(pq)=R(p)+R(q)を有する。例えば図45において、フローグラフ4501は、ノードS 4520、T 4525及びU 4530が変更されたフローグラフ4502においてノードSTU4575にマージされるように変更される。他のノードは同様に変更される。
図46は、ノードが最初にカラムにマージされた後の図44のページ4400に対するフローグラフ4601を示す。いくつかの実施形態は、段落R 4420が2つのカラムにまたがり且つ左側及び右側の双方に段落を有するため、段落R 4420をコールアウトとして識別する。従って、いくつかの実施形態は、フローグラフ4601からノードR 4620を除去する。これにより、ノードをカラムに更にマージできる。
コールアウトが識別されると(且ついくつかの実施形態においてはフローグラフから除去されると)、処理4200はフローグラフをレイアウトに区分する(4240)。いくつかの実施形態は、区分処理の一部として拡大エッジ及び縮小エッジに対するラベルを規定する。いくつかの実施形態において、段落pのout−orderが1より大きく且つ集合B(p)の各段落qのin−orderが1である場合、pからB(p)の各qまでのエッジは拡大エッジである。同様に、いくつかの実施形態において、段落pのin−orderが1より大きく且つ集合A(p)の各段落qのout−orderが1である場合、A(p)の各qからpまでのエッジは縮小エッジである。図45は、ノードR 4515に入るエッジが双方とも縮小エッジであり、ノードR4515から出るエッジが双方とも拡大エッジであることを示す。
いくつかの実施形態の区分は、エッジが全てラベル付けされた各頂点vを検査する。vのin−orderが1より大きい場合、いくつかの実施形態は、B(v)においては各pに対してA(p)={v}である場合に、要素がB(v)である区分を規定する。同様に、vのout−orderが1より大きい場合、いくつかの実施形態は、A(v)においては各pに対してB(p)={v}である場合に、要素がA(v)である区分を規定する。これらの区分の双方が可能である場合、頂点vはそれ自体のみで区分として規定される。これらの規則に基づいて、フローグラフ4502は3つの区分4511、4512及び4513に区分される。
いくつかの実施形態は、区分間で幾何学的に重なり合うことなく最小数の区分が規定されるようにあらゆる残りのノードを1つ以上の区分に配置する。複雑なページ構造のために、いくつかの実施形態は上述した規則より緩和された区分規則を使用する。例えば、ノードvのout−orderが1より大きいことを除いて区分がノードvから作成される場合、vから離れており且つvに対して狭いA(v)の要素はいくつかの実施形態において削除される。A(v)に1つだけ要素が残っている場合、vから除去された頂点までのエッジは除去され、区分は継続される。区分が完了すると、処理4200は終了する。
いくつかの実施形態において、各区分は線形レイアウトに対応し、最終的な(マージされた)ノードの各々はカラムに対応する。区分が規定されると、いくつかの実施形態は、のどの幅、余白、インライン又は浮動画像等の文書の一部の特性を計算する。
更にレイアウト及びフロー情報(単語、行、段落及びカラムデータを含む)は、第VIII節及び第IX節で以下に説明するように、文書の表示に特に使用され、よりロバスト性の高い文書とのユーザ対話を可能にする。例えばいくつかの実施形態において、ユーザはいくつかのテキストカラム、画像、コールアウト、表題等を含む複雑な文書を閲覧したいと考え、文書のテキスト全体をテキストエディタにコピー及び貼り付けをできてもよい。これを達成するために、読み取り順序は、文書の各要素に割り当てられ、ユーザが文書の要素を読み取る順序を識別しようとする。
例えばいくつかの実施形態は、ユーザが文書又はページの最初から最後までカラムを読む際の予想された順序に読み取り順序が従うように、読み取り順序をカラムに割り当てる。他の実施形態は、読み取り順序を他の構造要素(例えば、段落、単語等)に割り当てる。いくつかの実施形態において、ユーザがそのような文書のテキスト全体を別のアプリケーションにコピー及び貼り付ける場合、テキストはアプリケーションにおいてユーザが読む順序で表示される。これは、厳密に上から下への構成で全てのテキストを順序付けする標準的なPDFファイルからコピー及び貼り付けすることとは異なる。
いくつかの実施形態は、画像及び形状を読み取り順序に挿入する。例えばいくつかの実施形態は、特定のテキストカラムと関連付けられているものとして特定の画像を識別し、テキストカラムの前又は後(文書における根拠に依存する)に画像を挿入する。一例として、いくつかの実施形態は、画像が画像に対する表題と関連付けられることを識別し、その表題の直前で画像を読み取り順序に挿入する。
いくつかの実施形態は、構造要素間のリンクを更に規定する。例えばいくつかの実施形態は、実際に1つの段落であるカラムの最後の段落と次のカラムの最初の段落との間のリンクを規定するために読み取り順序を使用する。いくつかの実施形態において、1つの特定のカラムに割り当てられた各段落を有する階層を維持するために、カラムを結ぶ別個の段落は規定されない。その代わり、2つの段落間のリンクが規定され、それら段落が実際には1つの段落であることを示す。いくつかの実施形態は、第2のカラムの最上部の段落が実際には第1のカラムの最後の段落の継続であるかを判定するために(すなわち、間隔、位置揃え、フォント書式等を検査する)行を段落に追加するテストと類似するテストを使用する。例えばユーザが規定されたいずれかの段落内で段落を選択することを意図した選択動作(例えば、トリプルクリック)を実行する場合、リンクが使用され、実際の段落全体はリンクに基づいて選択される。
いくつかの実施形態は、レイアウト(例えば、ページにわたるリンク付け)又はゾーンの間のリンクを更に規定する。例えばいくつかの実施形態は、連続するテキスト(例えば、話が異なるページに継続することを示す新聞のテキスト)を認識でき、連続するテキストを含むレイアウト中のテキストをテキストが継続するレイアウトにリンクできる。いくつかの実施形態は、プロファイルがマッチングされ、リンク付けが行われるべきであることを示す場合にそのようなリンク付けを試行する。例えば文書が新聞として識別された場合、いくつかの実施形態は、連続するテキストを検索する。
E.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したレイアウト及びフロー分析処理はコンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図47は、文書のレイアウト及びフローを識別するいくつかの実施形態のレイアウト及びフロー分析アプリケーション4700のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
レイアウト及びフロー分析アプリケーション4700は、行識別モジュール4705、行マージモジュール4710、単語識別モジュール4715、差分クラスタリングモジュール4720、行分割モジュール4725、段落識別モジュール4730、カラム及びレイアウト識別モジュール4735及び順序計算機4740を含む。
図47は、文書コンテンツ4745を更に示す。行識別モジュール4705は、文書コンテンツ4730から情報を受信する。いくつかの実施形態において、この情報は文書中の文字の位置に関する情報である。行識別モジュール4705は、ページ上の共通の並び線を有する文字を識別し、それらを行に割り当てる。行識別モジュールは、行マージモジュール4710に情報を渡し、行マージモジュール4710から情報を受信する。行マージモジュールは、垂直方向に重なり合う行のグループを識別し、行がマージされるべきであるかを判定する。いくつかの実施形態において、行マージモジュール4710は上述した処理3300の一部又は全てを実行する。行マージモジュール4710はこの情報を行識別モジュール4705に渡し、行識別モジュール4705は最終的なテキスト行を識別する。行識別モジュール4705は、行情報を文書コンテンツ4745及び行分割モジュール4725に渡す。
単語識別モジュール4715は、文書コンテンツ4745から情報を更に受信する。いくつかの実施形態において、この情報は文書中の文字の位置に関する情報である。単語識別モジュール4715は、単語としてグループ化されるべき文字を識別する。単語識別モジュール4715は、差分クラスタリングモジュール4720に情報を渡し、差分クラスタリングモジュール4720から情報を受信する。差分クラスタリングモジュール4720は、文字間の異なる空隙レベル(例えば、単語空隙、セグメント空隙等)を返すために文書の文字に対して差分クラスタリングを実行する。単語識別モジュール4715は、単語を識別するために差分クラスタリングの結果を使用する。単語識別モジュール4715は、文書コンテンツ4745及び行分割モジュール4725にその結果(及びセグメント空隙等の他の差分クラスタリングの結果)を渡す。
行分割モジュール4725は、行識別モジュールから行情報を受信し、単語識別モジュールから空隙情報を受信し、文書コンテンツ4745から他の情報(例えば、のど情報)を受信する。行分割モジュール4725は、行が分割されるべき場所を識別し、その分割に基づいて新しい行情報を出力する。新しい行情報は、文書コンテンツ4745及び段落識別モジュール4745に渡される。いくつかの実施形態において、行分割モジュール4725は処理3800の一部又は全てを実行する。
段落識別モジュール4730は、行分割モジュール4725から行情報を受信し、文書コンテンツ4745から他の情報(例えば、位置揃え情報)を受信する。段落識別モジュール4730は、段落にグループ化されるべき行を識別し、結果情報を出力する。段落情報は、文書コンテンツ4745並びにカラム及びレイアウト識別モジュール4735に渡される。いくつかの実施形態において、段落識別モジュール4730は処理4000の一部又は全てを実行する。
カラム及びレイアウト識別モジュール4735は、段落識別モジュール4730から段落情報を受信し、文書コンテンツ4745から他の情報(例えば、ゾーン情報)を受信する。カラム及びレイアウト識別モジュール4735は、段落をカラムにグループ化し、カラムをレイアウトにグループ化する。カラム及びレイアウト情報モジュール4735は、順序計算機4740に情報を渡し、順序計算機4740から情報を受信する。順序計算機4740は、モジュール4735から段落情報を受信し、段落に対するin−order、out−order、left−order及びright−order(並びに対応する集合A、B、L及びR)を計算する。この情報は、フローグラフを生成する際に使用するためにモジュール4735に返される。カラム及びレイアウト識別モジュール4735からの結果は、文書コンテンツ4745に渡される。いくつかの実施形態において、カラム及びレイアウト識別モジュール4745は上述した処理4200の一部又は全てを実行する。
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューし且つ/又は文書と対話できる(例えば、タッチスクリーン、カーソル制御デバイス等を介して)ように電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
V.表の識別
本発明のいくつかの実施形態は、文書中の表を識別する。いくつかの実施形態は、表のセル、行及び列を識別し、テーブルの編集、スプレッドシートへのエクスポート等を可能にする。第II節で説明した処理から得られるゾーン情報並びに第IV節で説明した処理から得られるレイアウト及びフロー情報は、いくつかの実施形態の表識別処理において使用される。いくつかの実施形態は、表が押し出し及び影付け等の効果を含む場合に共通であるが、表が重なり合う形状及び画像に含まれた関連のない図形のグループとして描かれる場合でも表を識別及び再構成できる。
図48は、文書の一部にある表を識別するいくつかの実施形態の処理4800を概念的に示す。図示するように、処理は、文書の一部に対するゾーン及びレイアウト情報を受信する(4805)。いくつかの実施形態において、ゾーン情報は第II節で説明した処理の出力であり、レイアウト情報は第IV節で説明した処理の出力である。いくつかの実施形態において、文書の一部は、文書のページ又はページのゾーン等である。
処理は、完全な境界を有する表を識別する(4810)。図49は、完全な境界を有する表4900の一例を示す。いくつかの実施形態は、範囲が全て直立矩形である2つ以上のゾーンにより全体的に区分された島(第II節で規定したような)であるあらゆるゾーンを分類する。これらの区分する矩形は表のセルである。完全な境界を有する表の識別について、以下の第A項において更に詳細に説明する。
次に、処理4800は接続された境界を有する表を識別する(4815)。図50は、接続されるが不完全な境界を有する表5000の一例を示す。いずれかの境界が接続の集合を介して他のいずれかの境界に接続されるように実際に描かれる表の全ての境界が互いに交差する場合、いくつかの実施形態において、表は接続された境界を有する。表5000は、表の外側境界が描かれていないため不完全な境界を有する。接続されるが不完全な境界を有する表の識別について、以下の第B項において更に詳細に説明する。
次に、処理4800は、境界を有さないか又は接続されない境界を有する表を識別する(4820)。図51は、境界を有さない表5100の一例を示す。図52は、接続されない境界を有する表5200を示す。表5100とは異なり、表5200はいくつかの境界が描かれるが、境界は接続集合を形成しない。境界が接続集合を形成しない表の場合、いくつかの実施形態は、表を識別するためにレイアウト情報を使用することを必要とする。境界を有さないか又は接続されない境界を有する表の識別について、以下の第C項において更に詳細に説明する。
文書の一部における全ての表が識別されると、処理は編集及び他のソフトウェアによりアクセス可能な表を規定する(4825)。その後、処理は終了する。いくつかの実施形態において、これにより、ユーザは表の個々のセルを編集したり、表の行及び列を選択したり、表情報をスプレッドシートにインテリジェントコピーしたりできる。
A.完全な境界を有する表
本発明のいくつかの実施形態は、全ての境界が境界図形(例えば、線、細い矩形、細い画像、塗りつぶされた矩形の境界等)のある組合せにより描かれる表を識別する。境界図形を識別し且つゾーンを識別するために境界図形を使用するいくつかの実施形態の処理について、第II節において上述した。
図53は、完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理5300を概念的に示す。いくつかの実施形態において、処理5300は、黙示的境界が不完全な境界を有するか又は境界を有さない表に対して識別された後にそれらの表を識別及び規定するためにも使用される。そのような処理について、第B項及び第C項において更に詳細に説明する。処理5300については図54と共に説明する。図54は、完全な境界を有する表を含むページ5400を示す。
図53に示すように、処理は文書の一部に対するゾーン情報を受信する(5305)。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域又は文書のページである。いくつかの実施形態におけるゾーン情報は、第II節で上述した処理から出力された情報であり、ゾーン境界及び交点情報並びに識別されたゾーン及びゾーングラフ情報を含む。
処理5300は、全てが矩形である2つ以上のゾーンにより全体的に区分された島を識別する(5310)。上述したように、いくつかの実施形態において、島は境界区間を親ゾーンと共有しないゾーンである。図54は、矩形により区分された1つの島5401を含むページ5400を示す。図示するように、13個の矩形は、13個の矩形ゾーンによりカバーされるページ領域が厳密に島5401の領域であるように、島5401を完全に区分する。従って、島5401は表として識別される。
次に処理は、5310で識別された島のうち未処理の島が存在するかを判定する(5311)。島が識別されないか又は識別された全ての島が表として処理された場合、処理は終了する。未処理の島が存在する場合、処理は次に識別された島を選択する(5314)。いくつかの実施形態において、識別された全ての島が処理される限り、それら島に対する特定の順序付けはない。
処理5300は、選択した島の水平境界を上から下にソートする(5315)。いくつかの実施形態は、上端がもっとも高い境界が最初になるように、境界の最上部の境界線によりソートする。いくつかの実施形態における水平境界は、島の境界を含み且つ表として識別された島内の水平境界区間である。図54は、16個の水平境界区間5405〜5420を示す。いくつかの実施形態において、水平境界区間は、第II節で上述した処理900等の処理により識別される。
順番にソートされた水平境界区間を使用して、処理は第1の未評価の水平境界を選択し(5320)、表の次の水平格子線を規定する(5325)。図54の例において、境界区間5405又は5406は第1の選択された境界であり、その時点において、格子線1が規定される。
処理は、選択された境界を現在の格子線に割り当て、格子線に割り当てられた全ての境界のy区間の交点に格子線の垂直範囲を設定する(5330)。現在選択されている境界が初めて現在の格子線に割り当てられる場合、格子線のy区間は単純に境界のy区間である。しかし、複数の境界が格子線に割り当てられる場合、格子線のy区間は割り当てられた全ての境界のy区間を含む。
処理は、格子線に割り当てられていない水平境界が更に存在するかを判定する(5335)。更に水平境界が残っていない場合、以下に説明する5345に進む。更に境界が残っている場合、処理は、次の境界のy区間が現在の格子線のy区間と重なり合うかを判定する(5340)。y区間が重なり合わない場合、現在の格子線の全ての境界は規定されており、5320に進んで次の境界を選択し、新しい格子線を開始する。しかし、y区間が重なり合う場合、5330に進んで現在の格子線に境界を割り当て、格子線のy区間を更新し、次の境界に継続する。
図54に示すように、島5401に対する第1の境界として境界5405又は5406を選択した後、それら2つの境界の他方が次に選択され、水平格子線1に追加される。境界5407及び5408を含む水平格子線2が次に規定され、水平格子線6(境界5418〜5420)まで規定される。
全ての水平境界が格子線に割り当てられると、処理5300は垂直境界を考慮する。処理5300は、選択された島の垂直境界を左から右にソートする(5345)。いくつかの実施形態は、最も左にある左端を有する境界が最初になるように境界の左端境界によりソートする。いくつかの実施形態における垂直境界は、島の境界を含み且つ表として識別された島内の垂直境界区間である。図54は、18個の垂直境界区間5425〜5442を示す。いくつかの実施形態において、垂直境界区間は第II節で上述した処理900等の処理により識別される。
順番にソートされた垂直境界区間を使用して、処理は第1の未評価の垂直境界を選択し(5350)、表の次の垂直格子線を規定する(5355)。図54の例において、境界区間5426〜5428のうちの1つは第1の選択された境界であり、この時点において垂直格子線1が規定される。
処理は、現在の格子線に選択した境界を割り当て、格子線に割り当てられた全ての境界のx区間の交わりに格子線の水平範囲を設定する(5360)。従って、現在選択されている境界が初めて現在の格子線に割り当てられる場合、格子線のx区間は単純に境界のx区間である。しかし、複数の境界が格子線に割り当てられる場合、格子線のx区間は割り当てられた全ての境界のx区間を含む。
処理は、格子線に割り当てられていない垂直境界が更に存在するかを判定する(5365)。境界がそれ以上残っていない場合、以下に説明する5375に進む。更に境界が残っている場合、処理は、次の境界のx区間が現在の格子線のx区間と重なり合うかを判定する(5370)。x区間が重なり合わない場合、現在の格子線の全ての境界は規定されており、5350に進んで次の境界を選択し、新しい格子線を開始する。あるいは、x区間が重なり合う場合、5360に進んで現在の格子線に境界を割り当て、格子線のx区間を更新し、次の境界に継続する。島5401に対する第1の境界として境界5425〜5428のうちの1つを選択した後、他の3つの境界のうちの1つが選択され且つ垂直格子線1に追加される。それら4つの全ての境界が垂直格子線1に追加されると、境界5429〜5433を含む垂直格子線2が次に規定され、垂直格子線4(境界5438〜5442)まで規定される。
全ての垂直境界が評価されると、全ての格子線が表に対して規定されたことになる。処理5300は垂直格子線の前に水平格子線を規定したが、いくつかの実施形態は垂直格子線を最初に規定することが当業者には理解されるだろう。
次に処理は、表のセルに行及び列の番号を割り当てる(5375)。いくつかの実施形態において、島を区分する各ゾーンはセルである。いくつかの実施形態において、セルは上側境界の格子線から下側境界の格子線までの行に及ぶ。例えば、図54のセル5450は、上側境界が水平格子線1の一部であり且つ下側境界が水平格子線3の一部であるため行1及び2に及ぶ。同様に、いくつかの実施形態において、セルは左側境界の格子線から右側境界の格子線までの列に及ぶ。例えばセル5450は、左側境界が垂直格子線1の一部であり且つ右側境界が垂直格子線2の一部であるため列1に及ぶ。
表構造(すなわち、格子線、セル、行及び列)が再構成されると、処理は表に対する書式情報を判定する(5380)。その後、上述した5311に進み、表として処理する識別された島が更に存在するかを判定する。いくつかの実施形態において、表書式情報は、ゾーン境界を構成する境界図形及び背景グラフィックスから得られる。例えば特定のセルを範囲に含むか又は特定のセルを横切る複数の背景形状が存在する場合、いくつかの実施形態は、種々の背景形状を合成し且つ必要に応じてそれを格子線境界に対してクリッピングすることにより結果として得られる形状の色又は画像レンダリングを判定する。同様に、いくつかの実施形態は、見える形状の色の加重平均に基づいてセル境界の色を判定する。いくつかの実施形態において、加重平均の重みは、各色に対して表示される領域の量に基づく。いくつかの実施形態は、影付け又は押し出し等の境界書式を更に認識する。
いくつかの実施形態において、表を識別し且つ表構造を判定することにより、表は関連のない図形の集合ではなく一般的なワードプロセッサにより生成されたかのように利用できる。例えばいくつかの実施形態において、ユーザは、表のセルを個々に編集したり、情報をスプレッドシートにエクスポートしたり、表データをソートしたりできる。
いくつかの実施形態は、表を識別するために処理5300のみを使用する。しかし、これにより、完全な境界の集合を有する表のみが識別される。他の実施形態は、完全な境界図形を有さないが表の構造及びレイアウトを有する表を識別するために以下の第B項及び第C項で説明する処理を使用する。
B.接続された境界を有する表
完全な境界の集合を有する表に加えて、いくつかの実施形態は、不完全であるが接続された境界の集合を有する表を識別する。図50は、そのような表5000を示す。いくつかの実施形態は、意図した表の境界である可能性のある黙示的境界を規定するために処理を使用し、実際の表を識別及び再構成するために上述した処理5300等の処理を適用する。
図55は、接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理5500を概念的に示す。処理5500について図56と共に説明する。図56は、ページ5600において接続されるが不完全である境界を有する表を識別するシーケンスを示す。
図55に示すように、処理5500は文書の一部に対する潜在的なゾーン境界及び境界交点の集合を受信する(5505)。いくつかの実施形態において、潜在的なゾーン境界及び交点は第II節で上述したような処理900により判定される。他の実施形態は、文書の一部に対して潜在的なゾーン境界を判定するために他の処理を使用する。いくつかの実施形態における文書の一部は、文書全体、文書の小領域又は文書のページである。
次に処理5500は、5505で受信した潜在的なゾーン境界の全てを含む集合Uを規定する(5510)。処理は、Uが空であるかを判定する(5515)。集合が空である場合、接続されるゾーン境界が存在しないため処理は終了する。
あるいは、集合Uが少なくとも1つのゾーン境界を含む場合、処理はUから境界bを選択し、新しい接続集合Cを規定する(5520)。いくつかの実施形態は、左上隅に最近接する左上の境界から開始するか、あるいは最初に選択する境界を判定するために他のヒューリスティック法を使用する。他の実施形態は、境界bをランダムに選択する。選択した境界bは、集合Uから除去され且つ集合Cに追加される(5525)。いくつかの実施形態において、接続集合Cは、全てが交点の集合を介して接続される境界の集合である。
処理は、現在の境界bに対してまだ評価されていない境界zを集合Uから選択し(5530)、境界zが境界bと交差するかを判定する(5535)。いくつかの実施形態において、境界zが境界bと交差するかを判定することは、受信した交点の1つが境界zを境界bに接続するかを判定することを含む。境界が交差しない場合、以下に説明する5545に進む。あるいは、境界が交差する場合、処理は現在の接続集合Cに境界zを追加し、zをキューに入れる(5540)。いくつかの実施形態は、次の接続集合に進む前に更なる接続に関して評価する必要がある接続集合の境界を常時監視するためにキューを使用する。
次に処理は、集合Uのいずれかの境界が現在の境界bとの交差に関してまだ評価されていないかを判定する(5545)。更に境界が残っている場合、5530に進んで別の境界zを選択し、新しい境界zが現在の境界zと交差するかを判定する。
あるいは、Uの全ての境界が現在の境界bとの交差に関して評価された場合、処理5500は、キューが空であるかを判定する(5550)。少なくとも1つの境界がキューにある場合、処理はキューの次の境界を新しく選択された境界bとして設定する(5555)。その後、5525に進み、Uに残っている境界が新しく選択された境界bと交差するかを評価する。
あるいは、キューが空である場合、現在の接続集合Cの全ての要素が割り当てられ、処理は、集合Uが空であるかを判定する(5560)。Uが空ではない場合、5520に進み、新しい境界bを選択し且つ新しい接続集合Cを規定する。
Uが空である場合、全ての境界は処理され、各接続集合に入れられる。図56は、7つの境界5605〜5635を含むページ5600を示す。処理5500を適用すると、それらの7つの境界は3つの接続集合5640(境界5605を含む)、5645(境界5610及び5615を含む)及び5650(境界5620〜5635を含む)に割り当てられる。それらの接続集合の各々は、その接続集合の少なくとも1つの他の境界と交差し且つその接続集合外のいずれの境界とも交差しない境界を含む。
集合Uが空であるために全ての接続集合が識別されると、処理は集合Cを選択し(5565)、Cの直立バウンディングボックスを形成する4つの境界を集合Cに追加する(5570)。いくつかの実施形態において、直立バウンディングボックスは接続集合の全ての境界を含む最小の直立矩形である。例えば、図56は接続集合5650の直立バウンディングボックスを形成する4つの境界5655〜5670を示す。接続集合5640は単一の線であるため、その直立バウンディングボックスは単に線の外側エッジである。接続集合5645の直立バウンディングボックスを形成する4つの境界のうち2つは境界5610及び5615であり、その一方で、追加の境界5675及び5680はいくつかの実施形態において動作5570により追加される。
処理は、接続集合Cが残っているかを判定する(5575)。少なくとも1つの集合が残っている場合、5565に進んで別の集合Cを選択する。全ての集合が評価されると、処理は全ての接続集合からの全ての境界を使用してゾーンを識別する(5580)。いくつかの実施形態は、ゾーンを識別するために処理1200(第II節で上述した)又は同様の処理を適用する。
ゾーンが識別されると、処理5500はゾーンから表を識別し、表を再構成する(5585)。その後、処理は終了する。ゾーンが接続集合の直立バウンディングボックスからの黙示的境界を使用して識別されると、いくつかの実施形態は表を再構成するために第A項で説明したような処理5300を適用する。図56は、1つの表5685がページ5600で識別されることを示す。表は3列及び3行の合計9つのセルを有する。
いくつかの実施形態は、表及びセルゾーン(並びにそれらのゾーンを構成する境界図形)を除去し、何も存在すべきでないゾーンを規定しないように黙示的境界なしでゾーンを再識別する。いくつかの実施形態は、第II節で上述したようなゾーングラフを判定するために表及びセルゾーンを再挿入する。そのような実施形態は、表及びセルゾーンの識別並びにそれらの構造を含む完全なゾーングラフを生成する。
C.境界を有さないか又は接続されない境界を有する表
完全な境界の集合又は少なくとも接続された境界の集合を有する表に加えて、いくつかの実施形態は、境界を有さないか又は接続されない境界を有する表を識別する。図51は境界を有さない表5100を示し、図52は接続されない境界を有する表5200を示す。いくつかの実施形態は、意図した表の境界になる可能性のある黙示的境界を規定するために処理を使用し、実際の表を識別及び再構成するために処理5300等の処理を適用する。境界が接続集合を形成しない表の場合、いくつかの実施形態は、ゾーン情報に加えて表を識別するためにレイアウト情報を使用することを必要とする。
図57は、境界を有さないか又は接続されない境界を有する表を識別及び再構成する処理5700を概念的に示す。処理5700について図58〜図60と共に説明する。図58〜図60は、接続されない境界を有する表を識別するために処理5700をページ5800に適用することを示す。
図57に示すように、処理は主ゾーンに対するレイアウト情報を受信する(5705)。いくつかの実施形態において、主ゾーンはページであるが、あらゆる他のゾーンであってもよい。いくつかの実施形態のレイアウト情報は、第IV節で説明した4000及び4200等の処理から出力された情報である。この情報は、主ゾーンにおける段落、カラム及びレイアウトの識別を含む。
処理5700は、主ゾーンにおいて未処理のレイアウトが存在するかを判定する(5707)。主ゾーンにレイアウトがない場合、あるいは全てのレイアウトが処理された場合、以下に説明する5740に進む。レイアウトがある場合、処理は主ゾーン内のレイアウトを選択する(5710)。処理は、レイアウトの直立直線範囲において黙示的ゾーン境界を規定する(5715)。いくつかの実施形態において、直立直線範囲はレイアウト中の全ての段落を完全に囲む最小の矩形である。処理は、レイアウトのカラムを分離する垂直の空白及びカラム内のレイアウトの段落を分離する水平の空白において黙示的ゾーン境界を規定する(5720)。
図58はページ5800を示す。ページは、3つのより小さいゾーン、すなわち左上隅のゾーン5805、中央の灰色で影をつけられたゾーン5810及び最下部にあるゾーン5815を含む。いくつかの実施形態において、ゾーン5810及び5815は島である。主ゾーン(ページ5800)は2つのレイアウト5820及び5825を含む。図59に示すように、選択したレイアウト5820を有する処理は、レイアウト5820のバウンディングボックスの周囲及びレイアウト5820の3つのカラムの間に黙示的境界5905〜5925を規定する。レイアウトがゾーン5810の最上部により境界をつけられるため、いくつかの実施形態においてレイアウトの最下部の範囲は黙示的境界を必要としない。同様の黙示的境界5985〜5997は、レイアウト5825に対して規定される。
次に処理5700は、外側に拡張して別のカラムの段落のバウンディングボックスと交差する水平境界(例えば、黙示的境界)がレイアウト中に存在するかを判定する(5725)。この水平一貫性検査は、レイアウトが単にカラムに分割される一般的な段落の集合である場合とは対照的に実際には表構造を有することを保証する。レイアウトが水平一貫性検査を通過しない場合、上述した5707に進む。レイアウトが水平一貫性検査を通過した場合、処理は表又は表の一部であってもよい潜在的なレイアウトを常時監視する集合Sにレイアウトを追加する(5730)。その後、5707に進む。
処理は、主ゾーンがそれ以上レイアウトを含まないことを判定した後(5707)、主ゾーン内に未処理のゾーンがあるかを判定する(5740)。主ゾーンが他にゾーンを含まない場合、あるいは全てのゾーンが処理された場合、処理は黙示的境界を規定することを終了し、以下に説明する5775に進む。
少なくとも1つの未処理のゾーンが主ゾーンに存在する場合、処理はより小さいゾーンの1つを選択する(5745)。処理は、より小さいゾーンがレイアウトを1つだけ含む島であるかを判定する(5750)。ページ5800において、ゾーン5810及び5815はレイアウトを1つだけ含む島であり、その一方で、ゾーン5805は、その境界がページ境界を含むためレイアウトを1つだけ含むが島ではない。
選択したゾーンがレイアウトを1つだけ含む島でない場合、処理5700は上述した5740に進む。選択したゾーンがレイアウトを1つだけ含む島である場合、処理はレイアウトのカラムを分離する垂直の空白及びカラム内のレイアウトの段落を分離する水平の空白において黙示的ゾーン境界を規定する(5755)。図59は、ゾーン5810のカラムの間に規定される黙示的ゾーン境界5971及び5972を示す。
処理は、外側に拡張して別のカラムの段落のバウンディングボックスと交差する水平境界(例えば、黙示的境界)がレイアウト中に存在するかを判定する(5760)。この水平一貫性検査は、レイアウトが単にカラムに分割される一般的な段落の集合である場合とは対照的に実際には表構造を有することを保証する。レイアウトが水平一貫性検査を通過しない場合、上述した5740に進む。レイアウトが水平一貫性検査を通過する場合、処理は表又は表の一部であってもよい潜在的なレイアウトを常時監視する集合Sにレイアウトを追加し(5765)、5740に進む。
ページ5800は、いくつかの実施形態においてはレイアウトを1つだけ含む島であるゾーン5815を含む。図59は、ゾーン5815に対して規定された黙示的境界5930〜5980を示す。しかし、水平境界5945〜5980の全てが外側に延長された場合にレイアウトの他の段落のバウンディングボックスと交差するため、このレイアウトは水平一貫性検査を通過しない。従って、ゾーン5815のレイアウトはページ5800に対する集合Sに追加されず、黙示的境界5930〜5980は保持されない。
全てのゾーンが評価されると、処理は集合Sのレイアウトからの黙示的ゾーン境界並びにそれらの黙示的ゾーン境界と交差するあらゆるゾーン境界図形を使用してゾーン分析を適用する(5775)。いくつかの実施形態は、ゾーン境界区間、交点及びゾーン境界を識別するために第II節で上述した方法を使用する。
処理5700は、集合Sのレイアウトのうち潜在的な表を識別する(5780)。いくつかの実施形態は、潜在的な表を識別するために(及びそれらの構造を再構成するために)第A項で説明した処理3500を使用する。次に処理は、特定の表の条件を満たさない潜在的な表を不適格であると判定する(5785)。その後、処理は終了する。いくつかの実施形態は、境界図形のみでは不十分である場合に表を識別する強力な根拠が存在ことを保証するために潜在的な表に対して追加の条件を課す。例えばいくつかの実施形態は、全てのセルが厳密に1行1列に及ぶこと、あるいはセルの高さ及び幅がページの寸法と比較して小さいこと、あるいは各境界の太さが表の寸法と比較して小さいことを要求する。いくつかの実施形態は、これらの条件及び他の要件のうちの1つ、いくつか又は全てを要求する。図60は、ゾーン5810並びにレイアウト5820及び5825が表6000に組み合わされ、ゾーン5805及び5815のコンテンツがそのまま残ることを示す。
文書の一部における全ての表が識別されると、いくつかの実施形態において、ユーザは、表の個々のセルを編集したり、表の行及び列を選択したり、表の情報をスプレッドシートにインテリジェントコピーしたりできる。更にいくつかの実施形態において、テキストフロー、読み取り順序及び表示は、表を識別し且つそれらを再構成することにより向上される。
D.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述した表の識別は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図61は、文書の表を識別するいくつかの実施形態の表識別アプリケーション6100のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
表識別アプリケーション6100は、ゾーン分析モジュール6105、表識別モジュール6110、ゾーン境界接続モジュール6115、黙示的境界規定モジュール6120及びレイアウト分析モジュール6125を含む。
図61は、文書コンテンツ6130を更に示す。ゾーン分析モジュール6105は、文書コンテンツ6130から情報(例えば、図形に関する情報)を受信する。いくつかの実施形態において、ゾーン分析モジュール6105は図17のゾーン分析モジュール1700と同一である。ゾーン分析モジュールは、ゾーン境界接続モジュール6115及び表識別モジュール6110にゾーン情報を出力する。
表識別モジュール6110は、ゾーン分析モジュール6105からゾーン情報を受信する。いくつかの例においては、ゾーン情報は文書の最終的なゾーンであるが、他の例においては、ゾーン情報は特定の表識別の目的で黙示的境界を含むゾーンである。表識別モジュール6110は、受信したゾーン情報に基づいて表を識別し、この情報を文書コンテンツ6145に渡す。いくつかの実施形態において、表識別モジュール6110は処理5300の一部又は全てを実行する。
ゾーン境界接続モジュール6115は、ゾーン分析モジュール6105からゾーン境界情報を受信し、この情報に基づいてゾーン境界の接続集合を規定する。接続集合は、黙示的境界規定モジュール6120に渡される。いくつかの実施形態において、ゾーン境界接続モジュール6115は処理5500の一部又は全てを実行する。
レイアウト分析モジュール6125は、文書コンテンツ6130から情報(例えば、レイアウト情報)を受信する。レイアウト分析モジュール6125は、レイアウトが潜在的に表の一部であるかを判定し、適格であるレイアウトを黙示的境界規定モジュール6120に渡す。いくつかの実施形態において、レイアウト分析モジュール6125は処理5700の一部又は全てを実行する。
黙示的境界規定モジュール6120は、レイアウト分析モジュール6125からレイアウト情報を受信し、ゾーン境界接続モジュール6115からゾーン境界の接続集合を受信する。黙示的境界規定モジュール6120は、受信した情報に基づいて文書のページに対する黙示的境界を規定し、この情報をゾーン分析モジュール6105に渡す。
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューし且つ/又は文書と対話できるように(例えば、タッチスクリーン、カーソル制御デバイス等を介して)、電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
VI.グラフの結合
いくつかの実施形態において、非構造化文書は、単一の要素として処理されることを意図されるが文書においてそのように規定されない基本要素(例えば、形状及び画像)を含む。そのような基本要素は、文書の孤立した小さな領域を占有する場合、境界クラスタリングと呼ばれる新しいクラスタ分析技術を使用して関連付けられる。いくつかの実施形態において、境界クラスタリングの目的は、クラスタの広がりを最小にし、それと同時にクラスタの基本要素の数を最大することである。ここで、広がりはクラスタの基本要素(例えば、形状)の集合の範囲から計算される。いくつかの実施形態において、範囲は形状又は形状の集合に対するバウンディングボックスに基づく。
本発明のいくつかの実施形態は、結合されるべき領域のグラフ(すなわち、図形オブジェクト)を識別する方法を提供する。これらの結合されたグラフは、更なる再構成の目的で1つのオブジェクトとして処理される。更に結合されたグラフは、閲覧、選択、ズーム、コピー、移動、編集等が行われる時に1つのオブジェクトとして処理される。いくつかの実施形態は、第VIII節及び第IX節で以下に説明する選択、表示及びナビゲーション処理で使用するために結合されたグラフを1つのオブジェクトとして処理する。
図62は、個々のグラフを結合グラフに結合するいくつかの実施形態の処理6200を概念的に示す。処理6200について図63と共に説明する。図63は、ページ6300上のいくつかのグラフの全てではないが一部を結合することを示す。図62に示すように、処理6200は文書の一部を受信する(6205)。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ又はゾーンである。いくつかの実施形態は文書全体に対して1度にグラフ結合処理を実行し、その一方で、いくつかの実施形態はゾーン毎又はページ毎に処理を実行する。
処理は、文書の一部におけるグラフを識別する(6210)。図63は、6つのグラフ、すなわち7つの先端のある星6305、五角形6310、八角形6315、十字形6320、三角形6325及び5つの先端のある星6330を含むページ6300を示す。
処理は、識別されたグラフの一部を結合するためにクラスタ分析を使用する(6215)。その後、処理は終了する。いくつかの実施形態は、処理6400を参照して以下に詳細に説明する境界クラスタリングと呼ばれるクラスタ分析の形態を使用する。いくつかの実施形態は、クラスタ分析を実行するために第X節で以下に説明される効率化技術を適用する。いくつかの実施形態は、グラフが近接しており且つそれらがとるページ又はゾーンの一部が大きすぎない場合にそれらグラフを結合する。図63は、7つの先端のある星6305及び五角形6310が単一のグラフ6335に結合され、三角形6325及び5つの先端のある星6330が単一のグラフ6340に結合されることを示す。それらがページ6300において孤立しているため、八角形6315及び十字形6320は互いに又は他のいずれのグラフにも結合されない。
A.境界クラスタリング
図64は、結合されるべきグラフを識別するために境界クラスタリングを実行し且つそれらグラフを結合するいくつかの実施形態の処理6400を概念的に示す。いくつかの実施形態において、処理6400は、第X節で以下に説明するメモリ及び処理効率(例えば、間接的にソートされた配列、高速区分等)を利用する。図示するように、処理は文書の一部に対するグラフを受信する(6405)。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ又はゾーンである。
処理は、少なくとも2つのグラフが文書の一部に存在するかを判定する(6407)。1つ又は0個のグラフが存在する場合、クラスタリングを実行してグラフを結合しようとする理由がないため、処理は終了する。少なくとも2つのグラフが存在する場合、処理は描画順序でグラフをソートする(6410)。いくつかの実施形態において、描画順序は、オブジェクトがページに描かれる順序である。多くの場合、複数のオブジェクトが単一のオブジェクトとして処理されることを意図する場合、それらオブジェクトは順番に描かれる。しかし、いくつかの実施形態は、ページ上のオブジェクトの場所等の他のヒューリスティック法に基づいてソートする。
次に処理は、描画順序で第1のグラフを現在のグラフgとして設定する(6415)。処理は、gが文書の一部における最後のグラフであるかを判定する(6420)。gが最後のグラフである場合、グラフgと次のグラフとの間の広がりは計算されないため、以下に説明する6440に進む。
グラフgが最後のグラフでない場合、処理は、描画順序が次のグラフとグラフgとの間の広がりを計算し(6425)、計算された広がりを配列に格納する(6430)。いくつかの実施形態において、広がりは2つのオブジェクトが互いに対してどの程度近接しているかの基準である。いくつかの実施形態は、広がりを計算するために2つのオブジェクトのバウンディングボックスを使用する。例えばいくつかの実施形態は、図形オブジェクトの集合の広がりを、図形オブジェクトの集合が適合する最小の直立バウンディングボックスの幅及び高さの合計を、ページの幅及び高さの合計で除算したものとして、計算する。
図65は、広がりが計算される2つの図形オブジェクトをそれぞれ有する2つのページ6501及び6502を示す。ページ6501は2つの図形オブジェクト6505及び6510を含み、その一方で、ページ6502はオブジェクト6505及び6510と同一の形状及びサイズを有するがページ上の異なる場所に配置された2つの図形オブジェクト6515及び6520を含む。図65は、オブジェクト6505及び6510に対する最小のバウンディングボックス6525、並びにオブジェクト6515及び6520に対する最小のバウンディングボックス6530を更に示す。上述した広がりを計算するために計測値を使用すると、オブジェクト6505及び6510に対する広がりは(XS1+YS1)/(X+X)であり、オブジェクト6515及び6520に対する広がりは(XS2+YS2)/(X+X)である。いくつかの実施形態は、オブジェクトの集合に対するバウンディングボックスの面積をページの面積で除算したものとして広がりを計算する。いくつかの実施形態は、オブジェクト自体の個々のバウンディングボックスと比較してオブジェクトの集合に対するバウンディングボックスのサイズ等のページサイズに関連しない計測値を使用する。
次に処理は、次のグラフを現在のグラフgとして設定する(6435)。その後、上述した6420に進む。全ての広がりが計算されると、処理はグラフのクラスタを規定するために差分クラスタリングに対する1次差分として広がりを使用する(6440)。いくつかの実施形態は、上述した米国特許出願公開第2007/0250497号明細書で説明されるような差分クラスタリングを実行する。いくつかの実施形態の差分クラスタリングが入力値の間の差分のみを必要とし且つ実際の入力値を必要としないため、広がりは実際の差分として生じないが1次差分として使用される。いくつかの実施形態において、差分クラスタリングの結果として得られるクラスタは、異なるクラスタのグラフ間の広がりと比較して同一クラスタの連続したグラフ間の相対的に小さな広がりを有する。
広がりは、ゆえに境界クラスタリングの概念は、ページ上の図形オブジェクトに限定されないことが当業者には理解されるだろう。例えば、広がりは3次元オブジェクト間で計算され(面積ではなく体積を使用して又は2次元ではなく3次元のバウンディングボックスにわたり合計することにより)、3次元オブジェクトをクラスタリングするために使用される(例えば、ビデオ合成アプリケーション等の3次元メディア編集アプリケーションにおいて)。
差分クラスタリングが使用された後、1次差分である広がりにより図形のクラスタが規定される。処理6400は、未評価のクラスタからクラスタCを選択する(6445)。その後、特定の制約を満たすグラフのサブシーケンスの集合になるようにCを処理する(6450)。異なる実施形態は、結合グラフを規定するために異なる制約を使用する。
いくつかの実施形態は、サブシーケンスのオブジェクトが描画順序で連続している必要があるという要件を課す。第1の区分のオブジェクトのグループの直立範囲が第2の区分のオブジェクトのグループの直立範囲から分離されるように各々が描画順序で連続している2つの空でないサブシーケンスにクラスタを区分する方法がないため、いくつかの実施形態は1つのシーケンスのオブジェクトが相互に重なり合っていることを要求する。いくつかの実施形態により課される第3の要件は、各サブシーケンスが密度制約を満たすことであり、これは、各サブシーケンスが十分に小さい全体の広がりを有する十分な数のグラフ(例えば、2つ)を含むことを保証する。
いくつかの実施形態は、上記条件の変更されたものを使用する。例えば、直立矩形範囲の代わりに、いくつかの実施形態は、画像の不透明な画素の周囲のパス等のより狭い範囲を使用する。いくつかの実施形態において、各サブシーケンスにおけるオブジェクトの集合は単一のグラフとして結合される。
次に処理6400は、評価するクラスタが更に存在するかを判定する(6455)。更にクラスタが残っている場合、6445に進んで別のクラスタを選択し、サブシーケンスに含めるようにそのクラスタを処理する。全てのクラスタが処理されている場合、処理は終了する。ここで、グラフは結合されると、閲覧、選択、ズーム、コピー、移動、編集等が行われる時に1つのオブジェクトとして処理される。いくつかの実施形態は、第VIII節で以下に説明する選択、表示及びナビゲーション処理において使用するために結合グラフを1つのオブジェクトとして処理する。
B.クラスタをサブシーケンスに含める処理
上述したように、グラフのクラスタが識別された後、いくつかの実施形態は、最終的な結合グラフを識別するため(及び各結合グラフを構成する基本要素を関連付けるため)にサブシーケンスに含めるように各クラスタを処理する。図66は、サブシーケンスに含めるようにクラスタを処理するいくつかの実施形態の処理6600を示す。いくつかの実施形態において、処理6600はクラスタ毎に処理6400の動作6450で実行される。
図示するように、処理6600はグラフのクラスタを受信する(6605)。上述したように、いくつかの実施形態において、このクラスタは、描画順序で順序付けされるグラフに対する1次差分として広がりを使用する境界クラスタリングの出力である。処理は、クラスタが空であるか(すなわち、グラフを含まないか)を判定する(6607)。クラスタが空である場合、処理は終了する。空でない場合、処理はまだサブシーケンスにないクラスタの第1のグラフを選択する(6610)。いくつかの実施形態において、動作6610を初めて通る時に選択したグラフがグラフを含む文書において描かれるクラスタの第1のグラフであるように、クラスタは描画順序で順序付けされる。
処理は、選択したグラフを含む新しいサブシーケンスを規定する(6615)(この時、選択したグラフはサブシーケンスの唯一のグラフである)。新しいサブシーケンスは選択したグラフの範囲を有する。いくつかの実施形態において、選択したグラフの範囲は、グラフを含む最小の直立バウンディングボックスである。他の実施形態は、例えばグラフの全ての不透明な画素を完全に囲む最小面積のパスを使用して異なる方法でグラフの範囲を規定する。
次に処理6600は、更にグラフがクラスタに存在するかを判定する(6620)。クラスタにそれ以上グラフがない場合、以下に説明する6645に進む。存在する場合、処理はクラスタの次のグラフを選択する(6625)。いくつかの実施形態において、クラスタの次のグラフはクラスタにある描画順序が次のグラフである。
処理は、新しいグラフ(すなわち、6625で選択されたグラフ)の範囲が現在のサブシーケンスの範囲と交差するかを判定する(6630)。上述したように、異なる実施形態は異なる方法でグラフの範囲を規定する。複数のグラフを含むサブシーケンスの範囲について以下に説明する。新しいグラフの範囲が現在のサブシーケンスの範囲と交差しない場合、処理は現在のサブシーケンスを格納し(例えば、サブシーケンスのリストに)(6640)、上述した6610に進み、次のサブシーケンスを開始する。次のサブシーケンスは、6630で最近テストされたグラフから開始する。これは、そのグラフがまだサブシーケンスにないクラスタの第1のグラフであるためである。
新しいグラフ(6625で選択された)の範囲が現在のサブシーケンスの範囲と交差する場合、処理はサブシーケンスに新しいグラフを追加し、先のサブシーケンスの範囲と新しく追加されたグラフの範囲との交わりとなるようにサブシーケンスの範囲を変更する(6635)。その後、上述した6620に進み、サブシーケンスにグラフを追加する試みを継続する。
いくつかの実施形態において、複数のグラフを含むサブシーケンスの範囲は全てのグラフを含む最小の直立バウンディングボックスである。他の実施形態において、範囲はサブシーケンスのグラフに対する全ての直立バウンディングボックスの結合である(そのような実施形態において、サブシーケンスの範囲は必ずしも矩形であるとは限らない)。グラフの全ての不透明な画素を含む最小面積のパスとしてグラフの範囲を規定するいくつかの実施形態において、範囲はサブシーケンスの全てのグラフの周囲のそのようなパスであってもよく、あるいはサブシーケンスの各グラフに対するそのようなパスの結合であってもよい。
クラスタの全てのグラフが初期サブシーケンスに配置されると、処理は第1のサブシーケンスS1を選択する(6645)。いくつかの実施形態において、各サブシーケンスは、描画順序が連続するグラフを含み、それらサブシーケンスは、第1のサブシーケンスが描画順序で第1のグラフを含むサブシーケンスになるように描画順序に基づいて配置される。
処理は、更なるサブシーケンスが存在するかを判定する(すなわち、初めて処理を通過する時にサブシーケンスが1つだけ存在するか否かを判定する)(6650)。それ以上サブシーケンスが存在しない場合、処理は終了する。サブシーケンスが存在する場合、処理は次のサブシーケンスS2を選択する(6655)。
次に処理6600は、S1及びS2の範囲が交差するかを判定する(6660)。上述したように、異なる実施形態において、サブシーケンスの範囲は異なる方法で規定される(すなわち、いくつかの実施形態においては、直立バウンディングボックスに基づき、他の実施形態においては、不透明な画素の周囲のパスに基づく)。S1及びS2の範囲が交差しない場合、処理はS1になるようにS2を規定し(6665)、6650に進んで元のS2に対して次のサブシーケンスをテストする。
範囲が交差する場合、処理は2つのサブシーケンスをマージし(6670)、6645に進んで第1のサブシーケンスをS1として選択する。いくつかの実施形態は、第1のサブシーケンスに戻り、どんな方法でもマージできないサブシーケンスの集合が最初から処理されるまで処理を終了しない。しかし、他の実施形態は、6645に戻った時に最近マージされたサブシーケンスの前のサブシーケンスをS1として選択し且つ第1のサブシーケンスにおいて最初からやり直すのではなくその時点から処理することにより処理時間を節約する。
クラスタがサブシーケンスに含まれるように処理すると、サブシーケンスは上述した密度制約等の制約に対してテストされる。いくつかの実施形態は、結合グラフにおいて関連付けられるグラフに対してサブシーケンスに特定の最小数のグラフがあることを要求する(例えば、2つ、5つ等)。いくつかの実施形態は、広がり(上述したように計算された)が特定の数(例えば、0.4、0.5等)より小さいことを要求した。
C.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したグラフ結合処理は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図67は、結合されるべきグラフを識別し且つそれらのグラフを1つの図形として関連付けるいくつかの実施形態のグラフ結合アプリケーション6700を概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
図67は、グラフ結合器6705、境界クラスタリングモジュール6710及び広がり計算機6715、並びに文書コンテンツ6725を示す。グラフ結合器モジュールは、文書コンテンツ6725から情報を受信する。いくつかの実施形態において、情報は各グラフの場所及びグラフの描画順序に関する情報である。
グラフ結合器6705は、広がり計算機6715に情報(例えば、描画順序でのグラフの位置及びグラフの場所)を渡す。いくつかの実施形態の広がり計算機6715は、連続したグラフの対毎に広がりを計算し、この情報を境界クラスタリングモジュール6710に渡す。
境界クラスタリングモジュール6710は、グラフ結合器6705及び広がり計算機6715から情報を受信し(例えば、1次差分として処理される広がりの配列)、受信した情報に対して境界クラスタリングを実行する。境界クラスタリングの結果はグラフ結合器に戻される。いくつかの実施形態において、グラフ結合器6705は、グラフの特定のクラスタが単一のグラフとして関連付けられるべきであるかを識別するために境界クラスタリングモジュールから受信したクラスタの更なる処理を実行し、その関連付けを文書コンテンツ6725に返す。
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューし且つ/又は文書と対話できるように(例えば、タッチスクリーン、カーソル制御デバイス等を介して)、電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
VII.処理を制御するためのプロファイル
文書中の構造要素として視覚情報を解釈することは、処理されている文書中のコンテンツの種類に依存する。従って、意味再構成(並びに他のコンテンツ処理技術)は、コンテンツの種類に合わせて分析を適合させることにより改善される。いくつかの実施形態は、処理されるコンテンツの種類を識別し且つ識別されたコンテンツの種類に合わせてコンテンツの処理を適合させる方法を提供する。いくつかの実施形態は、第II節〜第VI節において上述した文書再構成に対してコンテンツの種類の識別に基づくコンテンツ処理の適合を適用する。
いくつかの実施形態は、処理されるコンテンツの種類を識別するためにプロファイルを使用する。プロファイルは、全ての論理的述語Pが特定のコンテンツに対して真である場合にのみプロファイルが特定のコンテンツと一致するような形式(P^P^P^...^P)の論理命題を含む。いくつかの実施形態において、プロファイルの集合は階層型である。プロファイルの階層集合は、処理の種々の段階で到達する種々の階層レベルに対するプロファイルを有する。いくつかの実施形態において、下位レベルのプロファイルからの命令は上位レベルのプロファイルからの命令に優先する。
図68は、コンテンツの種類に合わせてコンテンツ処理を適合させるためにプロファイルを使用するいくつかの実施形態の処理6800を概念的に示す。図示するように、処理はコンテンツを受信する(6805)。いくつかの実施形態において、コンテンツは再構成される文書である。他の実施形態において、コンテンツは文書であるが、その文書に対して実行される処理は再構成以外の分析である。いくつかの実施形態において、コンテンツは他の種類のコンテンツ(例えば、オーディオ及び/又はビデオコンテンツ)であってもよい。例えばいくつかの実施形態は、ビデオコンテンツを分析してビデオコンテンツをシーン、動作等の階層に区切り、早い段階の結果に基づいて分析の後の段階を変更してもよい。
次に処理は、種々のコンテンツの種類に対するプロファイルに基づいて受信したコンテンツの種類を識別する(6810)。いくつかの実施形態において、プロファイルは、論理的述語の全てがコンテンツに対して真である場合にのみコンテンツと一致する1つ以上の論理的述語から成る論理命題を含む。いくつかの実施形態において、プロファイルがコンテンツと一致する場合、プロファイルはコンテンツ処理を実行する方法を指定する。文書処理の場合、いくつかの実施形態において、プロファイルは視覚要素の集合に当てはまる属性の集合を含む。例えば#10封筒に印刷されることが意図された文書に対する簡略化されたプロファイルは(ページの#=1^段落の#<=2^幅=9.5”^高さ=4.125”)であってもよい。
図69は文書6900を示す。文書の種類を識別する際、いくつかの実施形態は、全ての論理的述語が真であるプロファイルに到達するまで複数のプロファイルをテスト する。文書6900の場合、幅xが9.5”であり且つ高さyが4.125”である時、文書6900は、2つの段落6905及び6910を含む1ページだけを有するため#10封筒として識別される。
コンテンツの種類が識別されると、処理6800は識別されたコンテンツの種類に適合されたコンテンツ処理を実行する(6815)。その後、処理は終了する。いくつかの実施形態において、識別されたコンテンツの種類に合わせて処理を適合することは、処理を追加及び除去すること、処理の実行方法を変更すること、処理の実行順序を変更することを含む。例えば文書再構成の場合、文書がカラム、ヘッダ又はフッタを有さないテキスト行の単一ページであると判定される時、文書再構成処理は適合するように適切に変えられうる。いくつかの実施形態は、テキスト行を識別し、テキスト行の単語を識別し、テキスト行を段落にグループ化するが、他の処理(例えば、カラム及びレイアウトを識別する処理4200又は表識別処理)が必要とされていないことが文書の種類に基づいて認識されるためそれら他の処理を実行しない。
A.階層プロファイリング
いくつかの実施形態は、コンテンツの種類に合わせてコンテンツ処理を適合させるためにプロファイルの階層集合を使用する。図70は、文書再構成のためのいくつかの実施形態のプロファイルの階層集合7000を示す。プロファイルの階層集合7000は2つの文書プロファイル7001及び7002、3つの小領域プロファイル7005〜7007、8つのページプロファイル7010〜7017及び4つのゾーンプロファイル7020〜7023を含む。
図示するように、各文書プロファイルは自身のプロファイル木を有する。いくつかの実施形態において、文書プロファイルが識別されると、階層木の小領域プロファイルのみがテストされる。例えば文書が文書プロファイルA 7001として識別されると、小領域プロファイルA 7005及び小領域プロファイルB 7006のみがテストされる。同様に、小領域プロファイル(又は他のあらゆる下位レベルプロファイル)が識別されると、その特定のプロファイルが有する木にあるプロファイルのみがテストされる。
いくつかの実施形態において、いくつかのプロファイルは階層の上位レベルの複数のプロファイル間で共有される。例えばページプロファイルC 7012は3つの小領域プロファイル7005〜7007の全ての間で共有される。従って、文書の小領域が小領域プロファイルA 7005、小領域プロファイルB 7006及び小領域プロファイルC 7007のいずれのプロファイルとして識別されても、ページプロファイルC 7012はその小領域の各ページに対する可能なページプロファイルの1つとしてテストされる。
図71は、コンテンツに対してプロファイルをマッチングし、一致したプロファイルに依存してコンテンツ処理を動的に構成するいくつかの実施形態の処理7100を概念的に示す。図示するように、処理は処理されるコンテンツを受信する(7105)。いくつかの実施形態において、コンテンツは第II節〜第VI節において上述した処理に従って再構成される文書である。他の実施形態において、コンテンツは、オーディオ及び/又はビデオコンテンツ、あるいは分析される他の種類のコンテンツである。
次に処理は、階層の最上位についてのプロファイルを選択する(7110)。いくつかの実施形態において、特定のプロファイルを選択することは、コンテンツについて特定のプロファイルの論理命題を評価することと、プロファイルがコンテンツと一致することを識別することとを含む。いくつかの実施形態において、階層の最上位からプロファイルを選択するために、まず、ある量の処理が実行される必要がある。一致するプロファイルを見つける前に複数のプロファイルがテストされてもよいが、いくつかの実施形態において、1回に1つのプロファイルのみが階層の最上位において選択される。例えば図70のプロファイルの階層集合7000を参照すると、文書は文書プロファイルA 7001又は文書プロファイルB 7002に一致するが、1つが一致すると、一致するプロファイルが選択される。
階層からプロファイルを選択した後、処理は選択したプロファイルに対して処理を適用する(7115)。例えば文書再構成を参照すると、コンテンツが単純な1ページの文書である場合、一組の再構成方法が適用される。一方、文書が図を含み且つ多くのページを有する書籍である場合、異なる再構成方法の集合が適用される。いくつかの実施形態は、1度に全ての方法を適用せず、下位レベルの新しいプロファイルが選択可能かを判定する前にプロファイルにより指定された順序で1度に1つの方法を適用する。
次に処理は、階層の次のレベルに進むのに十分なほど処理が進んでいるかを判定する(7120)。いくつかの実施形態において、これは、十分な処理方法が完了していて且つ階層の次のレベルのプロファイルがマッチングのテストをされる次のレベルに関して十分な情報が利用可能にされているかを判定することを含む。処理が十分に進んでいない場合、7115に進み、上述したように処理の適用を継続する。
階層の次のレベルに対して処理が十分に進むと、処理は階層の次のレベルに対するプロファイルを選択する(7125)。いくつかの実施形態において、階層の特定のレベルのコンテンツエンティティ(例えば、小領域、ページ、ゾーン等)毎に、その特定のレベルに対して1度に1つのプロファイルのみが選択可能である。例えば図70のプロファイルの階層集合7000を参照すると、文書プロファイルA 7001と一致する文書の小領域は小領域プロファイルA 7005及び小領域プロファイルB 7006の双方にではなくいずれかに一致する。更にいくつかの実施形態において、コンテンツエンティティに対するプロファイルの選択は、上記コンテンツエンティティに対するプロファイルの選択に基づいて制約される。例えば上記例において、文書が文書プロファイルA 7001に一致したため、特定の小領域は小領域プロファイルC 7007に対してテストされないため、小領域プロファイルC 70007と一致することはない。
次に処理は、新しく選択したプロファイルに基づいて、階層の前のレベルから処理方法を変更する(7130)。いくつかの実施形態において、あらゆる下位レベルプロファイルは上位レベルプロファイルからの既に規定されたいずれの処理方法も無効にできる。変更は、処理方法を除去すること、特定の方法の実行方法を変更すること、方法を追加すること、方法の実行順序を変更すること等を含むことができる。例えば、処理(例えば、第IV節で上述した処理3800)が文書中の行を分割するのに既に使用された場合、カラムに対する十分な根拠があるかに関する判定により、ページが複雑なページとして分類されるか又は単純なページとして分類されるかを判定できる。ページが単純なページ(すなわち、カラムに対する極小の根拠)である場合、いくつかの実施形態において、行分割方法は実際に行を分割するのではなく行の空隙にタブを挿入するように変更される。同様に、ページがゾーン境界図形を含まない単純なページである場合、いくつかの実施形態において、ゾーン分析処理は除去される。
方法を追加する一例として、いくつかの実施形態において、特定の文書を新聞として識別するプロファイルは、記事が特定のタイトルを有する特定のページに継続することを指定するレイアウトの終端のテキストを検索する方法を追加してもよい。そのような方法は、文書中の2つのレイアウト(又はゾーン)の間のリンクを規定して2つのレイアウト(又はゾーン)が1つの記事を形成することを示すために、指定されたページを探索してタイトルを見つける。
次に変更された処理方法により、処理7100は選択したプロファイルに対する処理方法を適用する(7135)。いくつかの実施形態において、これは、最も最近選択したプロファイルについての方法よりむしろ、階層の上位レベルのプロファイルについての方法を含む。例えば特定の方法が文書プロファイルにおいて指定され且つ選択した小領域プロファイルがこの特定の方法を変更しない場合か又はこの特定の方法が実行されるか否かを変更しない場合、この特定の方法は文書プロファイルに従って実行される(まだ実行されていない場合)。いくつかの実施形態は、1度に全ての方法を適用せず、下位レベルの新しいプロファイルが選択可能であるかを判定する前にプロファイルにより指定された順序で1度に1つの方法を適用する。
次に処理は、テストするプロファイルの階層に下位レベルが存在するかを判定する(7140)。階層にそれ以上下位レベルが存在しない場合、以下に説明する7150に進む。存在する場合、階層の次のレベルに進むのに十分なほど処理が進んでいるかを判定する(7145)。いくつかの実施形態において、これは、十分な処理方法が完了していて且つ階層の次のレベルのプロファイルがマッチングのテストをされる次のレベルに関して十分な情報が利用可能にされているかを判定することを含む。処理が十分に進んでいない場合、7135に進み、上述したように処理の適用を継続する。階層の次のレベルに対して処理が十分に進むと、上述したように、7125に進んで階層の次のレベルに対して1つ以上のプロファイルを選択する。
それ以上階層の下位レベルがないと判定した場合(7140)、処理は、コンテンツ処理が完了しているかを判定する(7150)。いくつかの実施形態において、処理方法の全てが最下位レベルプロファイルに対して適用されている場合、コンテンツ処理は完了している。処理が完了している場合、処理は終了する。処理が完了していない場合、上述した7135に進み、コンテンツの処理を継続する。
B.意味再構成方法を実現するための階層プロファイリングの使用
いくつかの実施形態は、第II節〜第VI節において上述した意味再構成方法をより効率的に且つ正確に実現するために階層プロファイリングを利用する。いくつかの実施形態において、階層プロファイルは方法を追加、除去、変更又は再実行するために使用される。いくつかの実施形態は、一致するプロファイルがない場合に全ての可能な再構成方法を実現するデフォルトプロファイルを含む。しかし、階層の下位のプロファイルが選択される場合、選択されたプロファイルは特定の方法を実行するか否か及び/又は特定の方法の実現方法に関するデフォルトプロファイルを無効にできる。
いくつかの実施形態において、プロファイルのマッチングが処理の種々の段階で行われる。従って、いずれかの所定の時間に起動されたプロファイルの集合は処理中に変更可能であり、方法の継承は、新しい各プロファイルが起動された後に再評価される必要がある。新たに起動されたプロファイルが処理方法を再順序付け、追加又は除去できるため、いくつかの実施形態はコンテンツ処理中に継承の効果を更に変更する。
図72は、階層プロファイリングを使用して文書再構成を実行するいくつかの実施形態の処理7200を概念的に示す。図示するように、処理は文書を受信する(7205)。いくつかの実施形態において、文書は意味再構成技術を使用して再構成されるベクトル図形文書(例えば、PDF文書)である。
次に処理7200は、文書に対するプロファイルを識別する(7210)。いくつかの実施形態において、全ての可能な再構成方法を実現するデフォルトプロファイルが最初に割り当てられる。しかし、いくつかの実施形態は、いずれの再構成方法も適用せずに文書の固有の特性(例えば、ページ数、ページサイズ等)に基づいて文書プロファイルを識別できる。
初期プロファイルが識別されると、処理は識別したプロファイルと関連付けられた再構成方法を識別する(7215)。初期プロファイルが単純にデフォルトプロファイルである場合、全ての可能な方法が識別される。しかし、プロファイルが識別した文書プロファイル又は階層の下位レベルのプロファイルである場合、いくつかの例においては一部の再構成方法のみが識別される。例えばいくつかのプロファイルは、特定の処理を実行する実装を明示的に規定せず、また処理を実行しないことを指定しない。
処理は、識別した方法のうちの1つを選択する(7220)。いくつかの実施形態において、選択された方法は、再構成方法の指定された実行順序に基づく。例えばいくつかの実施形態のデフォルトプロファイルは、再構成方法を実現するデフォルトの順序を指定する。デフォルトの順序は、例えばゾーン分析方法を最初に実行し、テキスト行を識別し、その後ガイド及びのど分析を実行すること等を指定してもよい。
いくつかの実施形態において、方法を識別することは、現在のプロファイルにより除外される方法を識別することを含む。例えば再構成処理は、ページに対する既に識別された潜在的なゾーン境界を有してもよい。いくつかの実施形態において、少なくとも特定の密度のゾーン境界があり、テキストパターンが適切に一致する場合、ページは道路地図として識別される。従って、残りのゾーン分析(例えば、ゾーンを識別すること)は、文書の作成者がページの別個の領域になることを意図しない過度の数の小さなゾーンにページを区切るため実行されない。
同様に、いくつかの実施形態において、文書がワードプロセッシング文書であることを指定する文書プロファイルはカラム識別の方法を含む。しかし、文書中の特定のページが埋め込みコンテンツを有する場合、特定のページに対するプロファイルは、その方法を実行しないようにする命令によりカラム識別ステップを無効にできる。
方法が選択されると、処理7200は方法に対する実装を選択する。いくつかの実施形態において、有効な(すなわち、選択された)プロファイルは、方法を実現できるか、あるいは階層の上位の有効なプロファイルから方法の実装を継承できる。処理は、選択した方法が現在の(すなわち、有効な最下位レベル)プロファイルについて明示的に規定されているかを判定する(7225)。選択した方法が明示的に規定される場合、処理は現在のプロファイルに対する方法の実装を選択する(7230)。その後、以下に説明する7250に進む。
選択した方法が明示的に規定されない場合、処理は、選択した方法が階層の上位レベルの有効なプロファイルについて規定されているかを判定する(7235)。処理が階層の上位の有効なプロファイルについて規定されている場合、処理は有効な上位レベルプロファイルから方法の実装を選択する(7240)。その後、以下に説明する7250に進む。処理が規定されない場合、方法は方法のデフォルト実装を選択する(7245)。
図73は、いくつかの実施形態が特定の方法を実現する有効な最下位レベルプロファイルを継承する方法を示す。図73は、文書再構成プロファイルの階層7300を示す。階層は、全ての方法に対するデフォルト実装の集合7305、種々の文書プロファイルに対する実装の集合7310、種々の小領域プロファイルに対する実装の集合7315、種々のページプロファイルに対する実装の集合7320及び種々のゾーンプロファイルに対する実装の集合7325を含む。破線により示されるように、ゾーンプロファイル7330は現在(最下位レベル)の有効なプロファイルであり、その一方で、ページプロファイル1 7335、小領域プロファイルX 7340及び文書プロファイル2 7345も有効である。
ゾーンプロファイル1 7330が現在の有効なプロファイルであるので、特定の方法(例えば、ガイド識別)を実現する試みは、特定の方法に対する実装を明示的に規定するかを判定するためにゾーンプロファイル1 7330に対する実装の集合を参照することである。ゾーンプロファイル1 7330が一実装を明示的に規定する場合、この実装が選択される。明示的に規定しない場合、有効なページプロファイル1 7335が検査される。有効なプロファイルは、特定の方法の一実装が規定されるまで又は全ての方法に対するデフォルト実装の集合7305に到達するまで階層を上位方向に向かって検査される。方法を実現する最下位レベルの有効なプロファイルが識別される場合、この実装は現在の有効なプロファイルにより継承される。方法を実現する有効なプロファイルがない場合、現在の有効なプロファイルはデフォルトプロファイルからの実装を継承する。
処理7200が方法に対する一実装を選択した後、処理は選択した実装を使用して再構成を実行する(7250)。いくつかの実施形態において、実行された再構成は、第II節〜第VI節において上述した1つ以上の処理を含む。
次に処理は、新しいプロファイルが識別されるかを判定する(7255)。各方法が実行された後、いくつかの実施形態は、プロファイルマッチングエンジンが利用可能な全ての再構成データを送出する。いくつかの実施形態のプロファイルマッチングエンジンは、受信した情報に基づいて、特定のプロファイル(例えば、現在の有効なプロファイルの下である階層の次のレベルのプロファイル)をテストするのに十分な情報があるかを判定する。十分な情報がある場合、プロファイルマッチングエンジンは、プロファイルの種々の論理的述語に対して情報をテストする。いくつかの実施形態は、一致する可能性が最も高いプロファイル又は最小の作業量を必要とするプロファイルが最初にテストされるようにプロファイルを順序付けする。プロファイルマッチングについては、第C項において以下に更に詳細に説明する。
新しいプロファイルが識別されない場合、処理は、文書の再構成が完了しているかを判定する(7265)。いくつかの実施形態において、有効なプロファイルの集合により指定された(且つ下位レベルの有効なプロファイルにより除去されない)全ての方法が完了している場合、再構成は完了している。再構成が完了している場合、処理は終了する。再構成が完了していない場合、7220に進み、上述したように次に識別された方法を選択する。
新しいプロファイルが識別される場合、処理7200は新しいプロファイルにより指定されたあらゆる再構成結果を除去する(7260)。特に実行されるべき又は実行されるべきでない特定の方法を指定することに加えて、いくつかの実施形態のプロファイルは、特定の方法の結果が取り消されるべきであることを指定する。例えばゾーン分析方法が実行された後でも、プロファイルは、ゾーン情報(境界、交点、ゾーン等)が結果から除去されるべきであること及び他のいくつかの方法が実行された後にゾーン分析が再実行されるべきであることを指定してもよい。その後、上述した7215に進み、再構成が完了するまで続行する。
C.プロファイルマッチング
上述したように、いくつかの実施形態において、プロファイルは、全てがプロファイルに対して真である必要がある論理的述語の集合である。いくつかの実施形態は、コンテンツ処理結果を受信し、現在の有効なプロファイルに対して次のレベルのプロファイルをテストするのに十分な情報が存在するかを判定し、コンテンツ処理結果をプロファイルに対してテストするプロファイルマッチングエンジンを使用する。いくつかの実施形態は、結果が到着しそうな順序及び一致する可能性が最も高いプロファイルに基づいてプロファイルをテストする特定の順序を指定する。
図74〜図77は、4つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す。図74は、4つのページプロファイル、すなわち単純なページ7401、標準的なページ7402、リッチページ7403及びレイアウトページ7404を示す。各プロファイルは、少なくとも1つの論理的述語を含む。すなわち、特にプロファイル7401は3つの述語7411〜7413を含み、プロファイル7402は4つの述語7421〜7424を含み、プロファイル7403は2つの述語7431及び7432を含み、プロファイル7404は述語を1つだけ含む。
図74は、図示した順序でページプロファイルに対してテストされるページ7400を更に示す。ページ7400は、図形オブジェクト7450及びテキスト行7460のみを含む。ページ7400のボディは、子(ページ境界であり、それ自体は子を有さない)を1つだけ有し、1つのレイアウトにおいて1カラムのテキストのみがあるため、ゾーンに対するプロファイルは単純である。いくつかの実施形態において、プロファイルが一致すると、他のプロファイルはテストされない。図74の破線は、ページ7400に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。第1に、エンジンはページのボディが子を1つだけ有するかを判定する(述語7411)。この述語が真として評価されるため、エンジンは、子が子ゾーンを有さないと判定する(述語7412も真)。最後に、エンジンは、ゾーンプロファイルが単純であるか(すなわち、1つのレイアウトに1カラムのテキストのみが存在するか)を判定する(述語7413も真)。全ての3つの述語がページ7400に対して真であるため、プロファイルマッチングエンジンは、ページ7400が単純なページであると判定する。従って、特定の方法(例えば、カラムの識別)はページ7400については除去される。
図75は、ページプロファイル7401〜7404に対してテストされる第2のページ7500を示す。ページ7500は、図形オブジェクト7540、ヘッダ行7545及び2カラムのテキスト行7550を含む。ページ7500のボディは1つの子(子を有さないページ境界)を有し、ゾーンのテキストはヘッダ及び2カラムのテキストである。図75の破線は、ページ7500に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を1つだけ有するかを判定する(述語7411)。この述語が真であると評価されるため、エンジンは、子が子ゾーンを有するかを判定する(述語7412も真)。エンジンは、ゾーンプロファイルが単純なプロファイルであるかを判定する(述語7413は偽)。ヘッダ及び2つのカラムが存在するため、ゾーンプロファイルは単純ではなく、述語7413が偽となり、マッチングエンジンは次のプロファイルをチェックする。述語7421〜7424は全てページ7500に対して真であるため、プロファイルマッチングエンジンは、ページ7500が標準的なページであることを判定する。これらが全て図74のページ7400に対して真であり、単純なページプロファイル7401が最初に評価(マッチング)されるため、標準的なページプロファイル7402はページ7400に対してチェックされることはなかった。
図76は、ページプロファイル7401〜7404に対してテストされる第3のページ7600を示す。ページ7600は、テキストを有するヘッダゾーン、サイドバー、中央のコールアウトの周囲の主レイアウト及びテキストを有する最下部ゾーンを含むいくつかの子を有する主ゾーンを含む。図76の破線は、ページ7600に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を1つだけ有するかを判定する(述語7411)。この述語が真として評価されるため、エンジンは、子が子ゾーンを有さないかを判定する(述語7421は偽)。第1ゾーンは複数の子を有するため、述語7412は偽であり、マッチングエンジンは次のプロファイルをチェックする。述語7422は、同様の理由で偽であるため、マッチングエンジンは第3のプロファイルに進み、述語7431及び7432は、レイアウト数が少なく且つページが主フローレイアウト(同心矩形を囲むレイアウト)を有するために真と評価される。従って、ページ7500はリッチページとして分類される。
図77は、ページプロファイル7401〜7404に対してテストされる第4のページ7700を示す。ページ7700は、図形を有する大きいゾーン及びテキストを有する島、並びにテキストを有するより小さいゾーンを含む。図77の破線は、ページ7400に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を1つだけ有するかを判定する(述語7411)。この述語は偽と評価されるため、マッチングエンジンは次のプロファイルをチェックする(同様の理由で偽となる)。第3のプロファイルにおいて、ページ7700が主フローレイアウトを有さないため、述語7432は偽である。述語7441は常に真であるため、ページ7700はレイアウトページとして分類される。ページが前のいずれのプロファイルとも一致しないとレイアウトページとして自動的に分類されるため、述語7441は常に真である。プロファイルが一致すると、再構成方法はプロファイル中の命令に従って実行、除去等が行われる。
VIII.関心領域の識別及び選択、並びに文書のナビゲーション及び表示
多くの場合、電子書籍リーダ等の文書閲覧アプリケーションは、文書を最適に表示し且つ文書内を最適にナビゲートする方法を認識する必要がある。これは、文書のページ全体を読みやすいように1度に表示できない小型スクリーンデバイスにおいて特に重要である。例えば場合によっては、文書ビューアは、コンテンツの表のエントリが文書の特定の小領域にリンクしていること、あるいは文書の2つの小領域が関連していること(例えば、コールアウトが特定の記事の一部であること又は1つのカラムが次のカラムに続くこと)を認識できるべきである。
本発明のいくつかの実施形態は、文書の表示及びナビゲーションのために文書再構成から得られた情報(すなわち、段落及びカラム情報、表情報等)を使用する。特にいくつかの実施形態は、小型スクリーンデバイス(例えば、メディアプレーヤ、携帯電話等)における表示及びナビゲーションに対して意味的に再構成された文書の表示及びナビゲーションを適応させる。
A.関心領域の識別及び選択
いくつかの実施形態は、意味的に再構成された文書中の関心領域を識別及び選択し、関心領域の選択に基づいて文書の表示を変更する方法を提供する。図78は、いくつかの実施形態において関心位置の識別に基づいて文書を表示する処理7800を概念的に示す。処理7800については図79と共に説明する。図79は、本発明のいくつかの実施形態に従って関心位置が選択され且つ表示が変更される小型スクリーンデバイスにおけるシーケンス7900(7905〜7920)を示す。
図78に示すように、処理7800は、意味的に再構成された文書中の関心位置の指示を受信する(7805)。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で説明されたようなゾーングラフを含む。いくつかの実施形態の文書オブジェクトモデルは、コンテンツ(例えば、カラム、段落、画像等)の読み取り順序を更に示す。
いくつかの実施形態は、ディスプレイにおける点の選択として関心位置の指示を受信する。例えば選択は、カーソル制御デバイス(例えば、マウス、タッチパッド等)により行われる。関心位置は、ユーザが画面をタップすること(例えば、シングルタップ、ダブルタップ、ピンチング動作等)によりタッチスクリーンデバイスにおいて指示できる。図79を参照すると、シーケンス7900は、ユーザ7925が文書の一部分を表示しているディスプレイ7930において1つの点を選択することを示す(7905)。関心位置7935は、ユーザが選択するために画面に触れたディスプレイ7930における点に示される(7910)。
次に処理7800は、意味的に再構成された文書中の関心領域を識別する(7810)。シーケンス7900は、段落7940が関心位置7935の選択に基づいて関心領域として識別されたことを示す。いくつかの実施形態は、関心位置7935の場合のように関心位置が段落のバウンディングボックス内にある場合にその段落を関心領域として識別する。
関心領域の識別後、処理7800は、関心領域を表示装置の閲覧領域に配置するために要求された変換を適用する(7815)。いくつかの実施形態において、処理8000及び8100に関して以下に説明するように、変換は回転、ズーム及び平行移動の組み合わせを含む。次に処理は、適用された変換に基づいて文書を描く(7820)。その後、処理は終了する。シーケンス7900は、指定された変換に従って、段落7940が拡大され且つ垂直及び水平方向に中央に置かれたことを示す(7920)。いくつかの実施形態において、処理は元の(すなわち、非構造化)文書を表示するが、文書をパン及びズームするために構造要素(例えば、構造化文書から得られる)の位置の知識を使用する。
図80は、関心領域を識別し、表示装置上に関心領域を描くために変換を適用するいくつかの実施形態の詳細な処理8000を概念的に示す。図示するように、処理8000は関心位置を受信する(8005)。いくつかの実施形態において、関心位置はユーザによる選択(例えば、カーソル制御デバイス又はタッチスクリーンによる選択)に基づいて使用される。
関心位置に基づいて、処理は受信した関心位置に基づく意味的に再構成された文書中の選択したオブジェクトを判定する(8010)。いくつかの実施形態において、選択したオブジェクトは文字、単語、テキスト行、画像等であってもよい。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述したように文書再構成の結果である文書オブジェクトモデル(DOM)を含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で上述したようなゾーングラフを含む。
次に処理は、段落又は図形オブジェクトに到達するまで文書階層を上位方向に進む(8015)。いくつかの実施形態において、文書階層は、コンテンツ情報を読み込まれたゾーングラフ(すなわち、DOM)である。選択したオブジェクトが単語である場合、いくつかの実施形態において、処理はその単語から単語を含むテキスト行に、テキスト行を含む段落に向かって階層を進む。
処理は、識別したオブジェクトが段落であるかを判定する(8020)。識別したオブジェクトが段落でない場合、それは図形オブジェクトである。いくつかの実施形態において、図形オブジェクトは形状、画像又は結合グラフ(すなわち、複合図形オブジェクト)のいずれかであってもよい。識別したオブジェクトが図形オブジェクトである場合、処理は識別したオブジェクトの直立バウンディングボックスとして関心矩形(ROI)を規定する(8025)。その後、ROIの幅及び高さが表示領域の幅及び高さより大きくならないようにズームする(8030)。その後、以下に説明する8060に進む。
識別したオブジェクトが段落である場合、処理は段落の親カラムの幅及び段落の高さを有する矩形を規定する(8035)。処理は、段落に対する任意の回転を矩形に適用し、回転された矩形の直立バウンディングボックスとしてROIを規定する(8040)。いくつかの実施形態において、段落は、文書オブジェクトモデルの回転グループにある場合に回転される。いくつかの実施形態は、第II節で上述したように回転グループを規定する。
その後、段落の並び線(回転前)が表示領域の対角線より急であるかを判定する(8045)。例えば表示領域が正方形である場合、並び線が45°より急であるか否かが判定される。段落の並び線が表示領域の対角線より急である場合、ROIが表示領域の高さより大きくならないようにズームする(8050)。その後、以下に説明する8060に進む。一方、段落の並び線が表示領域の対角線より急でない場合、ROIが表示領域の幅より大きくならないようにズームする(8055)。
次に処理8000は、ROI(上記動作で規定されるような)が水平方向に表示領域に適合するかを判定する(8060)。ROIが水平方向に適合する場合、処理はROIを水平方向の中央に配置する(8065)。その後、以下に説明する8075に進む。ROIが水平方向に適合しない場合、処理は関心位置を水平方向の中央に配置する(8070)。その後、ROIが垂直方向に表示領域に適合するかを判定する(8075)。ROIが垂直方向に適合する場合、処理はROIを垂直方向の中央に配置する(8080)。その後、以下に説明する8087に進む。ROIが垂直方向に適合しない場合、処理は関心位置を垂直方向の中央に配置する(8085)。
次に処理は、関心位置を含むページの最下部又は最上部のエッジが表示領域にあるかを判定する(8087)。表示領域にある場合、1ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する(すなわち、最上部又は最下部の)エッジに移動する(8090)。その後処理は、関心位置を含むページの右エッジ又は左エッジが表示領域にあるかを判定する(8092)。表示領域にある場合、1ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する(すなわち、右又は左)エッジに移動する(8095)。最後に処理は、上記変換の全てを適用された表示領域を再度描く(8197)。その後、処理は終了する。
いくつかの実施形態は、選択した関心領域を表示するために変換(例えば、ズーム、平行移動、回転等)の他の組み合わせを使用する。例えば処理8000は、図形オブジェクトである関心領域と比較して、段落である関心領域に対して異なる方法でズームの仕方を判定し、その一方で、他の実施形態は、ズームが全ての関心領域に対して同一になるように関心領域を規定する。例えば以下に説明する処理8100は、このように関心領域においてズームする。
図81は、関心領域を識別し、表示装置上に関心領域を描くために変換を適用するいくつかの実施形態の詳細な処理8100を概念的に示す。処理8100は、上述した処理8000と同様である。いくつかの実施形態において、ユーザは処理8000でのズーム変換が好ましいか又は処理8100でのズーム変換が好ましいかを選択できる。他の実施形態は、2つの処理のうちの一方を実現する。図示するように、処理8100は関心位置を受信する(8105)。いくつかの実施形態において、関心位置はユーザによる選択(例えば、カーソル制御デバイス又はタッチスクリーンによる選択)に基づいて使用される。
関心位置に基づいて、処理は受信した関心位置に基づく意味的に再構成された文書において選択したオブジェクトを判定する(8110)。いくつかの実施形態において、選択したオブジェクトは文字、単語、テキスト行、画像等であってもよい。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で上述したようなゾーングラフを含む。
次に処理8115は、段落又は図形オブジェクトに到達するまで文書階層を上位方向に進む(8115)。いくつかの実施形態において、文書階層は、コンテンツ情報を読み込まれたゾーングラフである。選択したオブジェクトが単語である場合、いくつかの実施形態において、処理はその単語から単語を含むテキスト行に、テキスト行を含む段落に向かって階層を進む。
処理は、識別したオブジェクトが段落であるかを判定する(8120)。識別したオブジェクトが段落でない場合、それは図形オブジェクトである。いくつかの実施形態において、図形オブジェクトは形状、画像又は結合グラフ(すなわち、複合図形オブジェクト)のいずれかであってもよい。識別したオブジェクトが図形オブジェクトである場合、処理は識別したオブジェクトの直立バウンディングボックスとして関心矩形(ROI)を規定し(8125)、以下に説明する8150に進む。
識別したオブジェクトが段落である場合、処理は、段落の親カラムの幅及び段落の高さを有する矩形を規定する(8135)。処理は、段落に対するあらゆる回転を矩形に適用する(8140)。いくつかの実施形態において、段落は、文書オブジェクトモデルの回転グループにある場合に回転される。いくつかの実施形態は、第II節で上述したように回転グループを規定する。
その後処理は、関心位置の上にある第1の特定の数の行及び関心位置の下にある第2の特定の数の行を含む直立バウンディングボックスとしてROIを規定する(8145)。この規定は、ユーザが関心位置に興味があり且つその関心位置の上下の特定の数の行のテキストを見たいだろうという仮定に基づく。
規定されたROIを使用して、処理8100は、ROIの幅及び高さが閲覧領域の幅及び高さより大きくならないようにズームする(8150)。
次に処理8100は、ROI(上記動作で規定されるような)が水平方向に表示領域に適合するかを判定する(8160)。ROIが水平方向に適合する場合、処理はROIを水平方向の中央に配置する(8165)。ROIが水平方向に適合しない場合、処理は関心位置を水平方向の中央に配置する(8170)。その後、ROIが垂直方向に表示領域に適合するかを判定する(8175)。ROIが垂直方向に適合する場合、処理はROIを垂直方向の中央に配置する(8180)。ROIが垂直方向に適合しない場合、処理は関心位置を垂直方向の中央に配置する(8185)。
関心位置及び/又は関心領域を中央に配置した後、処理は、関心位置を含むページの最下部又は最上部のエッジが表示領域にあるかを判定する(8187)。表示領域にある場合、1ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する(すなわち、最上部又は最下部の)エッジに移動する(8190)。その後、処理は、関心位置を含むページの右エッジ又は左エッジが表示領域にあるかを判定する(8192)。表示領域にある場合、1ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する(すなわち、右又は左)エッジに移動する(8195)。最後に処理は、上記変換の全てを適用された表示領域を再度描き(8197)、終了する。
B.意味的に再構成された文書の表示及びナビゲーション
いくつかの実施形態は、意味的に再構成された文書の表示及びナビゲーションを最適化する種々の方法を提供する。いくつかの実施形態において、表示及びナビゲーションは小型スクリーンデバイス(例えば、メディアプレーヤ、携帯電話等)に対して最適化される。
図82は、意味的に再構成された文書を表示するいくつかの実施形態の処理8200を概念的に示す。図示するように、処理は意味的に再構成された文書を受信する(8205)。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節で上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で説明されたようなゾーングラフを含む。
処理は、意味的に再構成された文書を小領域に分割する(8205)。いくつかの実施形態において、分割は文書に対する文書オブジェクトモデルの情報に基づく。いくつかの実施形態において、各小領域は順序づけされた単語シーケンス、関連付けられた図形オブジェクト及び他のネストされた小領域である。例えばネストは、枠で囲まれた例又はメモ、あるいは表のセルとして現れる。
処理8215は、小領域にわたる自然なフローに対応するように再構成文書の閲覧を適応させる。その後、処理は終了する。いくつかの実施形態において、適応は複数の方法で表せる。図83は、いくつかの実施形態のそのような1つの適応を示す。図83は、最初2つのカラム8310及び8315で意味的に再構成された文書の一部を表示しているデバイス8305を示す。いくつかの実施形態において、文書は最初2つのカラムを有していたが、他の例において、文書はデバイス8305で閲覧するように既に適応されている。
図83は、デバイス8305の向きを変更することを示す。デバイスは、向きを変更されたことを認識するための加速度計又は他のそのようなデバイスを含む。従って、ビューは、テキストが水平方向になるように90°回転する。しかし、同一の2つのカラム8310及び8315は表示されない。これらのカラムのテキストは、全てのテキストが同一サイズで依然として表示され且つ可読性が維持されるように3つのカラム8320〜8330に分割される。意味再構成処理により共に配置された文書オブジェクトモデルは、テキストの読み取り順序が第1のカラムで上から下に流れ且つその後第1のカラムの最上部に戻ることを示すため、これは可能である。
図84は、意味的に再構成された文書中の領域間をナビゲートするいくつかの実施形態の処理8400を概念的に示す。図示するように、処理8400は意味的に再構成された文書の領域を表示する(8405)。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で説明されたようなゾーングラフを含む。意味的に再構成された文書の領域は、いくつかの実施形態において文書オブジェクトモデルにより規定され、テキスト領域、図形等を含むことができる。
処理8400は、表示された領域の終端を通過した入力スクロールを受信する(8410)。いくつかの実施形態において、終端は領域の最下部(スクロールダウン)又は最上部(スクロールアップ)であってもよい。例えば、テキストのカラムの一部が表示される場合、処理は、カラムの最上部へのスクロールアップ又はカラムの終端へのスクロールダウンの入力を受信する。
処理は、文書の意味的に再構成された階層モデル(すなわち、文書オブジェクトモデル)を使用して文書のフローにおける次の領域をディスプレイに自動的に移動する(8415)。上述したように、処理は文書オブジェクトモデルを使用して文書中のテキスト及び関連した図形にわたるフローを認識できる。カラムの例に継続すると、ユーザがカラムの終端を通過してスクロールダウンした場合、いくつかの実施形態は次のカラムの最上部にジャンプする。いくつかの実施形態は、第2のカラムの最上部からのテキストを第1のカラムの最下部に付加し、テキストが全て1つのカラムであるかのようにスクロールし続ける。
図85は、小型スクリーンデバイスに対して意味的に再構成された文書のレイアウトを変更するいくつかの実施形態の処理8500を概念的に示す。図示するように、処理は特定のレイアウトを有する意味的に再構成された文書を受信する(8505)。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述されたように、文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で説明されたようなゾーングラフを含む。
図86は、各々がいくつかのテキスト行を含む特定の2カラムレイアウトを有する文書のページ8600を大画面に表示されたように又は意味再構成せず表示されるように示す。ページ8600の第1のカラムは6つのテキスト行及び第7のテキスト行の一部にわたる単語の集合8605を含む。
処理8500は、文書の階層モデル(すなわち、文書オブジェクトモデル)を使用して文書のフローを維持しつつ小型スクリーンデバイスで閲覧するためにレイアウトを変更する(8510)。処理は、小型スクリーンデバイスに少なくとも変更したレイアウトの一部を表示する(8515)。その後、処理は終了する。図86は、ページ8600の第1のカラムのテキスト8605を表示する小型スクリーンデバイス8610を示す。しかし、テキストは、小型クスリーンデバイスにおいて理想的な閲覧をするように適応されている。ユーザが目を細めて見る必要があるようにテキストを非常に小さく表示するのではなく、テキストサイズが拡大され、行毎の単語数が減少される。いくつかの実施形態において、スクロールダウンにより、ユーザは順番にテキストを読み続けられる。
いくつかの実施形態において、文書に対する文書オブジェクトモデルは、種々の状況、表示領域のサイズ及び表示領域のアスペクト比に対してレイアウトを適応的に表示する方法に関する提案を含む。これらの提案は、いくつかの実施形態において、再構成の結果に基づいて文書再構成処理中に生成されるか、ユーザ設定として設定されるか、あるいは文書の最初の作成者により設定される。いくつかの実施形態は、文書と共に再構成文書情報(例えば、文書オブジェクトモデル)を格納し、再構成文書と共にそのようなユーザ設定を格納できる。いくつかの実施形態は、XML形式で又はPDF(又は同様の形式の)文書のメタデータとして文書情報を格納する。
IX.レイアウトにわたるテキストの選択
文書の表示及びナビゲーションに加えて、テキストを選択する機能は、ユーザにとって非常に重要だろう。複数のレイアウトに分割されることになる複数の異なるテキストフロー(例えば、複数の記事)を含む複雑なページは、順番にテキストをインテリジェント選択しようとするアプリケーションにとって問題となる可能性がある。テキストを選択する(例えば、コピー及び貼り付けをするために)場合、文字、単語、テキスト行等の順序付けが保存されることが重要である。これは、カラム内の選択だけでなく、複数のカラム、レイアウト、ゾーン又はページに及ぶ選択を含む。
いくつかの実施形態は、意味的に再構成された文書内のテキストを選択する方法を提供する。いくつかの実施形態において、意味的に再構成された文書は、第II節〜第VI節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第II節で説明されたようなゾーングラフを含む。いくつかの実施形態の文書オブジェクトモデルは、レイアウト内のカラムの読み取り順序及び1つのレイアウトから次のレイアウトへのフロー等のレイアウト及びフロー情報を含む。
図87は、意味的に再構成された文書におけるテキストの選択を判定するいくつかの実施形態の処理8700を概念的に示す。図示するように、処理8700は文書に対するゾーン及びレイアウト情報を受信する(8705)。いくつかの実施形態において、ゾーン情報は、第II節に上述したように文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第IV節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
処理は、文書の一部を表示する(8710)。いくつかの実施形態において、文書は標準的な画面に元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第VIII節で上述した処理の1つを使用して適応的に文書を表示する(例えば、小型スクリーンデバイスに文書を表示する場合)。
処理8700は、選択の開始点を受信する(8715)。更に処理は、選択の終了点を受信する(8720)。いくつかの実施形態は、カーソル制御デバイス(例えば、マウス)、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスによりテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。同様の処理が他のカーソル制御デバイスを使用して実行可能である。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー(例えば、シフトキー及び矢印キー)を使用できる。
ドラッグ選択の場合、いくつかの実施形態は、マウスが最初にクリックされた点を開始点と規定し、マウスボタンが押下されている場合はカーソルの現在の点又はマウスボタンが解放された場合にはマウスボタンの解放点を終了点と規定する。ダブルクリック及びトリプルクリック、あるいは構造要素(例えば、段落、カラム等)を選択する他のそのような選択機構の場合、いくつかの実施形態は、構造要素のバウンディングボックスの左下の点を開始点と規定し、右上の点を終了点と規定する。いくつかの実施形態において、構造要素のバウンディングボックスは、印刷の範囲を結合したもののバウンディングボックスである。いくつかの実施形態において、文字に対する印刷の範囲は、左側のアンカ点から右側のアンカ点+幅(可能性として後続の文字によるカーニングにより調整される)に拡張され、アンカの上のアセンダからアンカの下のディセンダまで拡張される。
処理は、開始点、終了点、並びに文書のレイアウト及びフロー特性を使用して選択したテキストの小領域を判定する(8725)。その後、処理は終了する。種々の実施形態は、意味的に再構成された文書において開始及び終了点を与えられたその文書のどのレイアウトからどのテキストが選択されるかを厳密に判定する種々の詳細な処理を提供する。その一部の処理について以下に説明する。
図88は、意味的に再構成された文書のページ8801におけるテキストの選択のシーケンス8800を示す。ページ8801は、2つの主なカラム8805及び8810を含み、ページの中央に小さなコールアウト8815(異なるレイアウトである)を含む。シーケンス8800は、選択に対する開始点8820及び終了点8825を更に示す。これらの開始点及び終了点から結果として得られるテキストの選択8830は、その開始点から第1のカラムの最下部まで及び第2のカラムの最上部から終了点まで及ぶ。中央のコールアウト8815のテキストは、図示した実施形態においては選択されない。中央のコールアウト8815が選択8830に含まれるような選択処理の変形例が可能であることは当業者には理解されるだろう。
図89は、意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の詳細な処理8900を概念的に示す。図示するように、処理8900は、文書に対するゾーン及びレイアウトを受信する(8905)。いくつかの実施形態において、ゾーン情報は、第II節において上述したように、文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第IV節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
次に処理は、文書中の各カラムに読み取り順序を割り当てる(8910)。いくつかの実施形態は、各ページにおいてゼロの読み取り順序から開始する(すなわち、読み取られる第1のカラムに読み取り順序ゼロが割り当てられる)。いくつかの実施形態は、特定のレイアウト内で、各カラムに割り当てられた読み取り順序がレイアウトのカラムの順序と一貫している必要があり且つ特定のレイアウト外のカラムが特定のレイアウトの開始カラム及び終了カラムの読み取り順序の間の読み取り順序を有することができないという要件を課す。いくつかの実施形態において、読み取り順序が最初になるレイアウトに関する決定は任意である。他の実施形態は、ページの設計に基づいてレイアウトからレイアウトへの読み取り順序を識別する。
その後、処理は文書の一部を表示する(8915)。いくつかの実施形態において、文書は標準的な画面において元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第VIII節で上述した処理の1つを使用して文書を適応的に表示する(例えば、小型スクリーンデバイスに文書を表示する場合)。
処理は、テキスト選択のための開始点及び終了点を受信する(8920)。いくつかの実施形態は、カーソル制御デバイス(例えば、マウス)、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスでテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。他のカーソル制御デバイスを使用して同様の処理が実行できる。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー(例えば、シフトキー及び矢印キー)を使用できる。
次に処理は、開始点及び終了点が同一レイアウトにあるかを判定する(8925)。開始点及び終了点が同一レイアウトにない場合、処理は開始点と同一レイアウトにおいて新しい終了点を判定する(8930)。いくつかの実施形態は、ユーザが選択デバイスを第2のレイアウトに誤って移動させてしまった可能性が高いという仮定の下、及び選択が複数のレイアウトに及ぶのと対照的に単一のレイアウト内にある方がより確実に判定できるため、開始点と同一のレイアウトに終了点を移動する。いくつかの実施形態は、開始点から終了点までの線を規定し、線が開始点のレイアウトを離れる場所が新しい終了点として規定される。他の実施形態は、開始点のレイアウトへと、終了点を水平方向又は垂直方向に平行移動させる。
処理は、開始点が読み取り順序で終了点より前であるかを判定する(8935)。いくつかの実施形態において、開始点及び終了点が同一カラムにある場合、読み取り順序は、2つの点の高い方(及び同一の高さの場合は最も左側)の点が読み取り順序の早い点になるように判定される。開始点が読み取り順序で終了点より後である場合、処理は、開始点が読み取り順序で終了点より常に先になるように選択の開始点及び終了点を交換する(8940)。
次に処理8900は、開始点及び終了点が同一カラムにあるかを判定する(8945)。2つの点が同一カラムにある場合、処理は開始点から終了点までそのカラムのテキストを選択する(8950)。その後、処理は終了する。2つの点が同一カラムにない場合、処理は開始点から開始点を含むカラムの最下部まで、終了点を含むカラムの最上部から終了点まで及び間にある全てのカラムのテキストを選択する(8955)。その後、処理は終了する。いくつかの実施形態において、最初に選択した文字は開始点の文字又は開始点の右側の文字であり、最後に選択した文字は終了点の文字又は終了点の左側の文字である。いくつかの実施形態において、終了点が2つの行の間にある場合、上の全ての行が選択され、下の行は選択されない。テキストが選択されると、処理は終了する。
図90は、意味的に再構成された文書のページ9000を示す。ページ9000は、2つの主なカラム9005及び9010並びに中央のテキストボックス9015を含む。図示するように、これらはそれぞれ読み取り順序を割り当てられる(カラム9005は読み取り順序1を有し、カラム9010は読み取り順序2を有し、テキストボックス9015は読み取り順序3を有する)。図90は、選択の開始点9020及び終了点9025並びに開始点及び終了点により規定された線9030を更に示す。図91は、処理8900に従って開始点9020及び終了点9025により規定された選択9100を示す。線9030がテキストボックス9015を含むが、それは異なるレイアウトであるため、処理8900に従ってテキストは選択されない。選択9100は開始点から終了点にわたり、開始点の下にあるカラム9005の全ての行及び開始点の上にあるカラム9015の全ての行を選択する。
図92は、ページ9000、異なる選択の開始点9220及び終了点9225、並びに開始点及び終了点により規定された線9230を示す。図93は、処理8900のいくつかの実施形態に従って開始点9220及び終了点9225により規定された選択9300を示す。終了点9225が開始点9220と同一のレイアウトにないため、終了点は開始点9220と同一のレイアウトの点に移動される。図93に示した実施形態は、開始点と終了点との間に線を描き、線が開始点のレイアウトを離れる場所に終了点を移動する。選択9300は、終了点9225を点9305に移動した結果である。
図94は、意味的に再構成された文書中のテキストの選択を規定するいくつかの実施形態の別の詳細な処理9400を示す。いくつかの実施形態は、処理8900又は処理9400を実現する。他の実施形態により、ユーザは、テキストの選択が処理8900(選択を1つのレイアウトに制限する)を使用して行われるか又は処理9400(複数のレイアウトにわたる選択を可能にする)を使用して行われるかを選択できる(例えば、メニューオプションを介して)。
図示するように、処理9400は、文書に対するゾーン及びレイアウト情報を受信する(9405)。いくつかの実施形態において、ゾーン情報は、第II節で上述したように文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第IV節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
次に処理は、文書の各カラムに読み取り順序を割り当てる(9410)。いくつかの実施形態は、各ページにおいてゼロから開始する。いくつかの実施形態は、特定のレイアウト内で、各カラムに割り当てられた読み取り順序がレイアウトのカラムの順序と一貫している必要があり且つ特定のレイアウト外のカラムが特定のレイアウトの開始カラム及び終了カラムの読み取り順序の間の読み取り順序を有することができないという要件を課す。いくつかの実施形態において、読み取り順序で最初になるレイアウトに関する決定は任意である。他の実施形態は、ページの設計に基づいてレイアウトからレイアウトへの読み取り順序を識別しようとする。
その後、処理9400は文書の一部を表示する(9415)。いくつかの実施形態において、文書は標準的な画面において元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第VIII節で上述した処理の1つを使用して文書を適応的に表示する(例えば、小型スクリーンデバイスに文書を表示する場合)。
処理は、テキスト選択のための開始点及び終了点を受信する(9420)。いくつかの実施形態は、カーソル制御デバイス(例えば、マウス)、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスでテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。他のカーソル制御デバイスを使用して同様の処理が実行できる。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー(例えば、シフトキー及び矢印キー)を使用できる。
処理9400は、開始点と終了点との間の線を規定する(9425)。開始点又は終了点(あるいはその双方)がカラムにない(すなわち空白、図形等にある)場合、処理は、線が通過する最後のカラムのエッジに新しい開始点又は終了点(あるいはその双方)を規定する(9430)。いくつかの実施形態は、線がエッジを通過するカラムのエッジでこの点を規定する。他の実施形態は、新しい開始点又は終了点を規定するために開始点又は終了点をカラムに入るように水平方向に平行移動する。
処理は、開始点が読み取り順序で終了点より前であるかを判定する(9435)。いくつかの実施形態において、開始点及び終了点が同一カラムにある場合、読み取り順序は、2つの点の高い方(及び同一の高さの場合は最も左側)の点が読み取り順序の早い点になるように判定される。開始点が終了点より前である場合、以下に説明する9445に進む。開始点が読み取り順序で終了点より後である場合、処理は、開始点が読み取り順序で終了点より常に先になるように選択の開始点及び終了点を交換する(9440)。
次に処理は、開始点から開始点を含むカラムの終端まで、終了点を含むカラムの先頭から終了点まで及び読み取り順序で開始カラムと終了カラムとの間にある全てのカラムのテキストを選択する(9445)。その後、処理は終了する。いくつかの実施形態において、最初に選択した文字は開始点の文字又は開始点の右側の文字であり、最後に選択した文字は終了点の文字又は終了点の左側の文字である。いくつかの実施形態において、終了点が2つの行の間にある場合、上の全ての行が選択され、下の行は選択されない。
図95は、処理9400に従って開始点9020及び終了点9025(図90のページ9000における)により規定された選択9500を示す。開始点9020及び終了点9025(図90に示す)が同一レイアウトにあるため、中央のテキストボックス9015は、読み取り順序で終了点のカラムの後であるため選択されない。線9015に沿ってドラッグするユーザはボックス9015を通過し、その点において、カラム9010の全て及びテキストボックス9015の一部が選択される(以下の図96を参照)。しかし、カーソルがボックス9015を離れると、カーソルの場所(終了点)までのカラム9010の一部のみが選択される。
同様に、図96は、処理9400に従って開始点9220及び終了点9225(図92のページ9000における)により規定された選択9600を示す。終了点9225が開始点9220とは異なるレイアウトにあるため、カラム9005の殆ど及びカラム9010の全てを含む開始点のレイアウト全体が選択される。更にボックス9015のテキストは、終了点9225まで選択される。
図91及び図93と図95及び図96とは、処理8900又は処理9400を使用して利用可能な異なる選択オプションを示す。可能性として有益である他の結果を得るために文書のレイアウト及びフローを使用する他の選択処理が可能であることは、当業者には理解されるだろう。
X.効率的なクラスタ分析
上記の種々の節で説明したように、本発明のいくつかの実施形態は、文書再構成を実行するためにクラスタ分析を利用する。例えば、位置揃えガイドは密度クラスタリングを使用して識別され、結合グラフは境界クラスタリングを使用して識別され、文字間の空隙は差分クラスタリングを使用して単語及びセグメント空隙を識別するために使用される。しかし、クラスタ分析はメモリを非常に多く使用する可能性があるため、携帯電話又はメディアプレーヤ等のリソースの制限されたデバイスがクラスタ分析を実行するのは困難である可能性がある。
従って、本発明のいくつかの実施形態は、効率的なクラスタ分析を実行する方法を提供する。いくつかの実施形態において、効率的なクラスタ分析により、クラスタ分析はリソースの制限されたデバイス(例えば、ハンドヘルドデバイス)で実行できる。リソースの制限されたデバイスは、利用可能なメモリ、処理能力、その双方、あるいは他の演算リソースに関して制限される。
いくつかの実施形態において、クラスタ分析は、ソートされていない配列の指標を格納する間接的にソートされた配列を使用する。いくつかの実施形態は、異なる距離尺度毎にクラスタ分析を繰り返し且つ結果を比較することとは対照的に、データの最適な区分をより迅速に見つけられるように、複数の異なる距離尺度でデータを同時に区分するために間接的にソートされた配列を使用する。
図97は、クラスタ分析を使用して文書を意味的に再構成するいくつかの実施形態の処理9700を概念的に示す。図示するように、処理9700は、リソースを制限されたデバイスで文書を受信する(9705)。いくつかの実施形態において、デバイスは、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))又は他のハンドヘルドデバイスである。いくつかの実施形態において、文書は構造情報を含まないベクトル図形文書である。
処理は、リソースの制限されたデバイスで文書データに対して効率的なクラスタ分析を実行する(9710)。例えばいくつかの実施形態は、単語及びセグメント空隙を識別するために差分クラスタリングを実行し、位置揃えガイドを識別するために密度クラスタリングを実行し、複合図形を識別するために境界クラスタリングを実行する。
最後に、処理はクラスタ分析の結果に基づいてリソースの制限されたデバイスで文書を意味的に再構成する(9715)。その後、処理は終了する。図98は、文書9805がリソースの制限されたデバイス9810で意味的に再構成される際のいくつかの実施形態のシーケンス9800を示す。文書9805は、まず、座標を有する文字の集合9815に構文解析される(9801)。例えば、文字9820(「r」)は座標{X,Y}を有する。いくつかの実施形態は、図形オブジェクト(例えば、画像、形状等)を更に構文解析する。
次に、効率的なクラスタ分析は文書データに適用される(9802)。いくつかの実施形態において、これは、単語を識別するために差分クラスタリングを使用すること、ガイドを識別するために密度クラスタリングを使用すること及び結合するグラフを識別するために境界クラスタリングを使用することを含む。他の再構成処理が更に実行される(9803)。例えばいくつかの実施形態において、段落及びカラムが識別される。いくつかの実施形態において、クラスタ分析処理及び他の再構成処理は、実行順序に関する限り必ずしも差別されないことが当業者には理解されるだろう。効率的なクラスタ分析及び他の再構成処理の結果は、表示、ナビゲート等が行える意味的に再構成された文書9825である。
A.演算子の集合であるクラスタ分析
いくつかの実施形態は、実数(r,r,...,r)のシーケンスに適用されるいくつかの演算子に基づいてクラスタ分析を実行する(差分クラスタリングであるか、密度クラスタリングであるか、境界クラスタリングであるかに関わらず)。いくつかの実施形態は以下の演算子を含む。
・差分演算子D((r,r,...,r))=(r−r,r−r,...,r−rN−1)。いくつかの実施形態において、差分演算子Dは要素rの対毎のグループ化を規定する(すなわち、対{r,r}、{r,r}等に対する値を規定する)。
・ソート演算子S((r,r,...,r))=(s,s,...,s)。式中、(s,s,...,s)は、s≦s≦...≦sとなるような(r,r,...,r)の順列である。
・区分演算子P(g,(r,r,...,r))=((r,...,rK1),(rK1+1,...,rK2),...,(rKp+1,...,rKM),(rKM+1,...,r)。式中、Jが集合{K,...K}にある場合、rJ+1−r≧gである。いくつかの実施形態において、変数gは空隙最小値と呼ばれ、演算子Pは、2つの連続する値の差分が空隙最小値を上回る全ての場所でシーケンス(r,r,...,r)を重なり合わないサブシーケンスに区分する。
・サブシーケンスの隣接する対を結合して単一のサブシーケンスにするために区分されたシーケンス(演算子Pの出力等)に何度も繰り返し作用する結合演算子C。いくつかの実施形態において、隣接する対を結合する時期を判定するテストは領域に依存しない。
・領域に依存しないテストに基づいて一部のクラスタを除去するために区分されたシーケンスに作用するフィルタリング演算子F。第III節で説明した密度制約はFの使用の一例である。
差分クラスタリングのいくつかの実施形態は、上記演算子に関して実行される。同様に、境界クラスタリングは1次差分の代わりに広がり値を用いて差分クラスタリングを使用するため、境界クラスタリングのいくつかの実施形態は上記演算子によって実行される。
例えばいくつかの実施形態は、ソート演算子Sを入力データに適用し、その後、1次差分を生成するために差分演算子Dを適用する。S及びDは、2次差分(差分間の差分)を生成するために結果として得られたデータに適用される。2次差分はSによりソートされ、2次差分は2つの互いに素のサブシーケンス(レベル内差分及びより大きいレベル間差分)に分割される。
いくつかの実施形態において、分割することは、3次差分を取得するために2次差分にDを更に適用し、その後、3次差分を順序付けするためにSを適用することを含む。一般に2次差分における分割は、残りの3次差分より実質的に大きい3次差分が1つ存在する場合に行われる。いくつかの実施形態は領域別因子も評価する。
分割が確立されると、いくつかの実施形態は、各区分がクラスタリングのレベルを表すように順序付けされた第1の差分を区分するために最小の第2のレベル内差分と等しい空隙最小値を使用してPを適用する。いくつかの実施形態はこの区分にCを適用するが、いくつかの実施形態は適用しない。特定のレベルでデータをクラスタに区分するために、いくつかの実施形態は、特定のレベルで最小の差分に等しい空隙最小値を使用して(ソート済み)入力データにPを適用する。いくつかの実施形態は、この時点でもCを適用するが、クラスタ区分を結合するためにレベル区分とは異なる基準が使用される場合が多い。最後に、いくつかの実施形態は一部のクラスタを不適格であると判定するためにFを適用する。
密度クラスタリングのいくつかの実施形態は、上記演算子に関して実行される。例えばいくつかの実施形態は、1次差分を生成するために入力データにSを適用した後にDを適用し、差分をソートするためにSを適用する。差分dの各々に対して、いくつかの実施形態は、空隙最小値dを使用して演算子Pにより順序付けされた入力データを区分し、密度制約を使用して区分をフィルタリングする。フィルタリング後の各区分は、最適化計測値により測定され、最適な区分が最終的なクラスタリングとして選択される。いくつかの実施形態は、最大の差分から開始してソート済みシーケンス中のより小さい値に連続的に移動し、1次差分(空隙最小値である)中をループする。
いくつかの実施形態において、ループは、十分な情報が存在する場合に効率化のために早く終了できる。特にいくつかの実施形態は、連続する各区分が、以前にはクラスタの1つを有する区分であって2つのクラスタに分割されたものであろうことを認識する。いくつかの実施形態は、最小サイズ密度制約を満たさないクラスタがその後もそのような制約を満たすことがないため、それらのクラスタは廃棄されることを更に認識する。いくつかの実施形態において、区分の全てのクラスタが最小サイズを下回ると、ループは早く終了される。
B.クラスタ分析に対する効率的なデータ構造
いくつかの実施形態は、メモリ及び処理の節約を可能にする効率的なデータ構造を使用して効率的なクラスタ分析を実行する。例えばデータに対して新しい配列を生成するのではなくデータをソートする(例えば、演算子Sを入力データに適用する)時、いくつかの実施形態は、参照する値の順序でソートされた指標の配列をソートされていないデータの配列に規定する。これは、いくつかの実施形態において間接的にソートされた配列と呼ばれる。例では配列を使用するが、他のあらゆる適切なデータ構造が使用されてもよいことが当業者には理解されるだろう。
図99は、間接的にソートされた配列を使用してデータセットを区分するいくつかの実施形態の処理9900を概念的に示す。処理9900については図100と共に説明する。図100は、9つのデータ項目(0.00、7.43、17.14、25.46、26.60、30.35、34.25、39及び46.97)を含むデータセットの区分を示す。図99に示すように、処理9900は、クラスタリングされるデータ値を含むソート済み配列Aを受信する(9905)。いくつかの実施形態において、データは文書中の単語を識別するための又は位置揃えガイドを識別するための文字位置データである。図100を参照すると、データセットは指標A[0]〜A[8]を有するソート済み配列A 10010に格納される。
次に処理9900は、配列Aの連続した値の対を比較することにより配列Aの1次差分の配列D(A)を規定及び格納する(9910)。いくつかの実施形態において、配列D(A)は、第A項で説明した演算子Dを使用して生成される。図100は、データ間の1次差分を格納する配列D 10015を示す。例えば指標D[3]の値は、配列A 10010の指標A[4]の値から指標A[3]の値を減算したものである。
次に処理は、ソート関数を配列D(A)に適用することによりD(A)の指標の間接的にソートされた配列S(D(A))を規定及び格納する(9915)。いくつかの実施形態において、ソート関数は第A項で上述した演算子Sである。図100は、配列D 10015の値をソートする間接的にソートされた配列S(D)10020を示す。配列10020の第1の値(「3」)は、最小の1次差分(「1.14」)である配列D 10015の指標3を参照する。配列10020の第2の値は、2番目に最小の1次差分である配列D 10015の指標4を参照する。
その後、処理はデータを区分する際に使用されるクラスタ間の空隙の最小サイズを判定する(9920)。いくつかの実施形態において、これは、第A項で上述した区分演算子Pと共に使用する空隙最小値gである。最小空隙サイズは、いくつかの実施形態においてはユーザにより指定され、あるいは他の実施形態においては解決される問題に固有の値である。いくつかの実施形態は、データに基づく種々の空隙最小値が使用されるように複数の区分を使用する(例えば、密度クラスタリングの場合)。
次に処理9900は、配列S(D(A))に格納された連続した指標を使用してデータをクラスタに区分する(9925)。処理は区分を格納する(9930)。その後、処理は終了する。いくつかの実施形態は、間接的にソートされた配列に格納された指標を使用してデータを区分する。いくつかの実施形態において、空隙最小値(すなわち、有効な空隙最小値)より大きい最小の1次差分に対応するS(D(A))に格納された指標は、ソート済みデータ配列の指標に対応し、その後でデータが分割されるべきである。有効な空隙最小値の後の配列S(D(A))に格納された全ての指標は、空隙最小値より大きい空隙を表すため、ソート済みデータを分割すべき場所を示す。
図100は、この例では有効な空隙最小値が配列D 10015の指標7にある7.97であることを示す。従って、データの区分10025は、3つの場所(指標7、2及び1の後)で分割されるため、4つのクラスタを有する。いくつかの実施形態は、配列S(D(A))の単一の指標として区分を格納する。区分10025は、値5を有する指標10030として格納される。これは、有効な空隙最小値に対応する指標が配列10020の指標5に格納されるため、データを区分するための指標が配列10020の指標5以上に格納されることを示す。
上記処理9900は、クラスタ分析に対する複数の処理及びメモリ効率化を可能にする。第1に、実際のデータの10進数の値ではなく指標(整数である)をソート済み差分配列に格納することにより記憶空間を節約する。第2に、区分を複数の別個の配列として実際に格納する代わりに、区分は間接的にソートされた配列の指標を参照する単一の整数値として格納され、大きなデータの配列に対して評価されている区分が複数ある場合に実質的にメモリを節約できる。第3に、データを区分する指標は間接的にソートされた配列から迅速に読み取られ、これにより実質的に処理時間を節減する。
これらの効率化は、クラスタ分析を実行する多くの方法で活用される。図101は、複数の距離尺度でクラスタ分析を同時に実行するいくつかの実施形態の処理10100を概念的に示す。いくつかの実施形態において、処理10100は、処理9900により提供された効率化を利用する。図示するように、処理10100は、クラスタリングされるデータ値の間接的にソートされた差分配列を規定する(10105)。これは、図100の配列10020等の配列であり、いくつかの実施形態において、入力データ値をソートし、1次差分を利用し且つそれらをソートすることにより得られる。
処理10100は、いくつかの異なる距離尺度でデータ値を同時に区分する(10110)。いくつかの実施形態において、これは、複数の区分が種々の空隙最小値を使用してデータに対して生成されることを意味する。例えば密度クラスタリングの場合、いくつかの実施形態において、それぞれのありうる区分が生成される。いくつかの実施形態において、1次差分が間接的にソートされた配列でソートされるため、データに対する区分位置は間接的にソートされた配列に格納された指標として迅速に読み取られる。
次に処理は、間接的にソートされた配列の指標を参照する整数値として各区分を格納する(10115)。図100の整数値10030は、単一の整数値として区分を格納する一例である。処理は、最適な距離尺度(及び従って最適な区分)を判定する(10120)。例えばいくつかの実施形態は、第III節において密度クラスタリングに関して説明されたような最適化基準を使用する。更にいくつかの実施形態は、最適化基準に対して区分をテストする前に制約を使用して区分の一部のクラスタを削除する。
最後に、最適な距離尺度が判定されると、処理は解決される問題に対するクラスタの集合として最適な距離尺度から導出されたデータの区分を格納する(10125)。その後、処理は終了する。いくつかの実施形態において、クラスタの集合は、最適な集合であると判定されると、新しい配列として格納される。
上記説明は、区分演算子を繰り返し使用するために得られた効率化を示すが、間接的にソートされた配列及び区分を単一の値として格納することによるメモリ及び処理効率化は、クラスタ分析の他の側面にも適用可能である。例えば結合演算子は、いくつかの実施形態において同一の効率化を利用できる。
上述したように、いくつかの実施形態の結合演算子Cは、区分の隣接するクラスタを結合し、これを繰り返すことが可能である。隣接するクラスタの結合は、区分における分割を除去することとして表される。これらの分割の各々が間接的にソートされた配列の連続した指標のうちの1つに対応するため、クラスタを結合することは、シーケンスの特定の指標を不適格であると判定するものとして規定される。従って、結合演算子を区分に適用した結果は、的確な指標(すなわち、新しい区分が分割される指標)のシーケンス(例えば、配列)でありうる。いくつかの実施形態において、そのようなサブシーケンスを格納することは、結合されているクラスタのデータ中を直接移動するよりはるかに速い。
更に差分のクラスタを結合すること(これは差分のレベルの組み合わせであるのが効果的である)は、データクラスタ(差分クラスタとは対照的に)が選択された特定のレベルに対して迅速に読み取られる効率に悪影響を及ぼさない。差分のクラスタを結合した後でも、L番目以降の間接的にソートされた差分のクラスタの指標は、レベルLにおけるデータクラスタに対する分割点である。結合による変更は、間接的にソートされた第1の差分クラスタの各々が開始する場所を判定する間接的にソートされた第2の差分の数が減少することである。
フィルタリング演算子(制約に基づいてデータのクラスタを削除する)がデータのクラスタにのみ(差分のクラスタにではなく)適用されるため、データクラスタはフィルタリング演算子が適用される時には既に判定されているため、区分及び結合演算子の上記実現例を介して得られた効率化に干渉しない。
効率化は、第IV節で上述したように、差分クラスタリングで実行される第2のレベル内差分及び第2のレベル間差分への第2の差分の分割においても得られる。いくつかの実施形態において、分割点を判定するために使用された条件は、結果として得られるデータ及び第1の差分のクラスタリングに依存してもよい。従って、これらの条件の評価は、差分の区分(及びデータの区分)を判定する際の効率化から直接利益を得る。
例えば文書再構成に適用されるような差分クラスタリングの場合、第2の差分の分割は、1次差分に対応し且つそれぞれ1次差分より大きいテキスト行上の単語区切り及びセグメント区切り(例えば、カラム、タブ等の空隙)を判定するために使用される。いくつかの実施形態において、目的は、第1の差分の第2のクラスタの最小値が適用可能なフォントに対する予想される間隔文字の幅よりそれ程小さくならないように第2の差分を分割することである。更に、第2の目的は、データクラスタ(各データクラスタは単語である)が適用可能な言語の単語に対して標準的な平均サイズを有することである。潜在的な分割点は、結果として得られる第1の差分のクラスタ及びデータのクラスタがそれらの予想とどの程度異なるかに依存して比較的に低く評価される。いくつかの実施形態において、そのような評価は、最適な分割点を判定する式において第2の差分に直接適用された他の基準(例えば、分割の相対的なサイズ、分割位置のパーセンタイル及び分割時のパーセント値の増加)と組み合わせることができる。第2の差分における種々の分割は、上述した処理により更に効率的に繰り返しテストされる。
上述したクラスタ分析及び特定の効率化技術は、文書再構成における使用に関して主に説明されたが、それらは、集合と、集合の要素の対についての距離関数が存在し、集合と比較して明らかに小さい距離により分離された要素の部分集合を識別する必要性がある、あらゆる問題に適用可能であることが当業者には理解されるだろう。例えばクラスタ分析は、眼の移動、マウスの移動又はタッチスクリーン対話を測定することにより取得された位置データをクラスタリングことによりアプリケーション、ウェブページ又はビデオとのユーザ対話を分析することに適用される。別の例として、ラスタ画像(すなわち、ビットマップ)は、符号化するのに使用された色の数を減少することにより圧縮される。クラスタ分析は、色の各クラスタが単一の色(多くの場合、そのメンバの平均に等しい)により置換されるように縮小された色の集合を選択するために元の色の集合に対して使用される。更に別の例は、いくつかの画像認識技術(例えば、生体認証、光学文字認識、通貨検証等)及びラスタ画像のベクトル命令化が空間及び色座標軸により規定された距離空間の画素のクラスタリングに依存することである。最後の一例として、実験データ(例えば、科学データ又はビジネスデータ)のパターンは、軸が関心パラメータである空間にデータ点を描くことにより見つけられることが多い。クラスタ分析はこのデータに適用される。尚、所定のクラスタの全ての点は全ての関心パラメータのほぼ同一の値を有する。
C.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したクラスタ分析は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図102は、クラスタ分析を実行するいくつかの実施形態のクラスタ分析アプリケーション10200のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション(例えば、文書再構成アプリケーション)に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
クラスタ分析アプリケーション10200は、密度クラスタリングモジュール10205、差分クラスタリングモジュール10210及び境界クラスタリングモジュール10215を含む。アプリケーションは、格納モジュール10220、差分モジュール10225、区分モジュール10230、結合モジュール10235及びフィルタリングモジュール10240、並びにクラスタ分析記憶装置10245を更に含む。
図102は、文書コンテンツ10250を更に示す。クラスタ分析アプリケーション10200は、文書再構成と関連しないクラスタ分析を使用する他の処理に対して使用できることが当業者には理解されるだろう。密度クラスタリングモジュール10205、差分クラスタリングモジュール10210及び境界クラスタリングモジュール10215は全て、文書コンテンツ10250から情報(例えば、基本要素位置データ)を受信する。密度クラスタリングモジュール10205は、モジュール10220〜10240を部分的に使用して第III節で説明したように密度クラスタリングを実行する。差分クラスタリングモジュール10210は、モジュール10220〜10240を部分的に使用して第IV節で説明したように差分クラスタリング実行する。境界クラスタリングモジュール10215は、モジュール10220〜10240を部分的に使用して第VI節で説明したように境界クラスタリングを実行する。モジュール10205〜10215の出力は、文書コンテンツ10250に返される。
いくつかの実施形態において、5つのモジュール10220〜10240は、第A項で上述した5つの演算子と関連した動作を実行する。いくつかの実施形態のソートモジュール10220は、モジュール10205〜10215のうちの1つからデータ受信し、そのデータを順序付ける(例えば、最小値から最大値へ)。いくつかの実施形態の差分モジュール10225は、モジュール10205〜10215のうちの1つからデータを受信し、隣接するデータ間の差分を判定する。いくつかの実施形態の区分モジュール10235は、モジュール10205〜10215のうちの1つからデータを受信し、そのデータを複数の部分集合に区分する。いくつかの実施形態の結合モジュール10235は、モジュール10205〜10215のうちの1つから複数の部分集合としてデータを受信し、種々の条件に従って隣接する部分集合を結合する。いくつかの実施形態のフィルタリングモジュール10240は、いくつかの実施形態において区分されたデータシーケンスを受信し、種々の制約に基づいて区分を除去する。
モジュール10220〜10240は、クラスタ分析記憶装置10245にデータを格納し、モジュール10205〜10215にデータを返す。いくつかの実施形態において、ソートモジュール10220は、ソート済み指標配列(すなわち、間接的にソートされた配列)として結果をクラスタ分析記憶装置10245に格納する。いくつかの実施形態において、区分モジュールは、間接的にソートされた配列の指標を参照する単一の整数値として区分をクラスタ分析記憶装置10245に格納する。
XI.文書の構文解析及び分析に対する効率的なデータ構造
本発明のいくつかの実施形態は、文書のより効率的な構文解析及び分析を可能にする新しい方法及びデータ構造を提供する。いくつかの実施形態は、データが操作された時にデータの冗長なコピーを最小限にするアプリケーションプログラミングインタフェース(API)を提供する。いくつかの実施形態において、APIは、オペレーティングシステム、ライブラリ、サービス又はフレームワークがコンピュータプログラムにより行われた要求をサポートするために提供する関数、プロシージャ、メソッド、クラス又はプロトコルの集合である。いくつかの実施形態において、APIは静的にリンクされるが、他の実施形態において、APIは動的にリンクされる。
一般に、APIは内部データのコピーを返すか又は何らかの方法で操作される前にコピーされる必要がある内部データに対する読み取りのみのアクセス権を与える。これにより多くの層の冗長データが作成され、処理は遅くなり且つメモリが過度に消費される。いくつかの実施形態は、データ構造が性能及びメモリ消費に関して最適にされるのと同時にオブジェクトAPIがプログラマにとって最適にされるように、オブジェクトをそれらのデータと分離することによりその問題を解決する。いくつかの実施形態は、第II節〜第X節で説明したように文書を再構成するためにそのようなAPIを使用する。しかし、そのようなAPIは、構文解析された入力データのあらゆる種類の分析に使用できることが当業者には認識されるだろう。
いくつかの実施形態は、ユーザ(例えば、APIを使用するプログラマ又はソフトウェアアプリケーション)が明示的な制約なしでAPIのクラスメンバの独立した変更可能なコピーを有しているかのようにユーザに見えるAPIを提供する。換言すると、APIは、APIを介して返されたあらゆるオブジェクトがユーザにより完全に変更可能であるかのようにユーザには見える。しかし、いくつかの実施形態において、オブジェクトは、本当に必要な場合に自身を実際にコピーし、多くの場合、実際に使用されるメモリ量を最小限にするようにメモリを管理する。いくつかの実施形態のメモリ管理は、他のオブジェクトによるポインタの使用を常時監視する共有メモリオブジェクトを有するソート済みポインタ配列を使用することにより行われる。いくつかの実施形態において、複数のオブジェクトは全て、共有メモリオブジェクトを介して同一のポインタ配列を参照でき、これにより、分析の全ての段階においてデータのコピーを作成する場合と比較して実質的にメモリを節約できる。ポインタが以下の特定の特徴を説明するために使用されるが、あらゆる種類の参照データ構造を使用できることが当業者には理解されるだろう。
A.共有ポインタによる文書再構成
いくつかの実施形態は、文書を再構成するために上述したようなAPIを使用する。図103は、文書を効率的に再構成するいくつかの実施形態の処理10300を概念的に示す。処理10300については図104と共に説明する。図104は、文書10400が処理10300に従って構文解析及び分析される際のシーケンスを示す。
図103に示すように、処理10300は文書の一部を受信する(10305)。いくつかの実施形態において、文書の一部はページであり、処理はページ毎に動作する。他の実施形態において、文書の一部は、文書全体、文書の小領域又はページ上のゾーンである。処理は、文書の一部の文字を判定するために文書を構文解析し(10310)、構文解析されたデータに対する文字の配列を格納する(10315)。
図104は、文書10400がランダムに順序付けされた文字の配列10405に構文解析されることを示す。これらの例は配列を使用するが、あらゆる他の適切なデータ構造が使用されてもよいことが当業者には理解されるだろう。いくつかの実施形態において、文書を構文解析することは、文書を表すバイトストリームを読み取ること及びストリームをストリーム中の情報の利用可能な表現(文字配列等)に変更することを含む。いくつかの実施形態において、ストリームの文字はランダムに読み取られる。これは、配列10405の順序がランダムであるためである。いくつかの実施形態の文字は、座標及び/又はページ番号を有する。いくつかの実施形態において、各文字は、関連する座標又はページ番号の値を含むオブジェクトとして格納される。
処理10300は、文書の一部に対する文字を順序付けするソート済みポインタ配列を規定する(10320)。いくつかの実施形態において、ページに対する文字は上から下への第1のソート及び左から右への第2のソートによりソートされる。複数のページを文字配列に格納するいくつかの実施形態は、最初にページでソートする。図104は、ソート済み文字に対して規定されるポインタの配列10410を示す。第1のポインタ10411は、配列10405の英字「L」を指し示し、第2のポインタ10412は英字「o」を指し示す。いくつかの実施形態において、別個の新しい配列を規定及び格納するのではなく、初期の文字配列に対するポインタの配列を規定することによりメモリを節約する。
次に処理は、ストリングオブジェクトを操作する命令を受信する(10325)。いくつかの実施形態は、ストリングオブジェクトを、ソート済みポインタ配列における場所に対するポインタ、及びストリングにある文字数のカウントとして規定する。例えばページ全体のストリングオブジェクトは、ソート済みポインタ配列の第1のポインタ(左上の文字)を指し示し、ページ上の文字数のカウントを与える。
いくつかの実施形態において、命令は、ストリングの分割、ストリングの結合、文字の追加、文字の除去及び文字の再順序付けを含む。いくつかの実施形態において、これらの動作は、第II節〜第X節において上述したように文書を再構成し且つ再構成された文書を使用する処理の一部として呼び出される。例えば行がマージされるいくつかの例において、文字の順序は変更される必要がある。ゾーンが規定される場合、いくつかの実施形態はゾーン毎にストリングを規定する。これは、多くの場合、ストリングの分割、ストリングの結合又はその双方を含む。
命令を受信後、処理は、命令が既に割り当てられているポインタ(例えば、10320で規定されたソート済みポインタ配列)のみを使用して実行されるかを判定する(10330)。いくつかの実施形態において、ストリングを分割することは、既に割り当てられているポインタを使用することのみを含む。文書再構成の場合、いくつかの処理は、ストリングの分割(例えば、行識別、行分割等)のみを含む。更にソート済みポインタ配列において互いに隣り合うストリングを結合することは、いくつかの実施形態において既に割り当てられたポインタを使用することのみを含む。
図104は、文書10400において2つの行を識別した結果として配列10410の既に割り当てられたポインタを参照する2つのストリングオブジェクト10415及び10420を与える方法を示す。第1の行は、L10411に対するポインタを指し示し且つカウント15(第1の行の文字数)を有するストリングオブジェクト10415により規定される。第2の行は、s10413に対するポインタを指し示し且つカウント7(第2の行の文字数)を有するストリングオブジェクト10420により規定される。これらの行を規定するために、新しいポインタが割り当てられる必要はない。文書を再構成する際に関わる可能性のある数百又は数千の動作にわたり、大きなメモリ効率化及び処理時間効率化(配列が探索される必要がないため)が得られる。
同一のポインタ10410は、単語が識別される時に使用可能である。例えばストリングオブジェクト10425及び10430は文書10400の2つの単語を規定する。これらの単語は、ストリングオブジェクト10415及び10420と同一の開始ポインタを指し示すが、単語が行より短いため異なるカウントを有する。しかし、新しいポインタはこれらの単語を規定するために割り当てられる必要はなく、新しいストリングオブジェクトのみが必要である。文書全体に対して、数百又は数千の異なるストリングオブジェクトが全て同一のポインタ配列(ポインタ10410等)を参照してもよいため、新しいポインタ配列に対してメモリを繰り返し割り当てることによりメモリを非常に節約する。
受信した命令が既に割り当てられたポインタのみを使用して実行できる場合、処理10300は、メモリにおいて既に割り当てられている共有ポインタを使用して命令を実行する(10335)。その後、以下に説明する10355に進む。既に割り当てられたポインタのみを使用して実行できない場合、処理は、命令が新しいポインタの集合を使用して実行できるかを判定する(10340)。
いくつかの実施形態は、既に割り当てられているポインタのみを使用して実行できない場合に新しいポインタを割り当てるが、命令は文字配列の直接のデータ操作を要求しない。いくつかの実施形態において、共有されたポインタ配列において互いに隣り合っていないストリングを結合することは、結合されたストリングに対するストリングオブジェクトがソート済み配列の1つのポインタを指し示し且つ配列において前に進むことにより表されないため新しいポインタの割り当てを必要とする。例えば図104を参照すると、ある動作が第1の行を第2の行の終端に付加することを呼び出した場合、付加された行に対するストリングオブジェクトは配列10410を指し示せない。その代わり、新しいポインタ配列が要求された順序で割り当てられる必要がある。
受信した命令が新しいポインタの割り当てを使用して実行できる場合、処理は文字配列に対する新しいポインタの割り当てを使用することにより命令を実行する(10345)。その後、以下に説明する10355に進む。新しいポインタの割り当てを使用して実行できない場合、処理は文字配列の一部又は全体の新しいコピーを使用して命令を実行する(10350)。文書データを直接編集すること(すなわち、ユーザが単語を文書に追加すること)は、いくつかの実施形態において、文字の実際の配列を操作せずに実行できない命令の一例である。しかし、ユーザが単語を文書に追加することは、完全に新しいコピーを必要とせず、文字を配列に追加し、文字に対する新しいポインタ配列を規定することにより処理される。同様に、テキスト行をマージすることは、1つのテキスト行の文字が次のテキスト行に挿入され、それにより互いに対する文字の順序が変更されるため、多くの場合に新しいポインタ配列を必要とする。
次に処理は、ストリングオブジェクトを操作する更なる命令が受信されたかを判定する(10355)。更なる命令が受信された場合、上述した10330に進み、最も効率的な命令の実行方法を判定する。更なる命令が受信されない場合、処理は終了する。この処理は、共有データを使用して得られるメモリ及び処理の節約の階層を示す。元のデータは種々のポインタ配列間で共有され、各ポインタ配列は多くのストリングオブジェクト間で共有される。受信した命令セット毎(APIへの呼び出し毎)に、最も効率的な命令の実行方法が使用される。理想的には、命令は新しいポインタの作成を要求せず、新しいストリングオブジェクトのみが作成される必要がある。これが不可能である場合、新しい文字配列を作成するのとは対照的に元のデータを共有する新しいポインタを作成することにより依然としてメモリを節約できる。
処理10300についてはストリングオブジェクト及び特に文書再構成のためのストリングオブジェクトを参照して説明したが、データをコピーするのとは対照的に、既に割り当てられたポインタを使用し且つ新しいポインタを割り当てることを好むことを示すことにより得られた効率化は、メモリ及び処理時間が限定される広範な問題に適用可能であることが当業者には認識されるだろう。
B.共有メモリオブジェクト
いくつかの実施形態において、各ポインタ配列は、配列のポインタの使用を管理する共有メモリオブジェクトを有する。いくつかの実施形態において、特定のポインタ配列に対する共有メモリオブジェクトは、特定の配列を参照するデータオブジェクト(例えば、ストリングオブジェクト)を常時監視する。いくつかの実施形態において、共有メモリオブジェクトは、ポインタ配列が開始するメモリの場所に関しても常時監視する。
図105は、データが本発明のいくつかの実施形態に従って格納される方法を示す。図105は、データ配列10505、ソート済みポインタ配列10510、共有メモリオブジェクト10515及びデータオブジェクト10520を示す。データ配列10505は、いくつかの実施形態においてランダムに順序付けされた構文解析済みデータ(例えば、構文解析された文書の文字データ)である。
ソート済みポインタ配列10510は、データ配列10505に対するポインタ配列である。いくつかの実施形態において、各ポインタは配列10505のデータ項目を指し示す。ポインタは、データのソートに基づく順序で配置される。例えば文書の場合、いくつかの実施形態において、ポインタは指し示す文字の読み取り順序で配置される。
データオブジェクト10520の各々は、ポインタ配列10510における場所に対する参照及びカウントを含む。特定のデータオブジェクトに対するポインタ配列10510における場所は、データオブジェクトが参照する第1のデータを指し示すポインタである。例えばデータオブジェクトが単語「Array」に対するストリングオブジェクトである場合、データオブジェクトは、「A」を指し示すポインタが見つけられるポインタ配列における場所を指定する。データオブジェクトは、カウント5を更に含む。
図105は、共有メモリオブジェクト10515を更に示す。いくつかの実施形態において、共有メモリオブジェクトはデータオブジェクト10520によりソート済み配列10510の使用を管理する。共有メモリオブジェクト10515は、配列10510を参照するデータオブジェクト10520の数のカウントを保持する。
いくつかの実施形態は、第1のデータオブジェクト(配列の開始を指し示し且つ配列全体のカウントを有する)が規定された場合、共有メモリオブジェクト10515を規定しない。しかし、第2のデータオブジェクトが配列を指し示すと、配列は共有され、共有メモリオブジェクト10515は、個々のオブジェクトが配列を共有するデータオブジェクトの数及び配列の開始場所の情報を有さないため、この情報を常時監視するように規定される。従って、いくつかの実施形態において、データオブジェクトがポインタ配列を指し示すように設定された時にオブジェクトが存在しない場合、データオブジェクト10520は、ポインタ配列に対する共有メモリオブジェクトをインスタンス化するために関数を呼び出せる。オブジェクト10520の数が0になった場合、共有メモリオブジェクト10515は、ポインタ10510の割り当てを解除し、メモリから除去される。
いくつかの実施形態において、ポインタ配列10510を共有する個々のデータオブジェクト10520は、他のオブジェクト10520も配列10510のポインタを使用しているという知識を有さない。更にオブジェクト10520は、配列10510の開始又は終了の知識を有さず、配列10510のポイントを単に参照する。しかし、いくつかの実施形態の共有メモリオブジェクト10520は、メモリにおける配列の開始場所を認識している。
C.ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したAPIは、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図106は、第A項及び第B項で説明した効率化技術を使用しつつ文書再構成処理を実行するAPI10600を概念的に示す。
API10600は、幾何学的分析モジュール10610、文書再構成モジュール10615、並びに表示及び対話モジュール10620を含む。いくつかの実施形態において、API10600は、外部アプリケーション10605により使用されるために提供される関数、プロシージャ、メソッド、クラス及び/又はプロトコルの集合である。
API10600は、外部アプリケーション10605によりパブリックメソッドに対する要求(例えば、関数呼び出し)を受信する。いくつかの実施形態において、複数の外部アプリケーションが存在する。例えばAPIがハンドヘルドデバイス(例えば、iPhone(登録商標))に提供される場合、外部アプリケーションはPDFビューア(例えば、電子書籍リーダ)、ワードプロセッサ(例えば、Microsoft Word、Apple Pages等)、ウェブブラウザ(例えば、Microsoft Internet Explorer、Apple Safari、Mozilla Firefox等)等であってもよい。
API10600により提供される種々のパブリックメソッドは、幾何学的分析及び文書再構成を実行したり、文書オブジェクトモデルにアクセスしたりする種々のプライベートメソッドを呼び出す。データ(例えば、パーサにより最初に識別される基本要素)は、文書再構成データ10625に格納される。外部アプリケーションは、データにアクセスできるように見える(例えば、単語、テキスト行等を識別するために文字を操作している間)が、実際には、第A項及び第B項において上述したように、APIを介して外部アプリケーションにより操作されるクラスメンバはデータに対する参照の格納のみを行うようにクラスメンバを規定することにより実際のデータから分離される。
XII.全体のソフトウェアアーキテクチャ
いくつかの実施形態において、上述した処理は、コンピュータ、メディアプレーヤ、携帯電話(例えば、iPhone(登録商標))、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する(又はコンピュータ可読媒体に格納された)ソフトウェアとして実現される。図107は、文書の再構成及び表示並びに文書との対話を行ういくつかの実施形態のアプリケーション10700のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーションに組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。更に他の実施形態において、図107に示したモジュールは複数のアプリケーション間で分割される。例えばいくつかの実施形態において、1つのアプリケーションは文書オブジェクトモデルを生成し、別のアプリケーションは文書を表示し且つ文書オブジェクトモデルと対話する(以下の完全な説明を参照)。
アプリケーション10700は、パーサ10710、プロファイリングモジュール10720、意味再構成モジュール10730、クラスタ分析モジュール10740、ユーザ対話モジュール10750及び表示適応モジュール10760を含む。アプリケーション10700は、文書データ記憶装置10715、プロファイル記憶装置10725、クラスタ分析記憶装置10735及び文書オブジェクトモジュール記憶装置10745を更に含む。図107は、カーソルコントローラドライバ10775、キーボードドライブ10780及び表示モジュール10785を含むオペレーティングシステム10770を更に示す。いくつかの実施形態において、図示するように、合成アプリケーションがオペレーティングシステムとは別個のスタンドアロンアプリケーションである場合でも、カーソルコントローラドライバ10775、キーボードドライバ10780及び/又は表示モジュール10785はオペレーティングシステム10770の一部である。
図示するように、パーサ10710は文書10705を受信する。いくつかの実施形態において、文書はベクトル図形(例えば、PDF)を含むフォーマットされていない文書である。パーサ10710は、文書情報を構文解析し、構文解析されたデータを文書データ記憶装置10715に格納する。いくつかの実施形態において、構文解析されたテキストデータは上記の第XI節で説明したように文字配列として格納される。
意味再構成モジュール10730は、文書データ10715から文書オブジェクトモデル10745を生成するために文書を再構成する。意味再構成モジュール10730は、ゾーン分析、ガイド及びのど識別、レイアウト及びフロー識別、表識別及び結合グラフ識別のような処理を実行する。
意味再構成モジュールの出力は、プロファイリングモジュール10720に送出される。プロファイリングモジュール10720は、階層プロファイルをマッチングするプロファイルマッチングエンジンを含み、第VII節で説明したように再構成の実行に関する進め方を意味再構成モジュールに通知する。
意味再構成モジュール10710は、クラスタ分析モジュール10740に情報を更に渡す。いくつかの実施形態において、クラスタ分析モジュール10740は、ガイド識別のための密度クラスタリング、単語及びセグメント空隙情報のための差分クラスタリング及び結合すべきグラフを識別するための境界クラスタリングを実行する。クラスタ分析モジュールは、第X節で説明したように配列及び指標を格納するためにクラスタ分析記憶装置10735を使用する。クラスタ分析の結果は、意味再構成モジュール10730に返される。
意味再構成モジュール10730は、文書を再構成すると、文書オブジェクトモデル10745を格納する。文書オブジェクトモデル10745は、第II節で説明したコンテンツを読み込んだゾーングラフ等の意味的に再構成された文書に関する全ての情報を格納する。
表示適応モジュール10760は、文書の表示方法を判定するために文書オブジェクトモデル10745を使用する。例えばいくつかの実施形態の表示適応モジュールは、小型スクリーンデバイスに文書を表示するために第VIII節で説明した処理を実行する。表示適応モジュール10760は、画面上の実際の表示を管理する表示モジュール10785に表示情報を渡す。
ユーザ対話モジュール10750は、カーソルコントローラドライバ10775及びキーボードドライバ10780から入力情報を受信する。入力情報は、第IX節で上述したような選択及び文書の編集等の文書に対する動作を実行するようにユーザ対話モジュール10750に指示する。文書が編集された場合、文書オブジェクトモデル10745は編集を反映するように変更される必要がある。
いくつかの実施形態において、上述のモジュール又は他のモジュールの一部により実行された処理の結果は電子記憶装置に格納される(例えば、文書オブジェクトモデルの一部として)。文書オブジェクトモデルは、ユーザが文書をレビューでき且つ/又は文書と対話できる(例えば、タッチスクリーン、カーソル制御デバイス等を介して)ように電子表示装置(例えば、ハンドヘルドデバイス、コンピュータ画面等)に文書を表示するために使用される。
図108は、上述したアプリケーション10700等のコンピュータプログラムを格納するコンピュータ可読媒体を製造するいくつかの実施形態の処理10800を概念的に示す。いくつかの実施形態において、コンピュータ可読媒体は配布可能な不揮発性電子記憶媒体(例えば、CD−ROM、ハードディスク、デバイスファームウェア等)である。
図示するように、処理10800は、図1のモジュール110等の幾何学的分析モジュールを規定する(10805)により開始する。そのようなモジュールの更に詳細な例は、図17の境界識別モジュール1705、1710の区間及び交点識別モジュール、ゾーン識別モジュール1715及びゾーングラフビルダ1720を含む。いくつかの実施形態において、これらのモジュールは、基本要素の集合間の境界線を識別し、境界線により制限された領域を識別する。いくつかの実施形態において、モジュールは、図形基本要素を潜在的な境界線として識別し、潜在的な境界線の一部を実際の境界線として識別し、ゾーンを識別するために実際の境界線を横断し、且つ識別されたゾーンにより階層文書モジュールを規定する。
処理は、図1のモジュール120等の文書再構成モジュールを規定する(10810)。いくつかの実施形態において、図107の意味再構成モジュール10730は、幾何学的分析モジュール及び文書再構成モジュールの双方を含むが、他の実施形態では一方のみを含む。
処理10800は、プロファイル10725等の階層プロファイルの集合を規定する(10815)。次に処理は、クラスタ分析を実行するモジュールの集合を規定する(10820)。クラスタ分析モジュール10740は、そのようなモジュールの一例である。処理は、表示適応モジュール0760等の文書を適応的に表示するモジュールを規定する(10825)。次に処理10800は、モジュール10750等の文書とのユーザ対話を受信するモジュールを規定する(10830)。
更に、処理は他のモジュールを規定する(10835)。例えばいくつかの実施形態は、入力文書(例えば、アプリケーションにより受信された文書)を構文解析するモジュール又は種々の文書再構成動作を実行する時にメモリ及び処理時間を効率的に使用するモジュールを含む。
処理10800は、コンピュータ可読記憶媒体にアプリケーションを格納する(10840)。上述したように、いくつかの実施形態において、コンピュータ可読記憶媒体は配布可能なCD−ROMである。いくつかの実施形態において、媒体は、固体デバイス、ハードディスク、CD−ROM又は他の不揮発性コンピュータ可読記憶媒体のうちの1つ以上である。いくつかの実施形態において、媒体はハンドヘルドデバイス(例えば、iPhone(登録商標))のファームウェアであってもよい。
処理10800により規定された種々の要素は、本発明のいくつかの実施形態を組み込むアプリケーションに対して規定され且つコンピュータ可読記憶媒体に格納されるモジュール、規則及び処理を網羅していないことが当業者には理解されるだろう。更に、いくつかの実施形態が処理10800により規定された要素の全てではなくそれら要素の部分集合のみを含むことが同様に可能である。
また、処理10800は概念上の処理であり、実際の実現例は異なってもよい。例えば種々の実施形態は、異なる順序で種々の要素を規定してもよく、いくつかの要素を1つの動作で規定してもよく、単一の要素の既定を複数の動作に分解してもよい。更に処理10800は、いくつかのサブ処理として実現されてもよく、あるいはマクロ処理の他の動作と組み合わされてもよい。
XIII.コンピュータシステム
上述した特徴及びアプリケーションの多くがコンピュータ読み取り可能な記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令セットとして指定されるソフトウェア処理として実現される。これらの命令は、1つ以上の計算要素(プロセッサ又はASIC及びFPGAのような他の計算要素等)により実行される場合、命令で指示された動作を計算要素に実行させる。コンピュータは広義の意味を有し、プロセッサを有するあらゆる電子デバイスを含むことができる。コンピュータ可読媒体の例は、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等を含むが、それらに限定されない。コンピュータ可読媒体は、無線で又は有線接続を介して通過する搬送波及び電子信号を含まない。
本明細書において、「ソフトウェア」という用語は、プロセッサにより処理するためにメモリに読み込まれる磁気記憶装置に格納されたアプリケーション又は読み取り専用メモリに常駐するファームウェアを含むことを意図する。いくつかの実施形態において、複数のソフトウェア発明は、別個のソフトウェア発明のままであるがより大きいプログラムの小部分として実現できる。いくつかの実施形態において、複数のソフトウェア発明は別個のプログラムとしても実現できる。最後に、ここで説明されるソフトウェア発明を共に実現する別個のプログラムのあらゆる組み合わせが本発明の範囲内である。いくつかの実施形態において、ソフトウェアプログラムは、1つ以上のコンピュータシステムで動作するためにインストールされた時にソフトウェアプログラムの動作を実行する1つ以上の特定のマシン実現例を規定する。
図109は、本発明のいくつかの実施形態を実現するコンピュータシステムを示す。そのようなコンピュータシステムは、種々の他の種類のコンピュータ可読媒体に対する種々のコンピュータ可読媒体及びインタフェースを含む。コンピュータシステム10900は、バス10905、プロセッサ10910、グラフィックス処理装置(GPU)10920、システムメモリ10925、読み出し専用メモリ10930、永続的記憶装置10935、入力デバイス10940及び出力デバイス10945を含む。
バス10905は、コンピュータシステム10900の複数の内部デバイスを通信可能に接続する全てのシステム、周辺装置及びチップセットバスを統括的に表す。例えばバス10905は、プロセッサ10910を読み出し専用メモリ10930、GPU10920、システムメモリ10925及び永続的記憶装置10935と通信可能に接続する。
プロセッサ10910は、本発明の処理を実行するために実行する命令及び処理するデータを種々のメモリユニットから検索する。いくつかの実施形態において、プロセッサは、フィールドプログラマブルゲートアレイ(FPGA)、ASIC又は命令を実行する種々の他の電子構成要素を含む。いくつかの命令は、GPU10920に渡されて実行される。GPU10920は、種々の計算の負担を軽減でき、あるいはプロセッサ10910により提供された画像処理を補完できる。いくつかの実施形態において、そのような機能性は、CoreImageのカーネルシェーディング言語を使用して提供される。
読み出し専用メモリ(ROM)10930は、プロセッサ10910により必要とされる静的データ及び命令並びにコンピュータシステムの他のモジュールを格納する。一方、永続的記憶装置10935は読み出し/書き込みメモリ素子である。この素子は、コンピュータシステム10900がオフの場合にも命令及びデータを格納する不揮発性メモリユニットである。本発明のいくつかの実施形態は、大容量記憶装置(磁気ディスク又は光ディスク、並びにそれに対応するディスクドライブ等)を永続的記憶装置10935として使用する。
他の実施形態は、取り外し可能記憶装置(フロッピー(登録商標)ディスク、フラッシュドライブ又はZIP(登録商標)ディスク、並びにそれに対応するディスクドライブ等)を永続的記憶装置として使用する。永続的記憶装置10935と同様に、システムメモリ10925は読み出し/書き込みメモリ素子である。しかし、記憶装置10935とは異なり、システムメモリはランダムアクセスメモリ等の読み出し/書き込み揮発性メモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態において、本発明の処理は、システムメモリ10925、永続的記憶装置10935及び/又は読み出し専用メモリ10930に格納される。例えば種々のメモリユニットは、いくつかの実施形態に従ってマルチメディアアイテムを処理する命令を含む。プロセッサ10910は、いくつかの実施形態の処理を実行するために実行する命令及び処理するデータをそれらの種々のメモリユニットから検索する。
バス10905は、入力デバイス10940及び出力デバイス10945に更に接続する。入力デバイスにより、ユーザはコンピュータシステムに対して情報を通信でき且つコマンドを選択できる。入力デバイス10940は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイスとも呼ばれる)を含む。出力デバイス10945は、コンピュータシステムにより生成された画像を表示する。出力デバイスは、ブラウン管(CRT)又は液晶ディスプレイ(LCD)等の表示装置及びプリンタを含む。
最後に図109に示すように、バス10905はネットワークアダプタ(不図示)を介してコンピュータ10900をネットワーク10965に結合する。このように、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)又はイントラネット等)、あるいはインターネット等のネットワークのネットワークの一部であってもよい。コンピュータシステム10900のいずれか又は全ての構成要素は、本発明と共に使用されてもよい。
いくつかの実施形態は、機械可読媒体又はコンピュータ可読媒体(あるいはコンピュータ可読記憶媒体、機械可読媒体又は機械可読記憶媒体と呼ばれる)にコンピュータプログラム命令を格納するマイクロプロセッサ、記憶装置及びメモリ等の電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例は、RAM、ROM、読み出し専用コンパクトディスク(CD−ROM)、記録可能コンパクトディスク(CD−R)、書き換え可能コンパクトディスク(CD−RW)、読み出し専用デジタル汎用ディスク(例えば、DVD−ROM、2層DVD−ROM)、種々の記録可能/書き換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気及び/又は固体ハードドライブ、読み出し専用及び記録可能ブルーレイディスク、UDO(Ultra Density Optical)ディスク、他のあらゆる光学媒体又は磁気媒体、並びにフロッピー(登録商標)ディスクを含む。コンピュータ可読媒体は、少なくとも1つのプロセッサにより実行可能なコンピュータプログラムを格納してもよく、種々の動作を実行するための命令セットを含む。命令セットを格納及び実行するように構成されたハードウェアデバイスの例は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ROM及びRAMデバイスを含むがそれらに限定されない。コンピュータプログラム又はコンピュータコードの例は、コンパイラにより生成されるような機械コード、並びにインタプリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサにより実行される高レベルコードを含むファイルを含む。
本明細書及び本出願の請求の範囲で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」という用語は全て電子デバイス又は他の技術デバイスを示す。これらの用語は、ユーザ又はユーザのグループを除外する。詳細に記す目的で、表示という用語は、電子デバイスに表示することを意味する。本明細書及び本出願の請求の範囲で使用されるように、「コンピュータ可読媒体」という用語は、コンピュータにより読み取り可能な形態で情報を格納する有形の物理オブジェクトにのみ限定される。この用語は、あらゆる無線信号、有線でダウンロードされた信号及び他のあらゆる一時的な信号を除外する。
本発明は、多くの特定の詳細を参照して説明されたが、本発明の趣旨の範囲から逸脱せずに他の特定の形態で具体化できることが当業者には理解されるだろう。例えばいくつかの実施形態は、各ページが単一の画像として規定される文書を受信する。しかし、いくつかの実施形態は、グリフ及び場合によっては形状(例えば、線、矩形等)を認識するために文書に対して光学文字認識を実行でき、その後文書が再構成される。更にいくつかの実施形態は、特定の基本要素に対して特定の幾何学的分析及び文書再構成動作を実行するものとして説明された。しかし、動作は他の種類の基本要素にも適用できることが当業者には認識されるだろう。例えばガイド識別は、垂直境界線を形成するグリフの関連付けを識別するため(すなわち、グリフを関連付けるため又はグリフの関連付けを規定するため)に密度クラスタリングを使用することを含むものとして説明される。しかし、同様の動作は、境界線(例えば、破線)を形成する基本形状のクラスタを探すために適用される。
更に、多くの図面(図3、図8、図9、図12、図15、図18、図20、図21、図25、図26、図31、図33、図36、図38、図40、図42、図48、図53、図55、図57、図62、図64、図66、図68、図71、図72、図78、図80〜図82、図84、図85、図87、図89、図94、図97、図99、図101、図103及び図108)は処理を概念的に示す。これらの処理の特定の動作は、図示し且つ説明した厳密な順序で実行されなくてもよい。特定の動作は、1つの連続した一連の動作で実行されなくてもよく、種々の特定の動作が種々の実施形態において実行されてもよい。更に処理は、いくつかのサブ処理を使用して又はより大きなマクロ処理の一部として実現される。従って、本発明は上述の例示した詳細により限定されず、添付の請求の範囲によって規定されることが当業者には理解されるだろう。

Claims (237)

  1. 少なくとも1つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記文書の境界基本要素を識別する命令セットと、
    前記境界基本要素に基づいて他の基本要素の集合間の境界線を識別する命令セットと、
    前記境界線により限定された前記文書の領域を識別する命令セットと、
    前記領域及び前記基本要素に基づいて構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  2. 構造化文書を規定する前記命令セットは、少なくとも2つの識別された領域間の階層関係を識別する命令セットを含む請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  3. 全体が第2の領域内にある第1の領域は前記第2の領域の子である請求項2に記載のコンピュータ読み取り可能な記憶媒体。
  4. 2つの識別された領域間の階層関係を識別する前記命令セットは、識別された各領域が階層文書オブジェクトモデルのノードである前記文書オブジェクトモデルを規定する命令セットを含む請求項2に記載のコンピュータ読み取り可能な記憶媒体。
  5. 前記構造化文書を規定する前記命令セットは、前記他の基本要素から規定された少なくとも1つの構造要素を前記文書オブジェクトモデルに読み込む命令セットを含む請求項4に記載のコンピュータ読み取り可能な記憶媒体。
  6. 境界線は、前記文書の特定の境界基本要素の場所に基づいて識別される請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  7. 前記特定の境界基本要素は直線又は直線を近似する形状である請求項6に記載のコンピュータ読み取り可能な記憶媒体。
  8. 前記領域を識別する前記命令セットは、
    前記境界線が他の境界線と交差するかに基づいて実際に領域に境界をつける境界線の集合を選択する命令セットと、
    領域を識別するために前記境界線の部分集合を横断する命令セットとを含む請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  9. 境界基本要素を識別する前記命令セットは、直線又は直線を近似する形状である基本要素及び基本要素のグループを識別する命令セットを含み、他の基本要素の集合間の境界線を識別する前記命令セットは、
    前記境界基本要素間の交点を識別する命令セットと、
    少なくとも2つの他の境界基本要素と交差しない境界基本要素を除去する命令セットとを含む請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  10. 前記境界線により限定された領域を識別する前記命令セットは、境界線の閉ループを識別するために前記識別された境界線を横断する命令セットを含み、各閉ループは領域である請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  11. 前記コンピュータプログラムは、前記文書に対する構造要素を規定するために前記識別された領域を使用する命令セットを更に含み、前記構造化文書は前記構造要素に更に基づく請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  12. 構造要素を規定するために前記識別された領域を使用する前記命令セットは、特定の各領域の基本要素の集合間の関連付けを行うために前記特定の領域を別個に分析する命令セットを含む請求項11に記載のコンピュータ読み取り可能な記憶媒体。
  13. (i)複数の基本要素を含む文書を分析し、(ii)前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
    前記文書の境界基本要素を識別するモジュールを既定することと、
    前記境界基本要素に基づいて他の基本要素の集合間の境界線を識別するモジュールを規定することと、
    前記境界線により限定された前記文書の領域を識別するモジュールを規定することと、
    前記構造要素を指定するために前記識別された境界線及び領域を使用するモジュールを規定することとを含む方法。
  14. 前記領域、前記基本要素及び前記構造要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項13に記載の方法。
  15. 前記文書は非構造化文書である請求項13に記載の方法。
  16. 少なくとも1つのプロセッサにより実行された時に複数のグリフ及び複数の図形要素を含む複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記複数の図形要素を潜在的な境界線として識別する命令セットと、
    前記潜在的な境界線の一部を実際の境界線として識別する命令セットと、
    1つ以上のゾーンを識別するために前記実際の境界線を横断する命令セットと、
    前記識別されたゾーンを含む階層文書モデルを規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  17. 前記複数の図形要素を潜在的な境界線として識別することは、
    最大で特定の厚さの垂直線及び水平線である図形要素を識別する命令セットと、
    最大で特定の厚さの垂直線及び水平線を近似する図形要素を識別する命令セットと、
    直立矩形図形要素の外側エッジを識別する命令セットとを含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  18. 前記潜在的な境界線の一部を実際の境界線として識別する前記命令セットは、
    前記潜在的な境界線の間の交点を識別する命令セットと、
    全ての残りの潜在的な境界線が少なくとも2つの他の潜在的な境界線と交差するまで少なくとも2つの他の潜在的な境界線と交差しない潜在的な境界線を繰り返し除去する命令セットと、
    前記残りの潜在的な境界線を実際の境界線として識別する命令セットとを含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  19. 1つ以上のゾーンを識別するために前記実際の境界線を横断する前記命令セットは、
    前記実際の境界線の各々に対して反対方向に位置揃えされた2つの区間を含む方向を位置揃えされた区間の集合を規定する命令セットと、
    交点及び前記交点から離れる方向を選択する命令セットと、
    前記選択した交点に戻るまで前記選択した交点から開始して前記選択した方向へ前記区間の集合の中の前記区間を横断する命令セットと、
    前記横断された区間により囲まれた前記領域をゾーンとして規定する命令セットと、
    前記区間の集合から前記横断した区間を除去する命令セットととを含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  20. 前記方向を位置揃えされた区間はベクトルである請求項19に記載のコンピュータ読み取り可能な記憶媒体。
  21. 1つ以上のゾーンを識別するために前記実際の境界線を横断する前記命令セットは、
    前記方向を位置揃えされた区間の集合が空になるまで、
    交点及び前記交点からの方向を選択する命令セットと、
    前記選択した交点に戻るまで前記選択した交点から開始して前記選択した方向に前記区間の集合の中の前記区間を横断する命令セットと、
    前記横断した区間により囲まれた前記領域をゾーンとして規定する命令セットと、
    前記区間の集合から前記横断した区間を除去する命令セットとを更に繰り返し含む請求項19に記載のコンピュータ読み取り可能な記憶媒体。
  22. 特定のゾーンが特定の方向に横断された時に前記特定のゾーンを島として規定することを更に含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  23. 第2のゾーンが第1のゾーンの完全に囲まれる場合、前記第1のゾーンは前記第2のゾーンの親である請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  24. 前記第1のゾーン及び前記第2のゾーンが境界線を共有しない場合、前記第2のゾーンは島である請求項23に記載のコンピュータ読み取り可能な記憶媒体。
  25. 前記コンピュータプログラムは、実際の境界線でない前記図形要素及び前記グリフに基づいて構造要素を規定する命令セットを更に含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  26. 前記コンピュータプログラムは、前記階層文書モデルのゾーンに少なくとも1つの構造要素を読み込む命令セットを更に含む請求項25に記載のコンピュータ読み取り可能な記憶媒体。
  27. 前記コンピュータプログラムは、回転ゾーンを識別する命令セットを更に含む請求項25に記載のコンピュータ読み取り可能な記憶媒体。
  28. 回転ゾーンは、前記回転ゾーンを含むページと位置揃えされないゾーンである請求項27に記載のコンピュータ読み取り可能な記憶媒体。
  29. ゾーンは、少なくとも特定の角度だけページのエッジからオフセットしている場合に前記ページと位置揃えされない請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  30. 少なくとも1つのプロセッサにより実行された時に各々が関連するグリフの集合を含む複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であり、各グリフが位置座標を有するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    位置揃えされた単語のグループ中の前記単語の各々における少なくとも1つの個別のグリフの位置座標に基づいて前記位置揃えされた単語のグループを識別する命令セットと、
    前記識別された単語のグループに基づいて、前記グリフに対する位置揃え要素を規定する命令セットと、
    前記グリフ及び前記規定された位置揃え要素に基づいて構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  31. 前記コンピュータプログラムは、一対の位置揃え要素の間の少なくとも1つの空白の領域を規定する命令セットを更に含み、前記構造化文書は前記空白の領域に基づいて更に規定される請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  32. 前記単語のグループを識別する前記命令セットは、1つの軸に沿って前記単語の座標から導出されたデータに対してクラスタ分析を実行する命令セットを含む請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  33. 前記クラスタ分析は、同様の値を有する大きなデータのグループを識別するために密度クラスタリングを含む請求項32に記載のコンピュータ読み取り可能な記憶媒体。
  34. 前記境界要素は、グリフに対する右揃えガイド及び左揃えガイドである請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  35. 前記位置揃え要素を規定する前記命令セットは、
    前記識別されたグループ中の前記単語に基づいてある幅を有する第1の軸に沿うストリップを規定する命令セットと、
    単語が第2の軸に沿う特定の方向から前記ストリップと交差する前記第1の軸に沿う座標において前記ストリップを削除する命令セットとを含む請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  36. 構造化文書を規定する前記命令セットは、前記グリフ及び前記規定された位置揃え要素を使用してテキストカラムを識別する命令セットを含む請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  37. (i)各々が関連するグリフの集合を含む複数の単語を含む文書であり、各グリフが位置座標を有する文書を分析し、(ii)前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
    位置揃えされた単語のグループ中の前記単語の各々における少なくとも1つの個別のグリフの位置座標に基づいて前記位置揃えされた単語のグループを識別するモジュールを規定することと、
    前記識別された単語のグループに基づいて、前記グリフに対する境界を識別する前記グリフに対する位置揃え要素を規定するモジュールを規定することと、
    前記文書の構造要素を指定するために前記識別された位置揃え要素を使用するモジュールを規定することとを含む方法。
  38. 前記グリフ、前記規定した位置揃え要素及び前記構造要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項37に記載の方法。
  39. 少なくとも1つのプロセッサにより実行された時に各々が複数のグリフを含み且つ特定の位置値を有する複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記単語の前記位置値を順序付けする命令セットと、
    前記位置値の部分集合への複数の異なるグループ化を識別する命令セットと、
    異なるグループ化毎に特定の制約の集合を満足する前記位置値の部分集合の集合を識別する命令セットと、
    特定の基準を最適化する前記位置値の部分集合の前記集合のうちの特定の1つを判定する命令セットと、
    前記特定の基準を最適化する前記部分集合の特定の集合に基づいて前記グリフに対する境界要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  40. 前記制約の集合は、前記位置値の部分集合が少なくとも特定の数の値を有するという要件を含む請求項39に記載のコンピュータ読み取り可能な記憶媒体。
  41. 前記制約の集合は、前記部分集合の最大値と最小値との間の差分が特定の閾値を上回らないという要件を含む請求項39に記載のコンピュータ読み取り可能な記憶媒体。
  42. 前記特定の位置値は単語の右エッジを表し、前記特定の基準を最適化する前記部分集合の集合は右揃えガイドを識別するために使用される請求項39に記載のコンピュータ読み取り可能な記憶媒体。
  43. 前記特定の位置値は単語の左エッジを表し、前記特定の基準を最適化する前記部分集合の集合は左揃えガイドを識別するために使用される請求項39に記載のコンピュータ読み取り可能な記憶媒体。
  44. 少なくとも1つのプロセッサにより実行された時にデータのクラスタを識別するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    クラスタリングされるデータ値の集合を受信する命令セットと、
    各々が部分集合への前記データ値の異なるグループ化を指定する前記データ値の複数の区分を識別する命令セットと、
    データ値の部分集合のグループ毎に特定の制約の集合を満足する前記部分集合の集合を識別する命令セットと、
    特定の基準を最適化する部分集合の集合を判定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  45. 前記データ値は文書のグリフの位置であり、特定の基準を最適化する前記部分集合の集合は前記文書に対する位置揃えガイドを識別する請求項44に記載のコンピュータ読み取り可能な記憶媒体。
  46. 少なくとも1つのプロセッサにより実行された時に各々が関連するグリフの集合を含む複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記文書の左揃え点の集合及び右揃え点の集合を識別する命令セットと、
    特定の判断基準を満足する左揃え点と右揃え点との間の前記文書中の空白を識別する命令セットと、
    前記識別した空白を使用して構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  47. 前記左揃え点の集合及び前記右揃え点の集合は、単語の密度クラスタリングにより判定された位置揃えガイドを含む請求項46に記載のコンピュータ読み取り可能な記憶媒体。
  48. 前記文書中の空白を識別する前記命令セットは、
    前記右揃え点の集合から1つの右揃え点を選択する命令セットと、
    前記選択した右揃え点の右側にある前記選択した右揃え点に最近接する左揃え点である前記左揃え点の集合の中の左揃え点を識別する命令セットと、
    前記選択した右揃え点と前記識別した左揃え点との間の垂直ストリップを規定する命令セットと、
    単語がストリップと交差する座標において前記垂直ストリップを削除する命令セットとを含む請求項46に記載のコンピュータ読み取り可能な記憶媒体。
  49. 前記識別した空白を使用して構造化文書を規定する前記命令セットは、単語の行を分割する命令セットを含む請求項44に記載のコンピュータ読み取り可能な記憶媒体。
  50. 少なくとも1つのプロセッサにより実行された時に複数のグリフを含む文書を解析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、
    前記複数のグリフのそれぞれは、前記文書内の位置を有し、
    前記コンピュータプログラムは、
    前記文書における前記グリフの位置に基づいて、グリフの異なる集合を異なる単語として識別するために、前記グリフ間の関連付けを作成する命令セットと、
    単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成する命令セットと、
    前記段落について読み順を規定するために、隣接していない少なくとも2つの段落間の関連付けを規定する命令セットと、
    を含むコンピュータ読み取り可能な記憶媒体。
  51. 単語間の関連付けを作成する前記命令セットは、(i)前記単語を形成する前記グリフの垂直間隔の属性と、(ii)前記単語を形成する前記グリフの水平位置揃えの属性と、に基づいて関連付ける単語の集合を識別する命令セットを含む請求項50に記載のコンピュータ読み取り可能な記憶媒体。
  52. 単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成する前記命令セットは、
    単語の集合をテキスト行として識別するために、前記単語間の関連付けを作成する命令セットと、
    テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する命令セットと、
    を含む請求項50に記載のコンピュータ読み取り可能な記憶媒体。
  53. 単語の集合をテキスト行として識別するために、前記単語間の関連付けを作成する前記命令セットは、
    水平に位置揃えされた単語の集合を識別する命令セットと、
    少なくとも1つの水平間隙の存在に基づいて、前記水平に位置揃えされた単語の集合を分割する命令セットと、
    それぞれの残った集合内の単語間の関連付けを作成する命令セットと、
    を含み、
    前記水平に位置揃えされた単語の集合内の全ての単語は、互いに所定の閾値内にベースラインを有する請求項52に記載のコンピュータ読み取り可能な記憶媒体。
  54. 前記水平に位置揃えされた単語の集合を分割する前記命令セットは、
    水平に位置揃えされた単語間の少なくとも閾値の幅の間隙として、水平間隙を識別する命令セットと、
    垂直に位置揃えされている水平間隙の集合を識別する命令セットと、
    特定の基準の集合を満たさない水平間隙の集合を除去する命令セットと、
    前記除去されなかった間隙で、前記水平に位置揃えされた単語の集合を分割する命令セットと、
    を含む請求項53に記載のコンピュータ読み取り可能な記憶媒体。
  55. テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する前記命令セットは、隣接するテキスト行の垂直間隔の属性を比較する命令セットを含む請求項52に記載のコンピュータ読み取り可能な記憶媒体。
  56. テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する前記命令セットは、隣接するテキスト行の水平位置揃えの属性を比較する命令セットを含む請求項52に記載のコンピュータ読み取り可能な記憶媒体。
  57. 前記コンピュータプログラムは、段落の集合をカラムとして識別するために、前記段落間の関連付けを作成する命令セットをさらに含む請求項50に記載のコンピュータ読み取り可能な記憶媒体。
  58. 複数のグリフを含む文書を解析するプログラムを規定する方法であって、
    前記複数のグリフのそれぞれは、前記文書内の位置を有し、
    前記方法は、
    前記文書における前記グリフの位置に基づいて、グリフの異なる集合を異なる単語として識別するために、前記グリフ間の関連付けを作成するモジュールを規定する工程と、
    単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成するモジュールを規定する工程と、
    前記段落について読み順を規定するために、隣接していない少なくとも2つの段落間の関連付けを規定するモジュールを規定する工程と、
    を含む方法。
  59. グリフ間の関連付けを作成するモジュールを規定する前記工程は、前記グリフ間の水平間隔を識別するために、前記グリフの前記位置に対してクラスタ分析を実行するモジュールを規定する工程を含む請求項58に記載の方法。
  60. 前記クラスタ分析は、単語間の間隔及び単語内の間隔を識別するために、水平間隔サイズのクラスタを識別する請求項59に記載の方法。
  61. 少なくとも1つのプロセッサにより実行された時に各々が文書における位置を有する複数のグリフを含む前記文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記グリフの前記位置に基づいて種々のグリフの集合を種々の単語として識別する命令セットと、
    種々の単語の集合を種々の段落として識別する命令セットと、
    前記文書において連続していない少なくとも2つの段落にわたるフローを規定する前記段落の読み取り順序を規定する命令セットと、
    前記単語、前記段落、及び前記規定した読み順に基づいて、構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  62. 特定のグリフの集合を単語として識別することは、前記グリフを関連付けることを含む請求項61に記載のコンピュータ読み取り可能な記憶媒体。
  63. 特定のグリフの集合を単語として識別することは、前記グリフ間の関連付けを行うことを含む請求項61に記載のコンピュータ読み取り可能な記憶媒体。
  64. 前記連続していない2つの段落は、第1のページの終端の第1の段落及び第2のページの先頭の第2の段落を含み、前記読み順は、前記第1の段落から前記第2の段落への直接の流れを特定する請求項61に記載のコンピュータ読み取り可能な記憶媒体。
  65. 前記連続していない2つの段落は、第1のページの終端の第1の段落及び第2のページの先頭の第2の段落を含み、前記読み順は、前記第1の段落から前記第2の段落への直接の流れを特定する請求項61に記載のコンピュータ読み取り可能な記憶媒体。
  66. 前記第1のページ及び前記第2のページは、前記文書において隣接していない請求項65に記載のコンピュータ読み取り可能な記憶媒体。
  67. 少なくとも1つのプロセッサにより実行された時に各々が複数の特性を有する複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    前記基本要素の前記特性に基づいて基本要素の集合を構造要素として関連付ける命令セットと、
    前記構造要素間の関係を規定する命令セットと、
    前記関連付け及び関係に基づいて前記基本要素の全てにわたるフローを指定する命令セットと、
    前記基本要素にわたる前記指定したフローを使用して前記文書とのユーザ対話を最適化する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  68. 前記ユーザ対話は選択動作を含む請求項67に記載のコンピュータ読み取り可能な記憶媒体。
  69. 前記ユーザ対話は表示動作を含む請求項67に記載のコンピュータ読み取り可能な記憶媒体。
  70. 前記ユーザ対話はナビゲーション動作を含む請求項67に記載のコンピュータ読み取り可能な記憶媒体。
  71. 少なくとも1つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    第1の基本要素の集合を含む第1の領域が前記第1の基本要素の集合の部分集合を含む第2の基本要素の集合を含む第2の領域を含むようにネストされ且つ基本要素の集合を含む領域を識別する命令セットと、
    他のいずれの領域にも含まれず且つ少なくとも2つの追加の領域を含む特定の領域を識別する命令セットと、
    前記特定の領域を表として識別し且つ前記含まれた領域を前記表のセルとして識別する命令セットと、
    各々が関連する基本要素の集合を含む複数のセルであり、複数の行及び列で構成された複数のセルを含む前記表に対する表構造要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  72. 前記表構造要素に基づいて構造化文書を規定する命令セットを更に含む請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  73. 前記構造化文書を規定する前記命令セットは、前記非構造化文書の階層モデルを規定する命令セットを含む請求項72に記載のコンピュータ読み取り可能な記憶媒体。
  74. 前記表構造要素の前記セルは前記階層モデルのノードを含む請求項73に記載のコンピュータ読み取り可能な記憶媒体。
  75. 前記表構造要素は前記階層モデルのノードを含む請求項73に記載のコンピュータ読み取り可能な記憶媒体。
  76. 前記特定の領域はより大きな矩形であり、前記追加の領域は前記より大きな矩形内に含まれた複数の矩形である請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  77. 前記文書は複数の図形基本要素を含み、前記領域を識別する前記命令セットは、前記基本要素の集合間の境界線を識別する命令セットを含む請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  78. 前記境界線を識別する前記命令セットは、垂直線又は水平線である図形基本要素並びに垂直線又は水平線を近似する図形基本要素を識別することを含む請求項77に記載のコンピュータ読み取り可能な記憶媒体。
  79. 前記特定の領域及び前記含まれた領域は、表を示す特定の特性の集合を満足する請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  80. 前記特定の領域は、いずれの親領域とのいずれの境界も共有しない請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  81. 前記特定の領域は前記表の外側境界である請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  82. 前記基本要素はグリフを含み、前記複数の識別した領域は、前記セルを形成する関連するグリフの集合の位置に基づいて推論される請求項71に記載のコンピュータ読み取り可能な記憶媒体。
  83. 前記コンピュータプログラムはグリフの集合を段落として関連付ける命令セットを更に含み、前記境界線は前記段落の位置に基づいて推論される請求項82に記載のコンピュータ読み取り可能な記憶媒体。
  84. グリフの集合間の境界線を識別する前記命令セットは、垂直又は水平に位置揃えされる少なくとも2つのグリフの集合を識別する命令セットを含む請求項82に記載のコンピュータ読み取り可能な記憶媒体。
  85. 連続する矩形を形成する識別された境界線の集合を識別する命令セットを含む請求項77に記載のコンピュータ読み取り可能な記憶媒体。
  86. 前記連続する矩形は前記表構造要素の前記セルである請求項85に記載のコンピュータ読み取り可能な記憶媒体。
  87. (i)複数の基本要素を含む文書を分析し、(ii)前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
    第1の基本要素の集合を含む第1の領域が前記第1の基本要素の集合の部分集合を含む第2の基本要素の集合を含む第2の領域を含むようにネストされ且つ基本要素の集合を含む領域を識別するモジュールを規定することと、
    他のいずれの領域にも含まれず且つ少なくとも2つの追加の領域を含む特定の領域を識別するモジュールを規定することと、
    前記第1の領域を表として識別し且つ前記含まれた領域を前記表のセルとして識別することと、
    各々が関連する基本要素の集合を含む複数のセルであり、複数の行及び列で構成された複数のセルを含む前記表に基づく表構造要素を規定するモジュールを規定することとを含む方法。
  88. 少なくとも1つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    表を含む第1の基本要素の集合を識別する命令セットと、
    前記第1の基本要素の集合に対する表構造要素を規定する命令セットと、
    表を含まない第2の基本要素の集合を識別する命令セットと、
    前記第2の基本要素の集合に対する表でない構造要素の集合を規定する命令セットと、
    前記表構造要素及び前記表でない構造要素の集合を含む構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  89. 構造化文書を規定する前記命令セットは、前記構造要素の読み取り順序を規定する命令セットを含み、前記読み取り順序は、前記構造要素の集合の第1の構造要素から前記表構造要素へ、更に前記構造要素の集合の第2の構造要素へ進む請求項88に記載のコンピュータ読み取り可能な記憶媒体。
  90. 前記コンピュータプログラムは、
    各々が異なる表を含む種々の基本要素の集合を識別する命令セットと、
    前記種々の集合毎に種々の表構造要素を規定する命令セットとを更に含む請求項88に記載のコンピュータ読み取り可能な記憶媒体。
  91. 前記種々の集合の第1の集合は図形基本要素及びグリフの双方を含み、前記種々の集合の第2の集合はグリフのみを含む請求項90に記載のコンピュータ読み取り可能な記憶媒体。
  92. 少なくとも1つのプロセッサにより実行された時に文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    各々が前記文書における単一のオブジェクトとして規定される前記複数の基本図形要素を含む前記文書であり、前記文書が表示された時に複数の基本図形要素が描かれる順序を示す描画順序を有する前記文書を受信する命令セットと、
    前記描画順序が連続する基本図形要素間の位置関係を識別する命令セットと、
    前記位置関係に基づいて前記基本図形要素のうちの少なくとも2つから単一の構造図形要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  93. 前記文書は複数のグリフを更に含み、前記描画順序は前記グリフが前記ページに描かれる順序を示さない請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  94. 前記文書はベクトル図形文書であり、前記基本図形要素はベクトル図形である請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  95. 連続する基本図形要素間の位置関係を識別する前記命令セットは、第1の基本図形要素及び前記読み取り順序で前記第1の基本図形要素に続く第2の基本図形要素に対して前記第1の基本図形要素及び前記第2の基本図形要素を含む構造図形要素のサイズを計算する命令セットを含む請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  96. 前記サイズは、前記第1の基本図形要素及び前記第2の基本図形要素を囲む直立バウンディングボックスの領域に比例する請求項95に記載のコンピュータ読み取り可能な記憶媒体。
  97. 前記サイズは、前記第1の基本図形要素及び前記第2の基本図形要素を囲む直立バウンディングボックスの長さ及び高さの合計に比例する請求項95に記載のコンピュータ読み取り可能な記憶媒体。
  98. 連続する基本図形要素間の位置関係を識別する前記命令セットは、
    前記第2の基本図形要素及び前記読み取り順序で前記第2の基本図形要素に続く第3の基本図形要素に対して前記第2の基本図形要素及び前記第3の基本図形要素を含む構造図形要素のサイズを計算する命令セットと、
    前記第1の基本図形要素及び前記第2の基本図形要素を含む前記構造図形要素の前記サイズと前記第2の図形要素及び前記第3の図形要素を含む前記構造図形要素の前記サイズとを比較する命令セットとを更に含む請求項95に記載のコンピュータ読み取り可能な記憶媒体。
  99. 連続する基本図形要素間の位置関係を識別する前記命令セットは、
    前記描画順序が連続する基本図形要素の各対を識別する命令セットと、
    基本図形要素の識別された対毎に前記対に対する広がり値を計算する命令セットとを含む請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  100. 一対の広がり値は、前記対の前記2つの基本図形要素のサイズ及び近接度を記述する請求項99に記載のコンピュータ読み取り可能な記憶媒体。
  101. 基本図形要素の対から単一の構造図形要素を規定する前記命令セットは、
    クラスタ内で互いに近接する基本図形要素の全てが前記描画順序で連続するような前記基本図形要素のクラスタを前記計算した広がり値に基づいて識別する命令セットと、
    特定の制約の集合を満足する前記クラスタの連続する基本図形要素のサブグループを識別する命令セットと、
    サブグループ毎に、前記サブグループの前記基本図形要素の全てを含む構造図形要素を規定する命令セットとを含む請求項99に記載のコンピュータ読み取り可能な記憶媒体。
  102. 前記基本図形要素のクラスタを識別する前記命令セットは、1次差分である前記計算した広がり値を有する前記基本図形要素に対して差分クラスタリングを実行する命令セットを含む請求項101に記載のコンピュータ読み取り可能な記憶媒体。
  103. 前記特定の制約の集合は、前記サブグループの特定の基本要素毎の範囲が前記描画順序で前記特定の基本要素の前の前記サブグループの全ての基本要素に対する共同の範囲と交差するという要件を含む請求項101に記載のコンピュータ読み取り可能な記憶媒体。
  104. 基本要素毎の前記範囲は、前記基本要素を含む最小の直立バウンディングボックスである請求項103に記載のコンピュータ読み取り可能な記憶媒体。
  105. 基本要素毎の前記範囲は、前記基本要素を完全に囲む最小領域のパスである請求項103に記載のコンピュータ読み取り可能な記憶媒体。
  106. 前記複数の基本図形要素から前記単一の構造図形要素を規定する前記命令セットは、前記構造図形要素を規定するために使用される前記基本図形要素の集合の間で少なくとも1つの関連付けを行う命令セットを含む請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  107. 前記コンピュータプログラムは、前記構造図形要素に基づいて構造化文書を規定する命令セットを更に含む請求項92に記載のコンピュータ読み取り可能な記憶媒体。
  108. 前記構造化文書は、複数のノードを含む前記文書の階層モデルを含み、前記ノードの1つには前記構造図形要素が読み込まれる請求項107に記載のコンピュータ読み取り可能な記憶媒体。
  109. 文書を分析し且つ前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
    各々が前記文書の単一のオブジェクトとして規定される複数の基本図形要素を含む前記文書であり、前記文書が表示される時に前記基本図形要素が描かれる順序を示す描画順序を有する文書を受信するモジュールを規定することと、
    前記描画順序が連続する基本図形要素間の位置関係を識別するモジュールを規定することと、
    前記位置関係に基づいて前記基本図形要素のうちの少なくとも2つから単一の構造図形要素を規定するモジュールを規定することとを含む方法。
  110. 前記構造図形要素を含む構造化文書を規定するモジュールを規定することを更に含む請求項109に記載の方法。
  111. 前記構造化文書は、複数のノードを含む前記文書の階層モデルを含み、前記ノードの1つには前記構造図形要素が読み込まれる請求項110に記載の方法。
  112. 少なくとも1つのプロセッサにより実行された時に文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    各々が前記文書の単一のオブジェクトとして規定される複数の基本図形要素を含む前記文書であり、前記文書が表示される時に前記基本図形要素が描かれる順序を示す描画順序を有する文書を受信する命令セットと、
    前記描画順序が連続する基本図形要素の対毎に前記対の前記基本図形要素のサイズに関連する値を計算する命令セットと、
    前記計算した値に基づいて連続する基本図形要素のクラスタを規定する命令セットと、
    特定の制約を満足する前記クラスタの基本図形要素のサブクラスタの集合を識別する命令セットと、
    特定の各サブクラスタを前記特定のサブクラスタの前記基本図形要素を含む単一の構造図形要素として規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  113. 前記計算した値は、前記対の前記基本図形要素の互いに対する近接度に更に関連する請求項112に記載のコンピュータ読み取り可能な記憶媒体。
  114. 文書を再構成するプログラムを規定する方法であって、
    複数の基本要素を含む文書から構造化文書を規定する文書再構成動作のデフォルト集合を規定することと、
    中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致する時に各々が(i)潜在的な文書再構成結果の集合及び(ii)前記文書再構成動作を変更する命令を含むプロファイルの階層集合であり、前記階層の下位レベルのプロファイルからの命令が上位レベルのプロファイルからの命令を無効にするプロファイルの階層集合を規定することと、
    中間文書再構成結果をプロファイルとマッチングするモジュールを規定することとを含む方法。
  115. 前記構造化文書は前記文書の階層モデルを含む請求項114に記載の方法。
  116. 前記プロファイルの階層集合は、文書、小領域、ページ及びゾーンのうち少なくとも2つに対するプロファイルを含む請求項114に記載の方法。
  117. 各文書プロファイルは可能なページプロファイルの特定の集合を指定し、各ページプロファイルは可能なゾーンプロファイルの特定の集合を指定する請求項116に記載の方法。
  118. 第1の文書プロファイルに対する前記ページプロファイルの集合は特定のページプロファイルを含み、第2の文書プロファイルに対する前記ページプロファイルの集合は前記特定のページプロファイルを含む請求項117に記載の方法。
  119. 特定のプロファイルの前記命令は、前記中間文書再構成結果が前記特定のプロファイルに対する前記潜在的な文書再構成結果と一致する時にテストされるべきである前記プロファイルの階層集合の下位レベルのプロファイルの部分集合を含む請求項114に記載の方法。
  120. 特定のプロファイルの前記命令は、特定の文書再構成動作を実行しない命令を含む請求項114に記載の方法。
  121. 前記特定のプロファイルはページに対するプロファイルであり、前記特定のプロファイルに対する前記潜在的な文書再構成結果の集合は、前記ページが1つのテキストカラムのみを有するという結果を含み、前記特定のプロファイルに対する前記命令はテキスト行を分割する動作を実行しない命令を含む請求項120に記載の方法。
  122. 特定のプロファイルの前記命令は、特定の文書再構成動作を実行する方法に関する命令を含む請求項114に記載の方法。
  123. 特定のプロファイルの前記命令は、結果が前記中間再構成結果から除去される特定の再構成処理を指定する命令を含む請求項114に記載の方法。
  124. 少なくとも1つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    複数の基本要素を含む文書を受信する命令セットと、
    構造化文書を規定するために前記文書を再構成する文書再構成動作のデフォルト集合を識別する命令セットと、
    前記デフォルト集合の前記文書再構成動作の1つ以上を実行する命令セットと、
    前記実行した文書再構成動作の結果に基づいて前記文書に対するプロファイルを識別する命令セットと、
    前記識別したプロファイルに従って前記文書を再構成する前記文書再構成動作の集合を変更する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  125. 前記コンピュータプログラムは、前記集合を変更した後の前記変更済みの集合の前記文書再構成動作のうちの少なくとも1つを実行する命令セットを更に含む請求項124に記載のコンピュータ読み取り可能な記憶媒体。
  126. 前記文書再構成動作の集合を変更する前記命令セットは、実行される前記再構成動作の集合から特定の再構成動作を除去する命令セットを含む請求項124に記載のコンピュータ読み取り可能な記憶媒体。
  127. 前記文書再構成動作の集合を変更する前記命令セットは、実行される前記再構成動作の集合に特定の再構成動作を追加する命令セットを含む請求項124に記載のコンピュータ読み取り可能な記憶媒体。
  128. 前記再構成動作のデフォルト集合は、前記再構成動作が実行される順序を指定する請求項124に記載のコンピュータ読み取り可能な記憶媒体。
  129. 前記文書再構成動作の集合を変更する前記命令セットは、前記再構成動作が実行される前記順序を変更する命令セットを含む請求項128に記載のコンピュータ読み取り可能な記憶媒体。
  130. 前記プロファイルは、前記実行された文書再構成動作の結果に基づいて前記文書に対する文書の種類を識別する文書プロファイルである請求項124に記載のコンピュータ読み取り可能な記憶媒体。
  131. 前記コンピュータプログラムは、
    前記集合を変更した後に前記変更済みの集合の前記文書再構成動作のうちの少なくとも1つを実行する命令セットと、
    前記実行した文書再構成動作の結果に基づいて前記文書の特定の小領域に対する小領域プロファイルを識別する命令セットと、
    前記識別した小領域プロファイルに従って前記文書の前記特定の小領域を再構成する前記文書再構成動作の集合を変更する命令セットとを更に含む請求項130に記載のコンピュータ読み取り可能な記憶媒体。
  132. 前記特定の小領域は特定のページである請求項131に記載のコンピュータ読み取り可能な記憶媒体。
  133. 前記小領域プロファイルの命令は、前記特定の小領域を再構成するための前記文書プロファイルの矛盾する命令を無効にする請求項131に記載のコンピュータ読み取り可能な記憶媒体。
  134. 前記小領域プロファイルの命令と矛盾しない前記文書プロファイルの命令は、前記小領域プロファイルの識別の後も依然として動作している請求項131に記載のコンピュータ読み取り可能な記憶媒体。
  135. 少なくとも1つのプロセッサにより実行された時に文書を表示するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を規定する命令セットと、
    前記文書をデバイスに表示する命令セットと、
    前記文書中の関心位置の選択を受信する命令セットと、
    前記関心位置に基づいて前記階層内の構造要素を関心領域として識別する命令セットと、
    前記識別した関心領域を強調表示するように前記文書の前記表示を変更する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  136. 前記デバイスは小型スクリーンデバイスである請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  137. 前記デバイスはハンドヘルドデバイスである請求項136に記載のコンピュータ読み取り可能な記憶媒体。
  138. 前記非構造化文書は関連付けられていない複数の基本要素を含み、前記構造化文書を規定する前記命令セットは、
    構造要素を規定するために前記基本要素間の関連付けを行う命令セットと、
    前記構造要素の階層を規定する命令セットとを含む請求項136に記載のコンピュータ読み取り可能な記憶媒体。
  139. 前記構造要素を識別する前記命令セットは、
    前記関心位置を含む前記階層の最下位レベルの前記構造要素を識別する命令セットと、
    関心領域として適格である構造要素に到達するまで前記階層の前記最下位レベルで識別された前記構造要素を含む前記階層の上位レベルの構造要素を識別する命令セットとを含む請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  140. 前記階層の前記最下位レベルの前記構造要素は単語として関連付けられたグリフの集合であり、関心領域として適格である前記構造要素は前記単語を含む段落である請求項139に記載のコンピュータ読み取り可能な記憶媒体。
  141. 前記関心位置は図形要素内にあり、前記関心領域は前記図形要素である請求項139に記載のコンピュータ読み取り可能な記憶媒体。
  142. 関心位置の選択を受信する前記命令セットは、タッチスクリーンデバイスの特定の位置においてダブルタップを受信する命令セットを含む請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  143. 前記文書の前記表示を変更する前記命令セットは、前記関心領域を中央に置くために前記文書のズーム、回転及び平行移動の組み合わせに対する命令セットを含む請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  144. 前記文書の前記表示を変更する前記命令セットは、
    前記関心領域である前記構造要素に基づいて関心矩形を規定する命令セットと、
    前記関心矩形全体を表示しつつ、前記関心矩形のサイズを最大にするように前記表示をズームする命令セットとを含む請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  145. 前記関心矩形は、第1の方向の前記矩形の長さが第1の方向の前記デバイスにおける表示の長さと等しくなるようにズームされ、前記文書の前記表示を変更する前記命令セットは、第2の方向において前記表示の前記関心矩形を中央に置く命令セットを更に含む請求項144に記載のコンピュータ読み取り可能な記憶媒体。
  146. 前記第1の方向は水平であり、前記第2の方向は垂直である請求項145に記載のコンピュータ読み取り可能な記憶媒体。
  147. 前記第1の方向は垂直であり、前記第2の方向は水平である請求項145に記載のコンピュータ読み取り可能な記憶媒体。
  148. 前記コンピュータプログラムは、
    前記関心領域から移動するための入力を受信する命令セットと、
    構造的に関連する関心領域を強調表示するように前記文書の前記表示を変更する命令セットとを更に含む請求項135に記載のコンピュータ読み取り可能な記憶媒体。
  149. 前記構造的に関連する関心領域は、読み取り順序が前記識別した構造要素の前である構造要素である請求項148に記載のコンピュータ読み取り可能な記憶媒体。
  150. 前記構造的に関連する関心領域は、読み取り順序が前記識別した構造要素の後である構造要素である請求項148に記載のコンピュータ読み取り可能な記憶媒体。
  151. 前記構造的に関連する関心領域は、前記文書において初期の関心領域とは異なるページ上の構造要素であり、前記構造化文書は、前記関心領域と前記構造的に関連する関心領域との間のリンクを含む請求項148に記載のコンピュータ読み取り可能な記憶媒体。
  152. 少なくとも1つのプロセッサにより実行するためのハンドヘルド表示装置に対するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    基本要素の集合を関連付けることにより規定された構造要素の階層を含む構造化文書を規定するために関連付けられていない複数の基本要素を含む非構造化文書を分析する命令セットと、
    前記表示装置が第1の向きを向いている場合に第1のレイアウトで前記構造化文書の特定の一部を前記ハンドヘルド表示装置に表示する命令セットと、
    前記表示装置が第2の向きを向いている場合に前記第1のレイアウトとは異なる第2のレイアウトで前記構造化文書の前記特定の一部を前記ハンドヘルド表示装置に表示する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  153. 前記第1の向きは水平の向きであり、前記第2の向きは垂直の向きである請求項152に記載のコンピュータ読み取り可能な記憶媒体。
  154. 前記構造化文書の前記一部は1カラムで配置されたテキストを含み、前記第1のレイアウトは前記テキストを3カラムで表示し且つ前記第2のレイアウトは前記テキストを2カラムで表示する請求項153に記載のコンピュータ読み取り可能な記憶媒体。
  155. 前記ハンドヘルド表示装置は、前記表示装置の前記向きを判定する加速度計を含む請求項152に記載のコンピュータ読み取り可能な記憶媒体。
  156. 前記ハンドヘルド表示装置はiPhone(登録商標)である請求項152に記載のコンピュータ読み取り可能な記憶媒体。
  157. 文書を表示するプログラムを規定する方法であって、
    非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を規定するモジュールを規定することと、
    前記文書をデバイスに表示するモジュールを規定することと、
    前記文書中の関心位置の選択を受信するモジュールを規定することと、
    前記関心位置に基づいて前記階層内の構造要素を関心領域として識別するモジュールを規定することと、
    前記識別した関心領域を強調表示するように前記文書の前記表示を変更するモジュールを規定することとを含む方法。
  158. 前記プログラムはハンドヘルドデバイスのファームウェアに対して規定される請求項157に記載の方法。
  159. 少なくとも1つのプロセッサにより実行された時に文書中のテキストの選択を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    関連付けられていない複数のグリフを含む非構造化文書を受信する命令セットと、
    グリフの集合を関連付ける命令セットと、
    前記グリフの読み取りフローを指定する読み取り順序を識別する命令セットと、
    前記文書を表示する命令セットと、
    前記表示された文書内のテキストの選択に対する開始点及び終了点を受信する命令セットと、
    前記識別したグリフの集合及び意図した読み取りフローを使用して前記開始点から前記終了点までのテキストの選択を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  160. 前記関連付けられたグリフの集合は複数の段落を含み、前記読み取り順序は連続しない第1の段落から第2の段落までの読み取りフローを指定する請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  161. 前記関連付けられたグリフの集合は複数のカラムを含み、前記開始点及び前記終了点は異なるカラムにある請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  162. 前記読み取り順序はカラム毎に順序値を指定し、前記テキストの選択は前記開始点を含む前記カラムの前記順序値と前記終了点を含む前記カラムの前記順序値との間の順序値を有する全てのカラムを含む請求項161に記載のコンピュータ読み取り可能な記憶媒体。
  163. 前記コンピュータプログラムは、
    前記開始点が前記読み取り順序で前記終了点の後であるかを判定する命令セットと、
    前記開始点が前記終了点の後である場合に前記開始点が前記読み取り順序で前記終了点の前になるように前記選択に対する前記開始点及び前記終了点を交換する命令セットとを更に含む請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  164. 前記テキスト選択に対する前記開始点及び前記終了点は、カーソルコントローラによりクリック及びドラッグ選択により受信される請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  165. 前記開始点は、カーソルコントローラボタンが押下された時のカーソルの場所であり、前記終了点は、前記カーソルが前記開始点から移動された後の前記カーソルの場所である請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  166. 前記テキスト選択に対する前記開始点及び前記終了点は、タッチスクリーンジェスチャにより受信される請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  167. 前記開始点は、ユーザがオブジェクトにより前記タッチスクリーンに最初に触れた場所であり、前記終了点は、前記ユーザが前記オブジェクトをドラッグした先の場所である請求項166に記載のコンピュータ読み取り可能な記憶媒体。
  168. 前記オブジェクトは前記ユーザの指である請求項167に記載のコンピュータ読み取り可能な記憶媒体。
  169. 関連付けられたグリフの集合及び読み取り順序を識別する前記命令セットは前記非構造化文書から構造化文書を規定する命令セットを含み、前記関連付けられたグリフの集合は前記構造化文書の構造要素である請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  170. 前記構造化文書は、各々が1つ以上の関連付けられたグリフの集合を含む複数のレイアウトを含む請求項169に記載のコンピュータ読み取り可能な記憶媒体。
  171. 前記コンピュータプログラムは、
    前記開始点及び前記終了点が同一レイアウト内にあるかを判定する命令セットと、
    前記開始点及び前記終了点が同一レイアウトにない場合に開始点と同一のレイアウトにある新しい終了点を規定する命令セットを更に含む請求項170に記載のコンピュータ読み取り可能な記憶媒体。
  172. 新しい終了点を規定する命令セットは、
    前記開始点から前記終了点までの直線を識別することと、
    前記線が前記開始点の前記レイアウトを離れる点を前記新しい終了点として規定することとを含む請求項171に記載のコンピュータ読み取り可能な記憶媒体。
  173. テキストの選択を規定する前記命令セットは、
    前記開始点及び前記終了点が同一のレイアウトにあるかを判定する命令セットと、
    前記開始点及び前記終了点が異なるレイアウトにある場合に前記レイアウトの前記開始点の後の前記開始点の前記レイアウト中の全てのテキストを含むように前記選択を規定する命令セットとを含む請求項170に記載のコンピュータ読み取り可能な記憶媒体。
  174. テキストの選択を規定する前記命令セットは、前記開始点の前記レイアウトと前記終了点の前記レイアウトとの間のあらゆるレイアウトの全てのテキストを含むように前記選択を規定する命令セットを更に含む請求項173に記載のコンピュータ読み取り可能な記憶媒体。
  175. 前記テキストの選択は第2の文書にコピー及び貼り付けするためのものであり、前記テキストは前記読み取り順序を維持して前記第2の文書に貼り付けられる請求項159に記載のコンピュータ読み取り可能な記憶媒体。
  176. 少なくとも1つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    複数の構造要素及び前記構造要素の読み取り順序を含む構造化文書を複数の基本要素を含む非構造化文書の階層モデルとして規定するために前記非構造化文書を分析する命令セットと、
    前記文書を表示する命令セットと、
    前記文書中のテキストの選択に対する開始点及び終了点を受信する命令セットと、
    前記構造要素及び前記構造要素の読み取り順序を使用して前記開始点から前記終了点までの文書中のテキストを選択する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  177. 前記文書は、ハンドヘルド表示装置に表示される請求項176に記載のコンピュータ読み取り可能な記憶媒体。
  178. 前記開始点は1つの記事内のテキストカラムにあり、前記終了点は前記記事に対するコールアウト内にある請求項176に記載のコンピュータ読み取り可能な記憶媒体。
  179. 前記コンピュータプログラムは、前記終了点を前記記事のテキストカラムに移動する命令セットを更に含む請求項178に記載のコンピュータ読み取り可能な記憶媒体。
  180. テキストを選択する前記命令セットは、前記記事の前記カラムの全てのテキストを選択する命令セットを含む請求項178に記載のコンピュータ読み取り可能な記憶媒体。
  181. 文書中のテキストの選択を規定するプログラムを規定する方法であって、
    関連付けられていない複数のグリフを含む非構造化文書を受信するモジュールを規定することと、
    グリフの集合を関連付けるモジュールを規定することと、
    前記グリフの読み取りフローを指定する読み取り順序を識別するモジュールを規定することと、
    前記文書を表示するモジュールを規定することと、
    前記表示された文書内のテキストの選択に対する開始点及び終了点を受信するモジュールを規定することと、
    前記識別したグリフの集合及び意図した読み取りフローを使用して前記開始点から前記終了点までのテキストの選択を規定するモジュールを規定することとを含む方法。
  182. 少なくとも1つのプロセッサにより実行された時に文書における位置に関して規定される複数の基本要素を含む前記文書に対する構造を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    特定の基本要素の集合に対して最近接する基本要素の対の間の距離を識別する命令セットと、
    前記識別した距離をソートする命令セットと、
    区分に対する所定の閾値より大きい前記識別した距離を識別する単一の値を格納する命令セットと、
    前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  183. 前記区分に対する前記所定の閾値は、一対の基本要素の間の最短距離を識別する請求項182に記載のコンピュータ読み取り可能な記憶媒体。
  184. 前記最短距離より近い基本要素の対は同一の基本要素のクラスタにある請求項183に記載のコンピュータ読み取り可能な記憶媒体。
  185. 少なくとも1つのプロセッサにより実行された時に文書における位置に関して規定される複数の基本要素を含む前記文書に対する構造を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    特定の基本要素の集合に対して前記集合の最近接する基本要素の対毎のグループ化を識別する命令セットと、
    最近接する対から最も離れた対までの順序に基づいて前記基本要素の対毎のグループ化をソートする命令セットと、
    区分を形成するのに十分に離間している前記基本要素の対毎のグループ化を識別する単一の値を格納する命令セットと、
    前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  186. 前記コンピュータ読み取り可能な記憶媒体はハンドヘルドデバイスのファームウェアである請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  187. 前記デバイスは携帯電話である請求項186に記載のコンピュータ読み取り可能な記憶媒体。
  188. 前記デバイスはメディアプレーヤである請求項186に記載のコンピュータ読み取り可能な記憶媒体。
  189. 前記コンピュータプログラムは、前記構造要素及び前記基本要素を含む構造化文書を規定する命令セットを更に含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  190. 前記文書は複数のグリフを含み、
    前記コンピュータプログラムは、グリフの集合を単語として関連付ける命令セットを更に含み、
    前記特定の基本要素の集合は単語の最も左側のグリフであり、
    構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、位置揃えされた単語の集合に対する左揃えガイドを規定する命令セットを含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  191. 前記文書は複数のグリフを含み、
    前記コンピュータプログラムは、グリフの集合を単語として関連付ける命令セットを更に含み、
    前記特定の基本要素の集合は単語の最も右側のグリフであり、
    構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、位置揃えされた単語の集合に対する右揃えガイドを規定する命令セットを含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  192. 前記特定の基本要素の集合は基本図形要素であり、構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、近傍の基本図形要素を構造図形要素として関連付ける命令セットを含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  193. 前記基本要素はグリフであり、構造要素を規定する前記命令セットは、近傍のグリフの集合を単語として関連付ける命令セットを含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  194. 最近接する基本要素の対毎のグループ化を識別する前記命令セットは、
    共通の並び線を含むグリフの集合を識別する命令セットと、
    前記グリフの座標に基づいて前記グリフの集合を第1の方向にソートする命令セットと、
    前記ソートした集合の連続するグリフの対毎に前記対の前記グリフの間の座標値の差分を計算する命令セットと、
    前記計算した差分を第1の配列に格納する命令セットとを含む請求項193に記載のコンピュータ読み取り可能な記憶媒体。
  195. 最近接する対から最も離れた対までの順序に基づいて前記対毎の基本要素をソートする前記命令セットは、
    前記計算した差分値をソートする命令セットと、
    前記ソートした差分に対応する前記第1の配列の指標を第2の配列に格納する命令セットとを含む請求項194に記載のコンピュータ読み取り可能な記憶媒体。
  196. 最小の差分値を格納する前記第1の配列の指標は、前記第2の配列の第1の指標の値として格納される請求項195に記載のコンピュータ読み取り可能な記憶媒体。
  197. 前記コンピュータプログラムは、グリフ間の最小差分を判定する命令セットを更に含み、前記格納した単一の値は、前記最小差分を格納する前記第1の配列の前記指標が格納される前記第2の配列の指標である請求項195に記載のコンピュータ読み取り可能な記憶媒体。
  198. 前記最小差分は単語間の空隙を表す請求項197に記載のコンピュータ読み取り可能な記憶媒体。
  199. 前記区分を識別及び分析するのに前記格納した値を使用する命令セットは、前記単一の値として格納された前記指標以降の前記第2の配列の全ての指標において前記第2の配列の値として格納される第3の配列の指標において前記ソートしたx座標値を格納する前記第3の配列を分割する命令セットを含む請求項197に記載のコンピュータ読み取り可能な記憶媒体。
  200. 前記単一の値を格納する前記命令セットは、各々が前記基本要素に対する種々の区分を識別する複数の単一の値を格納する命令セットを含む請求項185に記載のコンピュータ読み取り可能な記憶媒体。
  201. 前記コンピュータプログラムは、最適な距離尺度を表す理想的な最適な区分を識別するために前記基本要素に対する前記種々の区分を分析することを更に含む請求項200に記載のコンピュータ読み取り可能な記憶媒体。
  202. 文書に対する構造を規定するプログラムを規定する方法であって、
    文書における位置に関して規定される複数の基本要素を含む前記文書において最近接する基本要素の対毎のグループ化を識別するモジュールを規定することと、
    最近接する対から最も離れた対までの順序に基づいて前記基本要素の対毎のグループ化をソートするモジュールを規定することと、
    区分を形成するのに十分に離間している前記対毎にグループ化された基本要素を識別する単一の値を格納するモジュールを規定することと、
    前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した値を使用するモジュールを規定することとを含む方法。
  203. 前記構造要素及び前記基本要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項202に記載の方法。
  204. 前記構造化文書は、前記構造要素がノードである階層構造である請求項203に記載の方法。
  205. 複数の基本要素を含む文書を分析及び操作する複数の異なる処理を規定することと、
    前記基本要素と関連付けられたデータに対する記憶装置を規定することとから成り、前記データの少なくとも一部は前記処理とは別個のメモリ空間に格納され且つ少なくとも2つの異なる処理により共有され、前記処理は前記データに対する参照を使用して前記データにアクセスし、前記データは前記処理により複製されない方法。
  206. 前記基本要素と関連付けられたデータに対する前記記憶装置は第1の記憶装置であり、前記方法は、(i)前記基本要素を識別するために前記文書を構文解析し、(ii)前記基本要素を第2の記憶装置に格納するパーサを更に含む請求項205に記載の方法。
  207. 前記基本要素と関連付けられた前記データは、前記第2の記憶装置の前記基本要素に対する参照を含む請求項206に記載の方法。
  208. 前記パーサは、(i)前記基本要素をランダムな順序で識別するために前記文書を構文解析し、(ii)前記基本要素を前記ランダムな順序で前記第2の記憶装置に格納するためのものである請求項206に記載の方法。
  209. 前記ランダムな順序は、前記基本要素が前記文書のビットストリーム表現で規定される順序である請求項206に記載の方法。
  210. (i)特定の計測値に従って前記基本要素をソートし、(ii)前記基本要素と関連付けられた前記データをソート済み順序で前記第1の記憶装置に格納するモジュールを規定することを更に含む請求項206に記載の方法。
  211. 前記基本要素は前記文書における場所に関する情報を含み、前記特定の計測値は前記基本要素の前記場所に基づく請求項210に記載の方法。
  212. 前記文書の特定のページ内で、前記特定の計測値は、第1計測値として上から下に前記基本要素をソートし、第2計測値として左か右に前記基本要素をソートする請求項210に記載の方法。
  213. 前記基本要素は複数のグリフを含む請求項205に記載の方法。
  214. 前記複数の異なる処理は、
    グリフの集合をテキスト行として関連付ける処理と、
    グリフの集合を単語として関連付ける処理とを含む請求項213に記載の方法。
  215. グリフの集合をテキスト行として関連付ける前記処理は、前記基本要素と関連付けられた前記データを参照する第1のストリングとして特定のテキスト行を格納し、
    グリフの集合を単語として関連付ける前記処理は、前記基本要素と関連付けられた同一データを参照する第2のストリングとして特定の単語を格納する請求項214に記載の方法。
  216. 前記同一のデータは、複製されずに双方の処理により使用される請求項215に記載の方法。
  217. 前記第1のストリング及び前記第2のストリングの各々は、2つの値だけを格納することにより前記データを参照する請求項215に記載の方法。
  218. 前記2つの値は、第1のデータに対する参照及び前記ストリング中のデータ数のカウントである請求項217に記載の方法。
  219. 前記第1のストリング及び前記第2のストリングは、同一の第1のデータを参照し、異なるカウントを格納する請求項217に記載の方法。
  220. 前記基本要素と関連付けられたデータに対する前記記憶装置を管理するための共有メモリデータ構造を規定することを更に含む請求項205に記載の方法。
  221. 前記共有メモリデータ構造は、前記基本要素と関連付けられた前記データが格納される前記別個のメモリ空間における場所を格納するためのものである請求項220に記載の方法。
  222. 前記共有メモリデータ構造は、少なくとも2つの他のデータ構造が前記基本要素と関連付けられた前記データを参照する場合に使用するためのものである請求項220に記載の方法。
  223. 前記少なくとも2つの他のデータ構造は、前記基本要素と関連付けられた前記データの所有権を共有する請求項222に記載の方法。
  224. 前記共有メモリデータ構造は、前記基本要素と関連付けられた前記データを参照する他のデータ構造の数を格納するためのものである請求項220に記載の方法。
  225. 少なくとも1つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    複数の基本要素を含む文書を構文解析する命令セットと、
    ランダムな順序で前記基本要素を第1の記憶装置に格納する命令セットと、
    前記文書における前記基本要素の場所に基づく順序で前記基本要素に対する参照を第2の記憶装置に格納する命令セットと、
    文書再構成動作を実行するための命令を受信する命令セットと、
    前記基本要素に対するいずれの新しい参照も格納せずに前記受信した命令を実行する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
  226. 前記コンピュータプログラムは、
    第2の文書再構成動作を実行するための第2の命令セットを受信する命令セットと、
    前記第2の文書再構成動作を実行することが前記基本要素に対する新しい参照を必要とすることを判定する命令セットと、
    前記第2の記憶装置とは異なる順序で前記基本要素に対する新しい参照を第3の記憶装置に格納する命令セットとを更に含む請求項225に記載のコンピュータ読み取り可能な記憶媒体。
  227. 前記第2の記憶装置及び前記第3の記憶装置は、同一の物理的記憶装置にある請求項226に記載のコンピュータ読み取り可能な記憶媒体。
  228. (i)複数の基本要素を含む文書を構文解析し、(ii)ランダムな順序で前記基本要素を第1の記憶装置に格納する第1のモジュールを規定することと、
    (i)前記ランダムに順序付けされた基本要素に対する参照を格納する第2の記憶装置にメモリを割り当て、(ii)特定の順序で前記参照を前記割り当てられたメモリに格納する第2のモジュールを規定することと、
    前記順序付けされた参照の一部を参照し且つ前記順序付けされた参照のうちの第1の参照に対する参照及びカウント値のみを含むデータ構造を格納する第3のモジュールを規定することと、
    (i)文書再構成動作を実行するための命令を受信し、(ii)前記第1のモジュール、前記第2のモジュール及び前記第3のモジュールのうちメモリ及び計算の使用量を最小限にしつつ前記文書再構成動作を実行することを要求されるモジュールを識別する第4のモジュールを規定することとを含む方法。
  229. 前記第3のモジュールのみが特定の文書再構成動作を実行する必要がある場合、前記基本要素のコピー又は前記基本要素に対する新しい参照に対して新しいメモリは割り当てられない請求項228に記載の方法。
  230. 前記文書は非構造化文書である請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  231. 前記文書はベクトル図形文書である請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  232. 前記文書はPDF(Portable Document Format)文書である請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  233. 前記コンピュータプログラムはハンドヘルドデバイスに対するアプリケーションである請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、135、152、159、176、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  234. 前記コンピュータプログラムはオペレーティングシステムの一部である請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、135、152、159、176、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  235. 前記コンピュータプログラムは、オペレーティングシステム上で実行するアプリケーションである請求項1、22、30、39、44、46、50、61、67、71、88、92、112、124、135、152、159、176、182、185及び225のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  236. 前記非構造化文書はベクトル図形文書である請求項135、152、159及び176のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  237. 前記非構造化文書は、PDF(Portable Document Format)文書である請求項135、152、159及び176のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
JP2011544617A 2009-01-02 2009-12-31 文書再構成の方法及びシステム Pending JP2012514792A (ja)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
US14232909P 2009-01-02 2009-01-02
US61/142,329 2009-01-02
US12/479,848 US8443278B2 (en) 2009-01-02 2009-06-07 Identification of tables in an unstructured document
US12/479,844 2009-06-07
US12/479,849 2009-06-07
US12/479,842 US8438472B2 (en) 2009-01-02 2009-06-07 Efficient data structures for parsing and analyzing a document
US12/479,847 US8719701B2 (en) 2009-01-02 2009-06-07 Identification of guides and gutters of a document
US12/479,844 US8365072B2 (en) 2009-01-02 2009-06-07 Identification of compound graphic elements in an unstructured document
US12/455,866 US9063911B2 (en) 2009-01-02 2009-06-07 Identification of layout and content flow of an unstructured document
US12/479,847 2009-06-07
US12/479,845 US8352855B2 (en) 2009-01-02 2009-06-07 Selection of text in an unstructured document
US12/479,852 US8473467B2 (en) 2009-01-02 2009-06-07 Content profiling to dynamically configure content processing
US12/479,848 2009-06-07
US12/479,845 2009-06-07
US12/479,849 US9460063B2 (en) 2009-01-02 2009-06-07 Identification, selection, and display of a region of interest in a document
US12/455,866 2009-06-07
US12/479,850 US8832549B2 (en) 2009-01-02 2009-06-07 Identification of regions of a document
US12/479,852 2009-06-07
US12/479,843 US8261186B2 (en) 2009-01-02 2009-06-07 Methods for efficient cluster analysis
US12/479,843 2009-06-07
US12/479,842 2009-06-07
US12/479,850 2009-06-07
PCT/US2009/069885 WO2010078475A2 (en) 2009-01-02 2009-12-31 Methods and system for document reconstruction

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015153470A Division JP6141921B2 (ja) 2009-01-02 2015-08-03 文書再構成の方法及びシステム

Publications (1)

Publication Number Publication Date
JP2012514792A true JP2012514792A (ja) 2012-06-28

Family

ID=42312368

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011544617A Pending JP2012514792A (ja) 2009-01-02 2009-12-31 文書再構成の方法及びシステム
JP2015153470A Active JP6141921B2 (ja) 2009-01-02 2015-08-03 文書再構成の方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015153470A Active JP6141921B2 (ja) 2009-01-02 2015-08-03 文書再構成の方法及びシステム

Country Status (7)

Country Link
US (14) US8352855B2 (ja)
EP (1) EP2374067A2 (ja)
JP (2) JP2012514792A (ja)
KR (3) KR101463703B1 (ja)
DE (1) DE112009004951T5 (ja)
GB (2) GB2479479A (ja)
WO (1) WO2010078475A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045566A (ja) * 2014-08-20 2016-04-04 富士ゼロックス株式会社 文書処理装置及びプログラム
JP2017505962A (ja) * 2014-10-31 2017-02-23 小米科技有限責任公司Xiaomi Inc. 情報選択方法及び装置
JP2019125353A (ja) * 2017-12-29 2019-07-25 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド 電子文書中の文字列塊を推測する方法
US10423706B2 (en) 2014-10-31 2019-09-24 Xiaomi Inc. Method and device for selecting information

Families Citing this family (277)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760187B2 (en) 2004-07-30 2010-07-20 Apple Inc. Visual expander
US20040205568A1 (en) * 2002-03-01 2004-10-14 Breuel Thomas M. Method and system for document image layout deconstruction and redisplay system
US7676744B2 (en) * 2005-08-19 2010-03-09 Vistaprint Technologies Limited Automated markup language layout
US7856605B2 (en) 2006-10-26 2010-12-21 Apple Inc. Method, system, and graphical user interface for positioning an insertion marker in a touch screen display
US8570278B2 (en) 2006-10-26 2013-10-29 Apple Inc. Portable multifunction device, method, and graphical user interface for adjusting an insertion point marker
US8763038B2 (en) 2009-01-26 2014-06-24 Sony Corporation Capture of stylized TV table data via OCR
US8316358B2 (en) * 2007-05-31 2012-11-20 Research In Motion Limited Method and apparatus for processing XML for display on a mobile device
US8788523B2 (en) * 2008-01-15 2014-07-22 Thomson Reuters Global Resources Systems, methods and software for processing phrases and clauses in legal documents
US8201109B2 (en) 2008-03-04 2012-06-12 Apple Inc. Methods and graphical user interfaces for editing on a portable multifunction device
US8650507B2 (en) 2008-03-04 2014-02-11 Apple Inc. Selecting of text using gestures
WO2009146039A1 (en) * 2008-03-31 2009-12-03 Thomson Reuters Global Resources Systems and methods for tables of contents
US9639531B2 (en) 2008-04-09 2017-05-02 The Nielsen Company (Us), Llc Methods and apparatus to play and control playing of media in a web page
JP5132416B2 (ja) * 2008-05-08 2013-01-30 キヤノン株式会社 画像処理装置およびその制御方法
JP5377481B2 (ja) * 2008-06-18 2013-12-25 株式会社アテナテレコムラボ テーブルの表示と操作のプログラム
US8352855B2 (en) * 2009-01-02 2013-01-08 Apple Inc. Selection of text in an unstructured document
US20100235734A1 (en) 2009-03-16 2010-09-16 Bas Ording Methods and Graphical User Interfaces for Editing on a Multifunction Device with a Touch Screen Display
US8209607B2 (en) * 2009-04-14 2012-06-26 Freedom Scientific, Inc. Document navigation method
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
US8656314B2 (en) * 2009-07-30 2014-02-18 Lenovo (Singapore) Pte. Ltd. Finger touch gesture for joining and unjoining discrete touch objects
KR101622196B1 (ko) * 2009-09-07 2016-05-18 삼성전자주식회사 휴대용 단말기에서 피오아이 정보 제공 방법 및 장치
US10552710B2 (en) 2009-09-28 2020-02-04 Oracle International Corporation Hierarchical sequential clustering
US10013641B2 (en) * 2009-09-28 2018-07-03 Oracle International Corporation Interactive dendrogram controls
US20110099498A1 (en) * 2009-10-26 2011-04-28 Barkol Omer Graphical user interface hierarchy generation
CN101707532B (zh) * 2009-10-30 2012-08-15 中山大学 一种未知应用层协议自动分析方法
US8922582B2 (en) * 2009-11-16 2014-12-30 Martin J. Murrett Text rendering and display using composite bitmap images
KR101032446B1 (ko) * 2009-11-26 2011-05-03 광주과학기술원 영상의 정점 검출 장치 및 방법
US8508811B2 (en) * 2009-12-14 2013-08-13 Samsung Electronics Co., Ltd. Image forming apparatus and method of copying two-sided card thereof
US8577887B2 (en) * 2009-12-16 2013-11-05 Hewlett-Packard Development Company, L.P. Content grouping systems and methods
US20110179345A1 (en) * 2010-01-15 2011-07-21 Apple Inc. Automatically wrapping text in a document
US9135223B2 (en) * 2010-01-15 2015-09-15 Apple Inc. Automatically configuring white space around an object in a document
US20110179350A1 (en) * 2010-01-15 2011-07-21 Apple Inc. Automatically placing an anchor for an object in a document
US8756231B2 (en) * 2010-01-28 2014-06-17 International Business Machines Corporation Search using proximity for clustering information
JP5440222B2 (ja) * 2010-02-03 2014-03-12 富士ゼロックス株式会社 情報処理装置及びプログラム
US20110219294A1 (en) * 2010-03-04 2011-09-08 Skiff, Inc. System And Method For Automatic Continuation Marks In An Electronic Publication
US8473842B2 (en) 2010-05-12 2013-06-25 Microsoft Corporation Contour based flow layout
US8434001B2 (en) * 2010-06-03 2013-04-30 Rhonda Enterprises, Llc Systems and methods for presenting a content summary of a media item to a user based on a position within the media item
WO2012015406A1 (en) * 2010-07-29 2012-02-02 Hewlett-Packard Development Company, L.P. Inserting content and exclusion zone(s) into a page
US9326116B2 (en) 2010-08-24 2016-04-26 Rhonda Enterprises, Llc Systems and methods for suggesting a pause position within electronic text
US9218680B2 (en) * 2010-09-01 2015-12-22 K-Nfb Reading Technology, Inc. Systems and methods for rendering graphical content and glyphs
US8566702B2 (en) * 2010-09-20 2013-10-22 Blackberry Limited Methods and systems of outputting content of interest
US8661335B2 (en) * 2010-09-20 2014-02-25 Blackberry Limited Methods and systems for identifying content elements
US9002701B2 (en) 2010-09-29 2015-04-07 Rhonda Enterprises, Llc Method, system, and computer readable medium for graphically displaying related text in an electronic document
US20130205195A1 (en) * 2010-10-19 2013-08-08 Mohamed Dekhil Managing Content from Structured and Unstructured Data Sources
US20120096344A1 (en) * 2010-10-19 2012-04-19 Google Inc. Rendering or resizing of text and images for display on mobile / small screen devices
US20120102394A1 (en) * 2010-10-25 2012-04-26 Konica Minolta Systems Laboratory Inc. Application of path-fill algorithm to text layout around objects
US9697180B2 (en) * 2010-10-25 2017-07-04 Konica Minolta Laboratory U.S.A., Inc. System and method for text layout using a path-fill algorithm
US20120101980A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
US9576068B2 (en) * 2010-10-26 2017-02-21 Good Technology Holdings Limited Displaying selected portions of data sets on display devices
JP5444187B2 (ja) * 2010-10-26 2014-03-19 富士フイルム株式会社 携帯型表示装置ならびにその動作制御方法およびそのプログラム
US20130205202A1 (en) * 2010-10-26 2013-08-08 Jun Xiao Transformation of a Document into Interactive Media Content
US8687004B2 (en) * 2010-11-01 2014-04-01 Apple Inc. Font file with graphic images
WO2012068391A2 (en) * 2010-11-17 2012-05-24 Eloqua, Inc. Systems and methods for content development and management
US9251123B2 (en) * 2010-11-29 2016-02-02 Hewlett-Packard Development Company, L.P. Systems and methods for converting a PDF file
US8938685B2 (en) * 2010-12-31 2015-01-20 Verizon Patent And Licensing Inc. Automated graphical user interface design and development systems and methods
US8380753B2 (en) * 2011-01-18 2013-02-19 Apple Inc. Reconstruction of lists in a document
US8442998B2 (en) 2011-01-18 2013-05-14 Apple Inc. Storage of a document using multiple representations
US8963959B2 (en) 2011-01-18 2015-02-24 Apple Inc. Adaptive graphic objects
US8543911B2 (en) 2011-01-18 2013-09-24 Apple Inc. Ordering document content based on reading flow
EP2477122B1 (en) 2011-01-18 2018-10-24 Apple Inc. Ordering document content
US8615511B2 (en) 2011-01-22 2013-12-24 Operational Transparency LLC Data visualization interface
US9170825B2 (en) * 2011-04-21 2015-10-27 Oracle International Corporation Interface method resolution for virtual extension methods
US9069459B2 (en) * 2011-05-03 2015-06-30 Microsoft Technology Licensing, Llc Multi-threaded conditional processing of user interactions for gesture processing using rendering thread or gesture processing thread based on threshold latency
JP5843474B2 (ja) * 2011-05-09 2016-01-13 キヤノン株式会社 画像処理装置、画像処理方法、及び、プログラム
JP5801598B2 (ja) * 2011-05-09 2015-10-28 キヤノン株式会社 画像処理装置、画像処理方法、及び、プログラム
US9244605B2 (en) 2011-05-31 2016-01-26 Apple Inc. Devices, methods, and graphical user interfaces for document manipulation
US8560937B2 (en) * 2011-06-07 2013-10-15 Xerox Corporation Generate-and-test method for column segmentation
US8645819B2 (en) * 2011-06-17 2014-02-04 Xerox Corporation Detection and extraction of elements constituting images in unstructured document files
US10572578B2 (en) 2011-07-11 2020-02-25 Paper Software LLC System and method for processing document
US10452764B2 (en) 2011-07-11 2019-10-22 Paper Software LLC System and method for searching a document
AU2012281166B2 (en) * 2011-07-11 2017-08-24 Paper Software LLC System and method for processing document
WO2013009879A1 (en) 2011-07-11 2013-01-17 Paper Software LLC System and method for processing document
US9026519B2 (en) * 2011-08-09 2015-05-05 Microsoft Technology Licensing, Llc Clustering web pages on a search engine results page
US9477650B2 (en) * 2011-08-30 2016-10-25 Microsoft Technology Licensing, Llc Underlying grid structure and animation of tables
US20130067366A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Establishing content navigation direction based on directional user gestures
US9411784B2 (en) * 2011-11-22 2016-08-09 Adobe Systems Incorporated Method and computer readable medium for controlling pagination of dynamic-length presentations
JP5862260B2 (ja) * 2011-12-09 2016-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9734132B1 (en) * 2011-12-20 2017-08-15 Amazon Technologies, Inc. Alignment and reflow of displayed character images
US9098471B2 (en) * 2011-12-29 2015-08-04 Chegg, Inc. Document content reconstruction
US8942489B2 (en) 2012-01-23 2015-01-27 Microsoft Corporation Vector graphics classification engine
EP2807608B1 (en) 2012-01-23 2024-04-10 Microsoft Technology Licensing, LLC Borderless table detection engine
US10025979B2 (en) * 2012-01-23 2018-07-17 Microsoft Technology Licensing, Llc Paragraph property detection and style reconstruction engine
EP2807603B1 (en) 2012-01-23 2020-03-18 Microsoft Technology Licensing, LLC Formula detection engine
US20130191732A1 (en) * 2012-01-23 2013-07-25 Microsoft Corporation Fixed Format Document Conversion Engine
US8499263B1 (en) * 2012-03-29 2013-07-30 Mentor Graphics Corporation Encrypted profiles for parasitic extraction
US9292192B2 (en) 2012-04-30 2016-03-22 Blackberry Limited Method and apparatus for text selection
US20130311359A1 (en) * 2012-05-21 2013-11-21 Ofer ZINGER Triple-click activation of a monetizing action
US20130321867A1 (en) * 2012-05-31 2013-12-05 Xerox Corporation Typographical block generation
US9323726B1 (en) * 2012-06-27 2016-04-26 Amazon Technologies, Inc. Optimizing a glyph-based file
WO2014005609A1 (en) 2012-07-06 2014-01-09 Microsoft Corporation Paragraph alignment detection and region-based section reconstruction
US9164673B2 (en) * 2012-07-16 2015-10-20 Microsoft Technology Licensing, Llc Location-dependent drag and drop UI
US9595298B2 (en) 2012-07-18 2017-03-14 Microsoft Technology Licensing, Llc Transforming data to create layouts
US9336302B1 (en) 2012-07-20 2016-05-10 Zuci Realty Llc Insight and algorithmic clustering for automated synthesis
US9558173B2 (en) * 2012-08-03 2017-01-31 Google Inc. Method for creating a document model from discontinuous selections of an existing document
JP5783972B2 (ja) * 2012-08-17 2015-09-24 株式会社東芝 手書き文書処理装置、方法およびプログラム
US9785336B2 (en) 2012-08-17 2017-10-10 Sas Institute Inc. Macro-enabled, verbally accessible graphical data visualizations for visually impaired users
KR102110281B1 (ko) * 2012-09-07 2020-05-13 아메리칸 케미칼 소사이어티 자동화된 작성물 평가기
US11468243B2 (en) * 2012-09-24 2022-10-11 Amazon Technologies, Inc. Identity-based display of text
US10013488B1 (en) * 2012-09-26 2018-07-03 Amazon Technologies, Inc. Document analysis for region classification
US9436588B2 (en) * 2012-09-28 2016-09-06 Identify Software Ltd. (IL) Efficient method data recording
KR102084176B1 (ko) * 2012-10-10 2020-03-04 삼성전자주식회사 휴대용 장치 및 이의 영상 표시 방법
US9170714B2 (en) * 2012-10-31 2015-10-27 Google Technology Holdings LLC Mixed type text extraction and distribution
US20140164911A1 (en) * 2012-12-11 2014-06-12 Microsoft Corporation Preserving layout of region of content during modification
US9477382B2 (en) * 2012-12-14 2016-10-25 Barnes & Noble College Booksellers, Inc. Multi-page content selection technique
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US9008425B2 (en) * 2013-01-29 2015-04-14 Xerox Corporation Detection of numbered captions
US20140258852A1 (en) * 2013-03-11 2014-09-11 Microsoft Corporation Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US9223756B2 (en) * 2013-03-13 2015-12-29 Adobe Systems Incorporated Method and apparatus for identifying logical blocks of text in a document
US8972425B2 (en) * 2013-03-13 2015-03-03 Palo Alto Research Center Incorporated Efficient globally optimal interpretation of documents
US9208257B2 (en) * 2013-03-15 2015-12-08 Oracle International Corporation Partitioning a graph by iteratively excluding edges
US20140281980A1 (en) 2013-03-15 2014-09-18 Chad A. Hage Methods and Apparatus to Identify a Type of Media Presented by a Media Player
US9588675B2 (en) 2013-03-15 2017-03-07 Google Inc. Document scale and position optimization
US10262030B1 (en) * 2013-04-22 2019-04-16 Domo, Inc. Automatic dynamic reusable data recipes
CN104142961B (zh) * 2013-05-10 2017-08-25 北大方正集团有限公司 版式文档中复合图的逻辑处理装置和逻辑处理方法
WO2015003245A1 (en) * 2013-07-09 2015-01-15 Blueprint Sofware Systems Inc. Computing device and method for converting unstructured data to structured data
US9424337B2 (en) 2013-07-09 2016-08-23 Sas Institute Inc. Number of clusters estimation
US9495347B2 (en) * 2013-07-16 2016-11-15 Recommind, Inc. Systems and methods for extracting table information from documents
CN104331391B (zh) * 2013-07-22 2018-02-02 北大方正集团有限公司 文档格式转换装置和文档格式转换方法
US20150039637A1 (en) * 2013-07-31 2015-02-05 The Nielsen Company (Us), Llc Systems Apparatus and Methods for Determining Computer Apparatus Usage Via Processed Visual Indicia
CN104346615B (zh) * 2013-08-08 2019-02-19 北大方正集团有限公司 版式文档中复合图的提取装置和提取方法
JP2015035150A (ja) * 2013-08-09 2015-02-19 株式会社東芝 手書き文書処理装置、手書き文書処理方法及び手書き文書処理プログラム
US9576071B2 (en) 2013-09-12 2017-02-21 Dropbox, Inc. Graph-based data models for partitioned data
EP3044693A4 (en) * 2013-09-12 2017-05-03 Wix.com Ltd. System and method for automated conversion of interactive sites and applications to support mobile and other display environments
KR102245706B1 (ko) * 2013-09-17 2021-04-28 삼성전자주식회사 데이터 처리 방법 및 그 전자 장치
CN104462048B (zh) * 2013-09-18 2017-10-27 北大方正集团有限公司 表格排版方法和装置
US9740995B2 (en) 2013-10-28 2017-08-22 Morningstar, Inc. Coordinate-based document processing and data entry system and method
US9542391B1 (en) 2013-11-11 2017-01-10 Amazon Technologies, Inc. Processing service requests for non-transactional databases
US10599753B1 (en) 2013-11-11 2020-03-24 Amazon Technologies, Inc. Document version control in collaborative environment
US10540404B1 (en) 2014-02-07 2020-01-21 Amazon Technologies, Inc. Forming a document collection in a document management and collaboration system
US11336648B2 (en) 2013-11-11 2022-05-17 Amazon Technologies, Inc. Document management and collaboration system
US10114800B1 (en) * 2013-12-05 2018-10-30 Intuit Inc. Layout reconstruction using spatial and grammatical constraints
US10691877B1 (en) 2014-02-07 2020-06-23 Amazon Technologies, Inc. Homogenous insertion of interactions into documents
US9202178B2 (en) 2014-03-11 2015-12-01 Sas Institute Inc. Computerized cluster analysis framework for decorrelated cluster identification in datasets
US9355313B2 (en) 2014-03-11 2016-05-31 Microsoft Technology Licensing, Llc Detecting and extracting image document components to create flow document
US9251139B2 (en) * 2014-04-08 2016-02-02 TitleFlow LLC Natural language processing for extracting conveyance graphs
US20150293752A1 (en) * 2014-04-11 2015-10-15 Pradeep Varma Unrestricted, Fully-Source-Preserving, Concurrent, Wait-Free, Synchronization-Free, Fully-Error-Handling Frontend With Inline Schedule Of Tasks And Constant-Space Buffers
US10331764B2 (en) * 2014-05-05 2019-06-25 Hired, Inc. Methods and system for automatically obtaining information from a resume to update an online profile
JP2015215853A (ja) * 2014-05-13 2015-12-03 株式会社リコー システム、画像処理装置、画像処理方法およびプログラム
BE1021412B1 (nl) * 2014-06-16 2015-11-18 Itext Group Nv Computer-geïmplementeerde werkwijze, systeem en computerprogrammaproduct voor het structureren van een ongestructureerd pdf-document
US20160019192A1 (en) * 2014-07-21 2016-01-21 General Electric Company System and method to extract structured semantic model from document
USD760295S1 (en) * 2014-09-24 2016-06-28 Lexmark International, Inc. Portion of a display screen with icon
US9807073B1 (en) 2014-09-29 2017-10-31 Amazon Technologies, Inc. Access to documents in a document management and collaboration system
US20160092404A1 (en) * 2014-09-30 2016-03-31 Microsoft Technology Licensing, Llc Intent Based Feedback
US10282069B2 (en) 2014-09-30 2019-05-07 Microsoft Technology Licensing, Llc Dynamic presentation of suggested content
US20160110599A1 (en) * 2014-10-20 2016-04-21 Lexmark International Technology, SA Document Classification with Prominent Objects
US20160139783A1 (en) * 2014-11-13 2016-05-19 Microsoft Technology Licensing, Llc Detecting sidebar in document
US9715748B2 (en) * 2014-12-04 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for graphical data interaction and vizualization of graphs via paths
CN107209753A (zh) * 2015-01-30 2017-09-26 惠普发展公司,有限责任合伙企业 基于相关性测量的断点识别
US10891323B1 (en) * 2015-02-10 2021-01-12 West Corporation Processing and delivery of private electronic documents
WO2016141131A1 (en) 2015-03-03 2016-09-09 Software Robotics Corporation Limited Software robots for programmatically controlling computer programs to perform tasks
US9886426B1 (en) * 2015-03-26 2018-02-06 Accusoft Corporation Methods and apparatus for generating an efficient SVG file
US10387563B2 (en) * 2015-03-30 2019-08-20 International Business Machines Corporation Parallel parsing of markup language data
US10719220B2 (en) * 2015-03-31 2020-07-21 Autodesk, Inc. Dynamic scrolling
RU2610585C2 (ru) * 2015-03-31 2017-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для модификации текста в документе
USD779523S1 (en) * 2015-04-06 2017-02-21 Domo, Inc. Display screen or portion thereof with a graphical user interface for analytics
US10691323B2 (en) 2015-04-10 2020-06-23 Apple Inc. Column fit document traversal for reader application
CN104834701B (zh) * 2015-04-28 2019-03-26 成都品果科技有限公司 基于ios系统的智能搜索结果显示方法
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US9805025B2 (en) * 2015-07-13 2017-10-31 Seal Software Limited Standard exact clause detection
US9811505B2 (en) * 2015-07-20 2017-11-07 Sas Institute Inc. Techniques to provide processing enhancements for a text editor in a computing environment
US10353986B2 (en) * 2015-08-02 2019-07-16 Apple Inc. Automatically dividing text into multiple columns
US10191970B2 (en) 2015-08-19 2019-01-29 International Business Machines Corporation Systems and methods for customized data parsing and paraphrasing
US10572579B2 (en) * 2015-08-21 2020-02-25 International Business Machines Corporation Estimation of document structure
US9552527B1 (en) * 2015-08-27 2017-01-24 Lead Technologies, Inc. Apparatus, method, and computer-readable storage medium for determining a rotation angle of text
US9881003B2 (en) * 2015-09-23 2018-01-30 Google Llc Automatic translation of digital graphic novels
US9621761B1 (en) * 2015-10-08 2017-04-11 International Business Machines Corporation Automatic correction of skewing of digital images
US20170132484A1 (en) * 2015-11-05 2017-05-11 Christopher D. Malon Two Step Mathematical Expression Search
CN105302626B (zh) * 2015-11-09 2021-07-23 深圳市巨鼎医疗股份有限公司 Xps结构化数据的解析方法
US20170220858A1 (en) * 2016-02-01 2017-08-03 Microsoft Technology Licensing, Llc Optical recognition of tables
JP2017167433A (ja) * 2016-03-17 2017-09-21 株式会社東芝 サマリ生成装置、サマリ生成方法及びサマリ生成プログラム
CN107368465B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 一种用于流式文档的截图类笔记处理的系统及方法
CN107436895B (zh) * 2016-05-26 2020-12-04 中国移动通信集团云南有限公司 一种非结构化数据识别的方法和装置
JP6105179B1 (ja) * 2016-06-30 2017-03-29 楽天株式会社 画像処理装置、画像処理方法、および、画像処理プログラム
US10628519B2 (en) 2016-07-22 2020-04-21 Dropbox, Inc. Enhancing documents portrayed in digital images
KR101931859B1 (ko) * 2016-09-29 2018-12-21 (주)시지온 전자문서의 대표 단어 선정 방법, 전자 문서 제공 방법, 및 이를 수행하는 컴퓨팅 시스템
CN106649230B (zh) * 2016-09-30 2019-07-26 株洲中车时代电气股份有限公司 一种列车网络控制系统逻辑图的图形自动生成方法
CN106648332A (zh) * 2016-11-16 2017-05-10 惠州Tcl移动通信有限公司 一种智能终端快速选择的方法和系统
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
US11157855B2 (en) * 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
KR101890831B1 (ko) 2017-01-11 2018-09-28 주식회사 펍플 전자책 서비스 제공방법 및 그를 위한 컴퓨터 프로그램
US10319129B2 (en) * 2017-01-27 2019-06-11 Adobe Inc. Snapping line generation
US10191979B2 (en) 2017-02-20 2019-01-29 Sas Institute Inc. Converting graphical data-visualizations into sonified output
CN108694208A (zh) * 2017-04-11 2018-10-23 富士通株式会社 用于构造数据库的方法和装置
US10223585B2 (en) * 2017-05-08 2019-03-05 Adobe Systems Incorporated Page segmentation of vector graphics documents
US11562143B2 (en) 2017-06-30 2023-01-24 Accenture Global Solutions Limited Artificial intelligence (AI) based document processor
US11003796B2 (en) 2017-06-30 2021-05-11 Accenture Global Solutions Limited Artificial intelligence based document processor
US10489502B2 (en) * 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
GB2567407B (en) * 2017-07-31 2022-03-30 Sage Uk Ltd Method and apparatus for determining layout
US10339212B2 (en) * 2017-08-14 2019-07-02 Adobe Inc. Detecting the bounds of borderless tables in fixed-format structured documents using machine learning
US10417516B2 (en) * 2017-08-24 2019-09-17 Vastec, Inc. System and method for preprocessing images to improve OCR efficacy
US11475209B2 (en) 2017-10-17 2022-10-18 Handycontract Llc Device, system, and method for extracting named entities from sectioned documents
US10726198B2 (en) * 2017-10-17 2020-07-28 Handycontract, LLC Method, device, and system, for identifying data elements in data structures
KR101980977B1 (ko) * 2017-11-23 2019-05-21 성균관대학교산학협력단 다중 사용자 환경에서 사용자 기반 어플리케이션 그룹핑 방법 및 이를 수행하는 테이블탑 디스플레이 장치
AU2017279613A1 (en) 2017-12-19 2019-07-04 Canon Kabushiki Kaisha Method, system and apparatus for processing a page of a document
FI20176151A1 (en) 2017-12-22 2019-06-23 Vuolearning Ltd A heuristic method for analyzing the contents of an electronic document
KR102462516B1 (ko) 2018-01-09 2022-11-03 삼성전자주식회사 디스플레이 장치 및 이의 컨텐츠 제공 방법
US10296578B1 (en) 2018-02-20 2019-05-21 Paycor, Inc. Intelligent extraction and organization of data from unstructured documents
US11650970B2 (en) 2018-03-09 2023-05-16 International Business Machines Corporation Extracting structure and semantics from tabular data
US10762142B2 (en) 2018-03-16 2020-09-01 Open Text Holdings, Inc. User-defined automated document feature extraction and optimization
US11048762B2 (en) 2018-03-16 2021-06-29 Open Text Holdings, Inc. User-defined automated document feature modeling, extraction and optimization
CN108470021B (zh) * 2018-03-26 2022-06-03 阿博茨德(北京)科技有限公司 Pdf文档中表格的定位方法及装置
CN108446264B (zh) * 2018-03-26 2022-02-15 阿博茨德(北京)科技有限公司 Pdf文档中的表格矢量解析方法及装置
US11112927B2 (en) * 2018-04-25 2021-09-07 Adobe Inc. Digital content automated layout system
US11062135B1 (en) * 2018-05-17 2021-07-13 Amdocs Development Limited System, method, and computer program for determining and marking on a document what may be of interest to a user
US11004350B2 (en) * 2018-05-29 2021-05-11 Walmart Apollo, Llc Computerized training video system
US10936864B2 (en) * 2018-06-11 2021-03-02 Adobe Inc. Grid layout determination from a document image
US10685261B2 (en) * 2018-06-11 2020-06-16 GM Global Technology Operations LLC Active segmention of scanned images based on deep reinforcement learning for OCR applications
US11200413B2 (en) 2018-07-31 2021-12-14 International Business Machines Corporation Table recognition in portable document format documents
US11182542B2 (en) * 2018-10-29 2021-11-23 Microsoft Technology Licensing, Llc Exposing annotations in a document
US11232132B2 (en) * 2018-11-30 2022-01-25 Wipro Limited Method, device, and system for clustering document objects based on information content
US11238215B2 (en) 2018-12-04 2022-02-01 Issuu, Inc. Systems and methods for generating social assets from electronic publications
EP3891656A4 (en) * 2018-12-04 2022-08-24 Leverton Holding LLC METHODS AND SYSTEMS FOR AUTOMATIC TABLE RECOGNITION IN DOCUMENTS
US10824899B2 (en) 2018-12-27 2020-11-03 Microsoft Technology Licensing, Llc Structural clustering and alignment of OCR results
US11610277B2 (en) 2019-01-25 2023-03-21 Open Text Holdings, Inc. Seamless electronic discovery system with an enterprise data portal
US10984173B2 (en) * 2019-02-26 2021-04-20 Adobe Inc. Vector-based glyph style transfer
US11176310B2 (en) * 2019-04-01 2021-11-16 Adobe Inc. Facilitating dynamic document layout by determining reading order using document content stream cues
US10614345B1 (en) 2019-04-12 2020-04-07 Ernst & Young U.S. Llp Machine learning based extraction of partition objects from electronic documents
BR112021023313A2 (pt) 2019-05-21 2022-02-01 Geoquest Systems Bv Processo para destacar texto com orientação variada
US11113518B2 (en) 2019-06-28 2021-09-07 Eygs Llp Apparatus and methods for extracting data from lineless tables using Delaunay triangulation and excess edge removal
CN112287654A (zh) * 2019-07-25 2021-01-29 珠海金山办公软件有限公司 一种文档元素对齐方法及装置
US11915465B2 (en) 2019-08-21 2024-02-27 Eygs Llp Apparatus and methods for converting lineless tables into lined tables using generative adversarial networks
KR102244974B1 (ko) * 2019-08-22 2021-04-27 주식회사 심플랩 전자문서를 생성하는 서버 및 그 방법
US10740403B1 (en) 2019-08-23 2020-08-11 Capital One Services Llc Systems and methods for identifying ordered sequence data
US11270065B2 (en) 2019-09-09 2022-03-08 International Business Machines Corporation Extracting attributes from embedded table structures
CA3150535A1 (en) 2019-09-16 2021-03-25 Andrew BEGUN WIZARD FOR CREATION AND INTELLIGENT PROCESSING OF CROSS DOCUMENTS
KR102287149B1 (ko) * 2019-09-19 2021-08-06 주식회사 한글과컴퓨터 Pdf 문서에서 텍스트 라인 정보를 기초로 단락의 구분선을 표시하는 전자 장치 및 그 동작 방법
US12001486B2 (en) 2019-09-26 2024-06-04 International Business Machines Corporation Identifying reference data in a source data set
US11380116B2 (en) 2019-10-22 2022-07-05 International Business Machines Corporation Automatic delineation and extraction of tabular data using machine learning
CN110865859B (zh) * 2019-10-29 2021-10-22 维沃移动通信有限公司 图片显示方法、装置、电子设备及介质
RU2737720C1 (ru) * 2019-11-20 2020-12-02 Общество с ограниченной ответственностью "Аби Продакшн" Извлечение полей с помощью нейронных сетей без использования шаблонов
US10810709B1 (en) 2019-11-21 2020-10-20 Eygs Llp Systems and methods for improving the quality of text documents using artificial intelligence
CN110968667B (zh) * 2019-11-27 2023-04-18 广西大学 一种基于文本状态特征的期刊文献表格抽取方法
CN111008657A (zh) * 2019-11-29 2020-04-14 广州大学 一种街道环境多维度失序的空间分布识别方法
US11657101B2 (en) 2020-01-13 2023-05-23 Goldman Sachs & Co. LLC Document information extraction system using sequenced comparators
CA3105227C (en) * 2020-01-14 2023-06-27 Landmark Graphics Corporation Techniques for extraction of vectorized content of an oil and gas play within an unstructured file
US11409416B2 (en) * 2020-01-31 2022-08-09 Salesforce, Inc. Custom user interface generation for completing a predicted task
US11625934B2 (en) 2020-02-04 2023-04-11 Eygs Llp Machine learning based end-to-end extraction of tables from electronic documents
US11423042B2 (en) 2020-02-07 2022-08-23 International Business Machines Corporation Extracting information from unstructured documents using natural language processing and conversion of unstructured documents into structured documents
US11392753B2 (en) * 2020-02-07 2022-07-19 International Business Machines Corporation Navigating unstructured documents using structured documents including information extracted from unstructured documents
US11675970B2 (en) * 2020-02-14 2023-06-13 Open Text Corporation Machine learning systems and methods for automatically tagging documents to enable accessibility to impaired individuals
US11222201B2 (en) 2020-04-14 2022-01-11 International Business Machines Corporation Vision-based cell structure recognition using hierarchical neural networks
US11734576B2 (en) 2020-04-14 2023-08-22 International Business Machines Corporation Cooperative neural networks with spatial containment constraints
US11194953B1 (en) * 2020-04-29 2021-12-07 Indico Graphical user interface systems for generating hierarchical data extraction training dataset
US20210357702A1 (en) * 2020-05-13 2021-11-18 Trupanion, Inc. Systems and methods for state identification and classification of text data
US10970458B1 (en) * 2020-06-25 2021-04-06 Adobe Inc. Logical grouping of exported text blocks
US11176311B1 (en) * 2020-07-09 2021-11-16 International Business Machines Corporation Enhanced section detection using a combination of object detection with heuristics
US11367296B2 (en) * 2020-07-13 2022-06-21 NextVPU (Shanghai) Co., Ltd. Layout analysis
US11514697B2 (en) * 2020-07-15 2022-11-29 Oracle International Corporation Probabilistic text index for semi-structured data in columnar analytics storage formats
CN112001183B (zh) * 2020-07-26 2021-11-19 湖南省侍禾教育科技有限公司 一种基于段落语义的中小学试题分割提取方法及系统
US11514699B2 (en) * 2020-07-30 2022-11-29 International Business Machines Corporation Text block recognition based on discrete character recognition and text information connectivity
US11010543B1 (en) 2020-08-11 2021-05-18 Fmr Llc Systems and methods for table extraction in documents
CN112070142B (zh) * 2020-09-02 2024-05-10 平安科技(深圳)有限公司 车辆配件的分组方法、装置、电子设备及存储介质
KR102442510B1 (ko) * 2020-10-13 2022-09-13 주식회사 한글과컴퓨터 문서에 대한 저장 파일 형식을 자동으로 지정하는 문서 편집 장치 및 그 동작 방법
GB2609768A (en) * 2020-11-02 2023-02-15 Zhejiang Lab Multi-task language model-oriented meta-knowledge fine tuning method and platform
US11688193B2 (en) 2020-11-13 2023-06-27 International Business Machines Corporation Interactive structure annotation with artificial intelligence
US11030387B1 (en) 2020-11-16 2021-06-08 Issuu, Inc. Device dependent rendering of PDF content including multiple articles and a table of contents
US11416671B2 (en) * 2020-11-16 2022-08-16 Issuu, Inc. Device dependent rendering of PDF content
US11681734B2 (en) * 2020-12-09 2023-06-20 International Business Machines Corporation Organizing fragments of meaningful text
US11798210B2 (en) 2020-12-09 2023-10-24 Salesforce, Inc. Neural network based detection of image space suitable for overlaying media content
US11531454B2 (en) * 2020-12-10 2022-12-20 Microsoft Technology Licensing, Llc Selecting content in ink documents using a hierarchical data structure
JP2022092837A (ja) * 2020-12-11 2022-06-23 株式会社東海理化電機製作所 制御装置およびプログラム
US11657511B2 (en) * 2021-01-29 2023-05-23 Salesforce, Inc. Heuristics-based detection of image space suitable for overlaying media content
AU2021201352A1 (en) * 2021-03-02 2022-09-22 Canva Pty Ltd Systems and methods for extracting text from portable document format data
US11880425B2 (en) * 2021-04-02 2024-01-23 Content Square SAS System and method for identifying and correcting webpage zone target misidentifications
DE102021109522A1 (de) 2021-04-15 2022-10-20 J. Schlottmann - Net e. Kfm. Grafische Benutzeroberflächen
US20220335240A1 (en) * 2021-04-15 2022-10-20 Microsoft Technology Licensing, Llc Inferring Structure Information from Table Images
CN113343815B (zh) * 2021-05-31 2022-06-07 北森云计算有限公司 一种pdf等版式文档中识别表格的方法
US20240020473A1 (en) * 2021-11-25 2024-01-18 L&T Technology Services Limited Domain Based Text Extraction
US20230229850A1 (en) * 2022-01-14 2023-07-20 Microsoft Technology Licensing, Llc Smart tabular paste from a clipboard buffer
US12008829B2 (en) 2022-02-16 2024-06-11 Vastec, Inc. System and method for improved OCR efficacy through image segmentation
US20230282013A1 (en) * 2022-03-02 2023-09-07 Alteryx, Inc. Automated key-value pair extraction
US20240054280A1 (en) * 2022-08-09 2024-02-15 Ivalua S.A.S. Segmenting an Unstructured Set of Data
US11960818B2 (en) * 2022-08-23 2024-04-16 Adobe Inc. Automatic detection and removal of typographic rivers in electronic documents
US12073238B2 (en) * 2022-12-29 2024-08-27 United Parcel Service Of America, Inc. Intelligent user interface and computer functionality for overfly and landing charge auditing
US11837004B1 (en) * 2023-02-24 2023-12-05 Oracle Financial Services Software Limited Searchable table extraction
KR102563900B1 (ko) * 2023-03-31 2023-08-09 (주) 바우디움 구조화 문서를 취급하는 방법 및 이를 이용한 장치
KR102673900B1 (ko) * 2023-08-28 2024-06-11 주식회사 오르비스파브리카 표 데이터 추출 시스템 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250041A (ja) * 1998-02-27 1999-09-17 Toshiba Corp 文書処理装置および文書処理方法
JP2001101164A (ja) * 1999-09-29 2001-04-13 Toshiba Corp 文書画像処理装置及び文書画像処理方法
JP2003288334A (ja) * 2002-03-28 2003-10-10 Toshiba Corp 文書処理装置及び文書処理方法
JP2004234656A (ja) * 2003-01-29 2004-08-19 Ricoh Co Ltd 文書分析情報を使用して文書を再フォーマット化する方法及び製造物
US20070250497A1 (en) * 2006-04-19 2007-10-25 Apple Computer Inc. Semantic reconstruction
JP2009110500A (ja) * 2007-10-29 2009-05-21 Toshiba Corp ドキュメント処理装置、ドキュメント処理方法、ドキュメント処理装置のプログラム

Family Cites Families (237)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US145720A (en) * 1873-12-23 Improvement in nail-separating devices
US12400A (en) * 1855-02-13 Head-supporter for railroad-cars
US17941A (en) * 1857-08-04 Machine for forging nails
US97699A (en) * 1869-12-07 Improvement in flexible pipe-coupling
US284780A (en) * 1883-09-11 Island
US76295A (en) * 1868-04-07 Improvement in piston-packing
US38927A (en) * 1863-06-16 Improvement in sewing-machines
US61384A (en) * 1867-01-22 Improved edge plane foe boots and shoes
US227758A (en) * 1880-05-18 Samuel b
US194379A (en) * 1877-08-21 Improvement in condition-powders for horses and cattle
US4800485A (en) * 1982-06-01 1989-01-24 American Telephone And Telegraph Company On-line documentation facility
US4698625A (en) 1985-05-30 1987-10-06 International Business Machines Corp. Graphic highlight adjacent a pointing cursor
US4757549A (en) * 1985-12-12 1988-07-12 International Business Machines Corp. Freehand drawing containing invisible lines
JPH0685128B2 (ja) * 1987-03-12 1994-10-26 フアナツク株式会社 自動プログラミングシステム
US5111398A (en) 1988-11-21 1992-05-05 Xerox Corporation Processing natural language text using autonomous punctuational structure
CA2027253C (en) * 1989-12-29 1997-12-16 Steven C. Bagley Editing text in an image
JP2855797B2 (ja) 1990-06-15 1999-02-10 富士ゼロックス株式会社 文書処理装置
US5544317A (en) * 1990-11-20 1996-08-06 Berg; David A. Method for continuing transmission of commands for interactive graphics presentation in a computer network
US5172422A (en) * 1991-05-13 1992-12-15 Eastman Kodak Company Fast character segmentation of skewed text lines for optical character recognition
JPH0594433A (ja) 1991-10-02 1993-04-16 Fuji Xerox Co Ltd 文書処理装置
US5390259A (en) * 1991-11-19 1995-02-14 Xerox Corporation Methods and apparatus for selecting semantically significant images in a document image without decoding image content
US5335290A (en) 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
JPH05298358A (ja) 1992-04-21 1993-11-12 Toshiba Corp 文書構造解析装置及び文書構造解析方法
US5680479A (en) * 1992-04-24 1997-10-21 Canon Kabushiki Kaisha Method and apparatus for character recognition
US5523775A (en) 1992-05-26 1996-06-04 Apple Computer, Inc. Method for selecting objects on a computer display
JP2789971B2 (ja) 1992-10-27 1998-08-27 富士ゼロックス株式会社 表認識装置
JPH06214983A (ja) 1993-01-20 1994-08-05 Kokusai Denshin Denwa Co Ltd <Kdd> 文書画像の論理構造化文書への変換方法および装置
US5848184A (en) 1993-03-15 1998-12-08 Unisys Corporation Document page analyzer and method
JP3302147B2 (ja) 1993-05-12 2002-07-15 株式会社リコー 文書画像処理方法
NL9301004A (nl) * 1993-06-11 1995-01-02 Oce Nederland Bv Inrichting voor het bewerken en reproduceren van digitale beeldinformatie.
US5553217A (en) * 1993-09-23 1996-09-03 Ricoh Company, Ltd. Document layout using tiling
JP3349787B2 (ja) * 1993-10-15 2002-11-25 株式会社ソニー・コンピュータエンタテインメント 描画データ作成装置及び描画データ作成方法
JP2618832B2 (ja) 1994-06-16 1997-06-11 日本アイ・ビー・エム株式会社 文書の論理構造の解析方法及びシステム
AUPM704394A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Optimization method for the efficient production of images
US5537628A (en) 1994-08-29 1996-07-16 Microsoft Corporation Method for handling different code pages in text
US5555556A (en) 1994-09-30 1996-09-10 Xerox Corporation Method and apparatus for document segmentation by background analysis
US5883588A (en) * 1994-10-04 1999-03-16 Nec Corporation Data compression system and data compression device for improving data compression rate and coding speed
US5987171A (en) * 1994-11-10 1999-11-16 Canon Kabushiki Kaisha Page analysis system
US5778356A (en) * 1994-11-10 1998-07-07 Cadis, Inc. Dynamically selectable language display system for object oriented database management system
EP0723247B1 (en) * 1995-01-17 1998-07-29 Eastman Kodak Company Document image assessment system and method
US5805911A (en) * 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
JP3545824B2 (ja) 1995-02-21 2004-07-21 富士通株式会社 データ検索装置
US5689585A (en) 1995-04-28 1997-11-18 Xerox Corporation Method for aligning a text image to a transcription of the image
US5680511A (en) * 1995-06-07 1997-10-21 Dragon Systems, Inc. Systems and methods for word recognition
US5848186A (en) * 1995-08-11 1998-12-08 Canon Kabushiki Kaisha Feature extraction system for identifying text within a table image
JPH0969101A (ja) 1995-08-31 1997-03-11 Hitachi Ltd 構造化文書生成方法および装置
US6141462A (en) * 1995-10-11 2000-10-31 Dainippon Screen Mfg. Co., Ltd. Image processing using adjoining relationships between image parts
US5892842A (en) 1995-12-14 1999-04-06 Xerox Corporation Automatic method of identifying sentence boundaries in a document image
US5841900A (en) * 1996-01-11 1998-11-24 Xerox Corporation Method for graph-based table recognition
US5798487A (en) * 1996-01-18 1998-08-25 Tedea Huntleigh Intl. Ltd. Weighing device for rotary filling machines
JP3061765B2 (ja) * 1996-05-23 2000-07-10 ゼロックス コーポレイション コンピュータベースの文書処理方法
US5784487A (en) 1996-05-23 1998-07-21 Xerox Corporation System for document layout analysis
US6119120A (en) * 1996-06-28 2000-09-12 Microsoft Corporation Computer implemented methods for constructing a compressed data structure from a data string and for using the data structure to find data patterns in the data string
JP3772401B2 (ja) 1996-07-11 2006-05-10 富士ゼロックス株式会社 文書分類装置
US5956737A (en) 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
JP3099756B2 (ja) 1996-10-31 2000-10-16 富士ゼロックス株式会社 文書処理装置、単語抽出装置及び単語抽出方法
US6512848B2 (en) * 1996-11-18 2003-01-28 Canon Kabushiki Kaisha Page analysis system
GB9625284D0 (en) * 1996-12-04 1997-01-22 Canon Kk A data processing method and apparatus for identifying a classification to which data belongs
US6240430B1 (en) 1996-12-13 2001-05-29 International Business Machines Corporation Method of multiple text selection and manipulation
US6226402B1 (en) * 1996-12-20 2001-05-01 Fujitsu Limited Ruled line extracting apparatus for extracting ruled line from normal document image and method thereof
US6374200B1 (en) 1997-02-03 2002-04-16 Fujitsu Limited Layout apparatus for laying out objects in space and method thereof
US6252597B1 (en) * 1997-02-14 2001-06-26 Netscape Communications Corporation Scalable user interface for graphically representing hierarchical data
US6175844B1 (en) * 1997-05-29 2001-01-16 Adobe Systems Incorporated Ordering groups of text in an image
JP3143079B2 (ja) 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
US6298357B1 (en) * 1997-06-03 2001-10-02 Adobe Systems Incorporated Structure extraction on electronic documents
US6687404B1 (en) 1997-06-20 2004-02-03 Xerox Corporation Automatic training of layout parameters in a 2D image model
US7237193B1 (en) * 1997-07-29 2007-06-26 Symantec Corporation Unified program for simultaneously displaying graphically-editable graphics presentation and linguistically-editable linguistic definition of the graphics presentation and for synchronizing the graphics presentation and the linguistic definition to one another
US5991756A (en) * 1997-11-03 1999-11-23 Yahoo, Inc. Information retrieval from hierarchical compound documents
US6562077B2 (en) * 1997-11-14 2003-05-13 Xerox Corporation Sorting image segments into clusters based on a distance measurement
US6173073B1 (en) 1998-01-05 2001-01-09 Canon Kabushiki Kaisha System for analyzing table images
US7760187B2 (en) 2004-07-30 2010-07-20 Apple Inc. Visual expander
US6092092A (en) * 1998-03-13 2000-07-18 International Business Machines Corporation Gap-based style-run array mechanism
US6211856B1 (en) 1998-04-17 2001-04-03 Sung M. Choi Graphical user interface touch screen with an auto zoom feature
US6377704B1 (en) * 1998-04-30 2002-04-23 Xerox Corporation Method for inset detection in document layout analysis
JP4235286B2 (ja) * 1998-09-11 2009-03-11 キヤノン株式会社 表認識方法及び装置
US6263122B1 (en) * 1998-09-23 2001-07-17 Hewlett Packard Company System and method for manipulating regions in a scanned image
JP2000285140A (ja) 1998-12-24 2000-10-13 Ricoh Co Ltd 文書処理装置、文書分類装置、文書処理方法、文書分類方法およびそれらの方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US20070065838A1 (en) * 1999-01-19 2007-03-22 Maxygen, Inc. Oligonucleotide mediated nucleic acid recombination
US6377285B1 (en) * 1999-01-29 2002-04-23 Sony Corporation Zooming space-grid for graphical user interface
US6345279B1 (en) 1999-04-23 2002-02-05 International Business Machines Corporation Methods and apparatus for adapting multimedia content for client devices
US6504544B1 (en) * 1999-07-30 2003-01-07 Curl Corporation Processing layout of text graphical objects
US6542635B1 (en) 1999-09-08 2003-04-01 Lucent Technologies Inc. Method for document comparison and classification using document image layout
US7249318B1 (en) * 1999-11-08 2007-07-24 Adobe Systems Incorporated Style sheet generation
US6826727B1 (en) 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6664990B1 (en) 1999-12-07 2003-12-16 International Business Machines Corporation Computer display pointer with alternate hot spots
US6910182B2 (en) * 2000-01-31 2005-06-21 Xmlcities, Inc. Method and apparatus for generating structured documents for various presentations and the uses thereof
US6757870B1 (en) 2000-03-22 2004-06-29 Hewlett-Packard Development Company, L.P. Automatic table detection method and system
US20030090473A1 (en) * 2000-03-24 2003-05-15 Joshi Vikas B. Multiple screen automatic programming interface
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
TW466415B (en) 2000-08-28 2001-12-01 Compal Electronics Inc Hand-held device with zooming display function
US6938204B1 (en) 2000-08-31 2005-08-30 International Business Machines Corporation Array-based extensible document storage format
AUPR063400A0 (en) * 2000-10-06 2000-11-02 Canon Kabushiki Kaisha Xml encoding scheme
US7260777B2 (en) 2001-08-17 2007-08-21 Desknet Inc. Apparatus, method and system for transforming data
US8230323B2 (en) * 2000-12-06 2012-07-24 Sra International, Inc. Content distribution system and method
US7178100B2 (en) 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US20020118885A1 (en) * 2001-02-27 2002-08-29 Bernard Smeets Font compression and retrieval
US7080318B2 (en) 2001-02-28 2006-07-18 Koninklijke Philips Electronics N.V. Schema, syntactic analysis method and method of generating a bit stream based on a schema
CA2340531C (en) * 2001-03-12 2006-10-10 Ibm Canada Limited-Ibm Canada Limitee Document retrieval system and search method using word set and character look-up tables
US7565605B2 (en) * 2001-05-08 2009-07-21 Nokia, Inc. Reorganizing content of an electronic document
US6643653B1 (en) * 2001-06-01 2003-11-04 Oracle International Corporation Method and apparatus for identifying a data sequence related to a given data sequence
US20030014442A1 (en) 2001-07-16 2003-01-16 Shiigi Clyde K. Web site application development method using object model for managing web-based content
KR100474724B1 (ko) * 2001-08-04 2005-03-08 삼성전자주식회사 터치스크린을 가지는 장치 및 그 장치에 외부디스플레이기기를 연결하여 사용하는 방법
US7046848B1 (en) * 2001-08-22 2006-05-16 Olcott Peter L Method and system for recognizing machine generated character glyphs and icons in graphic images
US7483938B2 (en) * 2001-09-27 2009-01-27 International Business Machines Corporation System for character validation and method therefor
US6801673B2 (en) 2001-10-09 2004-10-05 Hewlett-Packard Development Company, L.P. Section extraction tool for PDF documents
US7031910B2 (en) * 2001-10-16 2006-04-18 Xerox Corporation Method and system for encoding and accessing linguistic frequency data
NO316480B1 (no) * 2001-11-15 2004-01-26 Forinnova As Fremgangsmåte og system for tekstuell granskning og oppdagelse
AUPR962001A0 (en) * 2001-12-19 2002-01-24 Redbank Manor Pty Ltd Document display system and method
EP1504369B1 (en) * 2002-04-24 2013-07-17 Intel Corporation System and method for processing of xml documents represented as an event stream
US7164797B2 (en) * 2002-04-25 2007-01-16 Microsoft Corporation Clustering
US7142728B2 (en) * 2002-05-17 2006-11-28 Science Applications International Corporation Method and system for extracting information from a document
US6904170B2 (en) 2002-05-17 2005-06-07 Hewlett-Packard Development Company, L.P. Method and system for document segmentation
JP2005526314A (ja) 2002-05-20 2005-09-02 タタ インフォテック リミティド 文書構造識別器
JP2004038321A (ja) 2002-06-28 2004-02-05 Fujitsu Ltd 文書レイアウト解析プログラム、文書レイアウト解析装置および文書レイアウト解析方法
US7523394B2 (en) * 2002-06-28 2009-04-21 Microsoft Corporation Word-processing document stored in a single XML file that may be manipulated by applications that understand XML
US20040003349A1 (en) 2002-06-28 2004-01-01 Microsoft Corporation Content segments
US7324120B2 (en) * 2002-07-01 2008-01-29 Xerox Corporation Segmentation method and system for scanned documents
US7027071B2 (en) * 2002-07-02 2006-04-11 Hewlett-Packard Development Company, L.P. Selecting elements from an electronic document
US7254270B2 (en) * 2002-07-09 2007-08-07 Hewlett-Packard Development Company, L.P. System and method for bounding and classifying regions within a graphical image
US20050216836A1 (en) * 2002-08-09 2005-09-29 Triplearc Uk Limited Electronic document processing
US20060104511A1 (en) 2002-08-20 2006-05-18 Guo Jinhong K Method, system and apparatus for generating structured document files
US7365758B2 (en) * 2002-10-21 2008-04-29 Microsoft Corporation System and method for scaling data according to an optimal width for display on a mobile device
US6965388B2 (en) * 2002-10-21 2005-11-15 Microsoft Corporation System and method for block scaling data to fit a screen on a mobile device
US7295711B1 (en) * 2002-10-23 2007-11-13 Altera Corporation Method and apparatus for merging related image segments
US20040083268A1 (en) * 2002-10-28 2004-04-29 Arti Shukla Methods and apparatuses for interfacing portable devices with digital sender devices
US7019713B2 (en) * 2002-10-30 2006-03-28 The University Of Chicago Methods and measurement engine for aligning multi-projector display systems
WO2004042507A2 (en) * 2002-10-31 2004-05-21 Arizan Corporation Methods and apparatus for summarizing document content for mobile communication devices
JP3974511B2 (ja) 2002-12-19 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報検索のためのデータ構造を生成するコンピュータ・システム、そのための方法、情報検索のためのデータ構造を生成するコンピュータ実行可能なプログラム、情報検索のためのデータ構造を生成するコンピュータ実行可能なプログラムを記憶したコンピュータ可読な記憶媒体、情報検索システム、およびグラフィカル・ユーザ・インタフェイス・システム
AU2003900865A0 (en) * 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods, systems and apparatus (NPW010)
US7313754B2 (en) 2003-03-14 2007-12-25 Texterity, Inc. Method and expert system for deducing document structure in document conversion
US7064829B2 (en) * 2003-03-20 2006-06-20 Timbre Technologies, Inc. Generic interface for an optical metrology system
US7305612B2 (en) * 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
US8056001B2 (en) 2003-04-10 2011-11-08 Hewlett-Packard Development Company, L.P. Method and apparatus for classifying elements of a document
US7890852B2 (en) * 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
JP2005043990A (ja) * 2003-07-23 2005-02-17 Toshiba Corp 文書処理装置および文書処理方法
US7428700B2 (en) 2003-07-28 2008-09-23 Microsoft Corporation Vision-based document segmentation
US7171618B2 (en) 2003-07-30 2007-01-30 Xerox Corporation Multi-versioned documents and method for creation and use thereof
GB0320278D0 (en) 2003-08-29 2003-10-01 Hewlett Packard Development Co Constrained document layout
US7360157B1 (en) * 2003-09-19 2008-04-15 Microsoft Corporation Aligning content in an electronic document
JP2005108230A (ja) 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US7424672B2 (en) 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
JP2005149269A (ja) 2003-11-18 2005-06-09 Hitachi Systems & Services Ltd 構造化文書の処理システム
JP4012140B2 (ja) * 2003-11-20 2007-11-21 キヤノン株式会社 画像処理装置、情報処理装置及びそれらの制御方法、プログラム
US7814419B2 (en) * 2003-11-26 2010-10-12 Nokia Corporation Changing an orientation of a user interface via a course of motion
US7085590B2 (en) 2003-12-31 2006-08-01 Sony Ericsson Mobile Communications Ab Mobile terminal with ergonomic imaging functions
US7441186B2 (en) 2004-01-23 2008-10-21 Microsoft Corporation System and method for automatically grouping items
US7441204B2 (en) 2004-02-06 2008-10-21 Microsoft Corporation Method and system for automatically displaying content of a window on a display that has changed orientation
US7386789B2 (en) * 2004-02-27 2008-06-10 Hewlett-Packard Development Company, L.P. Method for determining logical components of a document
US7441207B2 (en) 2004-03-18 2008-10-21 Microsoft Corporation Method and system for improved viewing and navigation of content
US7697756B2 (en) * 2004-04-09 2010-04-13 Siemens Medical Solutions Usa, Inc. GPU accelerated multi-label image segmentation (MLS)
US7499588B2 (en) 2004-05-20 2009-03-03 Microsoft Corporation Low resolution OCR for camera acquired documents
US7769756B2 (en) * 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
KR100747879B1 (ko) 2004-06-10 2007-08-08 캐논 가부시끼가이샤 화상 처리 장치, 제어 방법 및 기록 매체
US20050283739A1 (en) 2004-06-18 2005-12-22 Julia Mohr Method and system to improve usability of a web application by providing a zoom function
WO2006002328A2 (en) 2004-06-23 2006-01-05 Plain Sight Systems, Inc. System and method for document analysis, processing and information extraction
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US7584422B2 (en) * 2004-07-12 2009-09-01 Informatica Corporation System and method for data format transformation
US7343369B2 (en) * 2004-11-18 2008-03-11 International Business Machines Corporation Method and apparatus for predicting selectivity of database query join conditions using hypothetical query predicates having skewed value constants
CN100568221C (zh) 2004-11-22 2009-12-09 北京北大方正技术研究院有限公司 一种对报纸版面进行文字阅读顺序恢复的方法
JP4550882B2 (ja) 2004-11-25 2010-09-22 シャープ株式会社 情報分類装置、情報分類方法、情報分類プログラム、情報分類システム
US7676743B2 (en) * 2004-11-30 2010-03-09 Adobe Systems, Incorporated Applying type fitting across grouped text frames in a page layout application
US7693848B2 (en) * 2005-01-10 2010-04-06 Xerox Corporation Method and apparatus for structuring documents based on layout, content and collection
US8245131B2 (en) * 2005-02-10 2012-08-14 Hewlett-Packard Development Company, L.P. Constraining layout variations for accommodating variable content in electronic documents
JP4314204B2 (ja) 2005-03-11 2009-08-12 株式会社東芝 文書管理方法、システム及びプログラム
US7924285B2 (en) 2005-04-06 2011-04-12 Microsoft Corporation Exposing various levels of text granularity for animation and other effects
US7543229B2 (en) 2005-04-14 2009-06-02 Hewlett-Packard Development Company, L.P. Analysis of graphic design material
US7386558B2 (en) * 2005-04-22 2008-06-10 Microsoft Corporation Methods and systems for filtering an Extensible Application Markup Language (XAML) file to facilitate indexing of the logical content contained therein
US8302002B2 (en) 2005-04-27 2012-10-30 Xerox Corporation Structuring document based on table of contents
WO2006126467A1 (ja) * 2005-05-24 2006-11-30 Turbo Data Laboratories Inc. マルチプロセッサシステム及びその情報処理方法
US7392473B2 (en) 2005-05-26 2008-06-24 Xerox Corporation Method and apparatus for determining logical document structure
ATE375561T1 (de) * 2005-06-09 2007-10-15 Pdflib Gmbh Verfahren zur identifizierung von redundantem text in elektronischen dokumenten
US7697757B2 (en) 2005-06-15 2010-04-13 Hewlett-Packard Development Company, L.P. Computer assisted document modification
JP2006350867A (ja) 2005-06-17 2006-12-28 Ricoh Co Ltd 文書処理装置、文書処理方法、プログラム及び情報記録媒体
US7555711B2 (en) 2005-06-24 2009-06-30 Hewlett-Packard Development Company, L.P. Generating a text layout boundary from a text block in an electronic document
ATE373274T1 (de) 2005-07-01 2007-09-15 Pdflib Gmbh Verfahren zur identifizierung von wörtern in einem elektronischen dokument
US8249344B2 (en) 2005-07-01 2012-08-21 Microsoft Corporation Grammatical parsing of document visual structures
GB2428114A (en) 2005-07-08 2007-01-17 William Alan Hollingsworth Data Format Conversion System
US7559033B2 (en) 2005-07-21 2009-07-07 International Business Machines Corporation Method and system for improving selection capability for user interface
US7613996B2 (en) * 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US7734554B2 (en) * 2005-10-27 2010-06-08 Hewlett-Packard Development Company, L.P. Deploying a document classification system
JP4666155B2 (ja) 2005-11-18 2011-04-06 ソニー株式会社 リチウムイオン二次電池
US8307275B2 (en) 2005-12-08 2012-11-06 International Business Machines Corporation Document-based information and uniform resource locator (URL) management
JP5238105B2 (ja) 2005-12-09 2013-07-17 富士通株式会社 プログラム、及びデータ抽出方法
US7853869B2 (en) 2005-12-14 2010-12-14 Microsoft Corporation Creation of semantic objects for providing logical structure to markup language representations of documents
US7877685B2 (en) * 2005-12-29 2011-01-25 Sap Ag Persistent adjustable text selector
US7730422B2 (en) * 2006-01-25 2010-06-01 Microsoft Corporation Smart icon placement across desktop size changes
US7676741B2 (en) * 2006-01-31 2010-03-09 Microsoft Corporation Structural context for fixed layout markup documents
US7623710B2 (en) 2006-02-14 2009-11-24 Microsoft Corporation Document content and structure conversion
US7461349B1 (en) * 2006-02-28 2008-12-02 Adobe Systems Incorporated Methods and apparatus for applying functions to content
EP1841073A1 (en) * 2006-03-29 2007-10-03 STMicroelectronics N.V. Fast convergence LDPC decoding using BCJR algorithm at the check nodes
CN101055577A (zh) * 2006-04-12 2007-10-17 龙搜(北京)科技有限公司 可扩展标记语言集中器
CN101055578A (zh) 2006-04-12 2007-10-17 龙搜(北京)科技有限公司 基于规则的文档内容挖掘器
US7756333B2 (en) * 2006-04-26 2010-07-13 Microsoft Corporation Document layout verification
JP5049515B2 (ja) * 2006-06-06 2012-10-17 キヤノン株式会社 情報処理装置および情報処理方法および情報処理プログラム
US20070294646A1 (en) 2006-06-14 2007-12-20 Sybase, Inc. System and Method for Delivering Mobile RSS Content
US7805289B2 (en) 2006-07-10 2010-09-28 Microsoft Corporation Aligning hierarchal and sequential document trees to identify parallel data
DE102006046703A1 (de) * 2006-10-02 2008-04-17 Siemens Audiologische Technik Gmbh Hörvorrichtung mit gesteuerten Eingangskanälen und entsprechendes Verfahren
US20080120309A1 (en) * 2006-11-17 2008-05-22 Microsoft Corporation Storing, maintaining and locating information
US7911481B1 (en) * 2006-12-14 2011-03-22 Disney Enterprises, Inc. Method and apparatus of graphical object selection
US8689132B2 (en) * 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
WO2008090516A1 (en) * 2007-01-22 2008-07-31 Nokia Corporation System and method for screen orientation in a rich media environment
US20080183657A1 (en) 2007-01-26 2008-07-31 Yuan-Chi Chang Method and apparatus for providing direct access to unique hierarchical data items
US7778953B2 (en) 2007-02-19 2010-08-17 Kabushiki Kaisha Toshiba Document management apparatus and document management method
US20080235564A1 (en) * 2007-03-21 2008-09-25 Ricoh Co., Ltd. Methods for converting electronic content descriptions
US20080231643A1 (en) * 2007-03-21 2008-09-25 Nick Fletcher Method and apparatus for controlling the size or opacity of map elements rendered in an interactive map view
US8504553B2 (en) 2007-04-19 2013-08-06 Barnesandnoble.Com Llc Unstructured and semistructured document processing and searching
TW200846942A (en) 2007-05-21 2008-12-01 Univ Nat Taiwan Science Tech Clustering TRIZ analysis model
US20080307308A1 (en) 2007-06-08 2008-12-11 Apple Inc. Creating Web Clips
US8201096B2 (en) 2007-06-09 2012-06-12 Apple Inc. Browsing or searching user interfaces and other aspects
US9529438B2 (en) * 2007-06-27 2016-12-27 Hewlett-Packard Development Company, L.P. Printing structured documents
JP4590433B2 (ja) * 2007-06-29 2010-12-01 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム
JP4402138B2 (ja) * 2007-06-29 2010-01-20 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム
WO2009026508A1 (en) 2007-08-22 2009-02-26 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for providing content-aware scrolling
EP2193520A4 (en) * 2007-09-28 2010-12-01 Research In Motion Ltd METHOD AND DEVICE FOR PROVIDING ZOOM FUNCTIONALITY IN A DISPLAY OF A PORTABLE DEVICE
US20090089448A1 (en) 2007-09-28 2009-04-02 David Sze Mobile browser with zoom operations using progressive image download
US20090091564A1 (en) 2007-10-03 2009-04-09 Raju Thevan System and method for rendering electronic documents having overlapping primitives
US8125691B2 (en) 2007-10-11 2012-02-28 Canon Kabushiki Kaisha Information processing apparatus and method, computer program and computer-readable recording medium for embedding watermark information
US20090109243A1 (en) * 2007-10-25 2009-04-30 Nokia Corporation Apparatus and method for zooming objects on a display
US8015168B2 (en) * 2007-11-12 2011-09-06 Sap Ag String pooling
RU2007141666A (ru) 2007-11-13 2009-05-20 Николай Игоревич Докучаев (RU) Способ сбора, обработки и каталогизации целевой информации из неструктурированных источников
US8909654B2 (en) 2007-11-19 2014-12-09 Nippon Telegraph And Telephone Corporation Information search method, apparatus, program and computer readable recording medium
US8136402B2 (en) * 2007-11-28 2012-03-20 International Business Machines Corporation Accelerometer module for use with a touch sensitive device
US8504945B2 (en) * 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US8217964B2 (en) * 2008-02-14 2012-07-10 Nokia Corporation Information presentation based on display screen orientation
WO2010000020A1 (en) 2008-06-30 2010-01-07 Cathrx Ltd A catheter
US7809195B1 (en) * 2008-09-18 2010-10-05 Ernest Greene Encoding system providing discrimination, classification, and recognition of shapes and patterns
US8539342B1 (en) 2008-10-16 2013-09-17 Adobe Systems Incorporated Read-order inference via content sorting
US20100145720A1 (en) 2008-12-05 2010-06-10 Bruce Reiner Method of extracting real-time structured data and performing data analysis and decision support in medical reporting
US8352855B2 (en) 2009-01-02 2013-01-08 Apple Inc. Selection of text in an unstructured document
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
WO2010096193A2 (en) * 2009-02-18 2010-08-26 Exbiblio B.V. Identifying a document by performing spectral analysis on the contents of the document
TW201224718A (en) * 2010-12-03 2012-06-16 Hon Hai Prec Ind Co Ltd Wind guiding cover and computer system with same
US8543911B2 (en) 2011-01-18 2013-09-24 Apple Inc. Ordering document content based on reading flow
EP2477122B1 (en) 2011-01-18 2018-10-24 Apple Inc. Ordering document content
US20130007004A1 (en) * 2011-06-30 2013-01-03 Landon Ip, Inc. Method and apparatus for creating a search index for a composite document and searching same
WO2015066399A1 (en) * 2013-10-31 2015-05-07 Evernote Corporation Multi-touch navigation of multidimensional object hierarchies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250041A (ja) * 1998-02-27 1999-09-17 Toshiba Corp 文書処理装置および文書処理方法
JP2001101164A (ja) * 1999-09-29 2001-04-13 Toshiba Corp 文書画像処理装置及び文書画像処理方法
JP2003288334A (ja) * 2002-03-28 2003-10-10 Toshiba Corp 文書処理装置及び文書処理方法
JP2004234656A (ja) * 2003-01-29 2004-08-19 Ricoh Co Ltd 文書分析情報を使用して文書を再フォーマット化する方法及び製造物
US20070250497A1 (en) * 2006-04-19 2007-10-25 Apple Computer Inc. Semantic reconstruction
JP2009110500A (ja) * 2007-10-29 2009-05-21 Toshiba Corp ドキュメント処理装置、ドキュメント処理方法、ドキュメント処理装置のプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
村上 玄生 外1名: "CenterBandを用いた数式構造解析の安定化", 電子情報通信学会技術研究報告, vol. 第101巻 第712号, JPN6013012065, 7 March 2002 (2002-03-07), JP, pages 203 - 210, ISSN: 0002481364 *
金堀 利洋 外1名: "PDF中のテキスト情報を利用した視覚障害者のための英文PDF科学技術文書読取りシステム", 電子情報通信学会論文誌, vol. 第J90-D巻 第3号, JPN6013012066, 1 March 2007 (2007-03-01), JP, pages 706 - 714, ISSN: 0002481365 *
駱 琴 外2名: "ルールベースの適用による日本語新聞紙紙面の構造認識", 電子情報通信学会論文誌 (J75−D−II), vol. 第J75-D-II巻第9巻, JPN6014013065, 25 September 1992 (1992-09-25), pages 1514 - 1525, ISSN: 0002779673 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045566A (ja) * 2014-08-20 2016-04-04 富士ゼロックス株式会社 文書処理装置及びプログラム
JP2017505962A (ja) * 2014-10-31 2017-02-23 小米科技有限責任公司Xiaomi Inc. 情報選択方法及び装置
US10423706B2 (en) 2014-10-31 2019-09-24 Xiaomi Inc. Method and device for selecting information
JP2019125353A (ja) * 2017-12-29 2019-07-25 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド 電子文書中の文字列塊を推測する方法
JP7186075B2 (ja) 2017-12-29 2022-12-08 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド 電子文書中の文字列塊を推測する方法

Also Published As

Publication number Publication date
US20150324338A1 (en) 2015-11-12
EP2374067A2 (en) 2011-10-12
US20100174732A1 (en) 2010-07-08
DE112009004951T5 (de) 2012-06-06
US20100174985A1 (en) 2010-07-08
US8443278B2 (en) 2013-05-14
GB2479479A (en) 2011-10-12
US9575945B2 (en) 2017-02-21
GB201111173D0 (en) 2011-08-17
US20100174978A1 (en) 2010-07-08
KR101463703B1 (ko) 2014-11-19
US20130311490A1 (en) 2013-11-21
US20100174975A1 (en) 2010-07-08
US20100174979A1 (en) 2010-07-08
GB2498137A (en) 2013-07-03
US20100174976A1 (en) 2010-07-08
KR101324799B1 (ko) 2013-11-01
US20130185631A1 (en) 2013-07-18
US20100174977A1 (en) 2010-07-08
US20100174983A1 (en) 2010-07-08
JP2016006661A (ja) 2016-01-14
US8261186B2 (en) 2012-09-04
US8892992B2 (en) 2014-11-18
WO2010078475A4 (en) 2011-06-03
US9959259B2 (en) 2018-05-01
US9460063B2 (en) 2016-10-04
US8352855B2 (en) 2013-01-08
US8365072B2 (en) 2013-01-29
US20130042172A1 (en) 2013-02-14
US9063911B2 (en) 2015-06-23
US8719701B2 (en) 2014-05-06
US8473467B2 (en) 2013-06-25
CN102317933A (zh) 2012-01-11
GB201305919D0 (en) 2013-05-15
US8832549B2 (en) 2014-09-09
KR20130051017A (ko) 2013-05-16
WO2010078475A2 (en) 2010-07-08
KR20130116958A (ko) 2013-10-24
US20100174982A1 (en) 2010-07-08
JP6141921B2 (ja) 2017-06-07
US20100174980A1 (en) 2010-07-08
KR20110112397A (ko) 2011-10-12
WO2010078475A3 (en) 2011-04-14
US8438472B2 (en) 2013-05-07

Similar Documents

Publication Publication Date Title
JP6141921B2 (ja) 文書再構成の方法及びシステム
US8959116B2 (en) Storage of a document using multiple representations
US8166037B2 (en) Semantic reconstruction
TWI472933B (zh) 用於文件中之列表重建的方法及電腦程式產品
JP2012155714A (ja) 文書コンテンツの順序付け

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130315

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130617

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140707

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140731

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140807

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140901

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150403