JP5480920B2 - 文書内のリストの再構築 - Google Patents

文書内のリストの再構築 Download PDF

Info

Publication number
JP5480920B2
JP5480920B2 JP2012007324A JP2012007324A JP5480920B2 JP 5480920 B2 JP5480920 B2 JP 5480920B2 JP 2012007324 A JP2012007324 A JP 2012007324A JP 2012007324 A JP2012007324 A JP 2012007324A JP 5480920 B2 JP5480920 B2 JP 5480920B2
Authority
JP
Japan
Prior art keywords
list
column
instructions
group
lists
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.)
Active
Application number
JP2012007324A
Other languages
English (en)
Other versions
JP2012164305A (ja
Inventor
フィリップ アンドリュー マンスフィールド,
マイケル ロバート レビー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2012164305A publication Critical patent/JP2012164305A/ja
Application granted granted Critical
Publication of JP5480920B2 publication Critical patent/JP5480920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/137Hierarchical processing, e.g. outlines
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Description

仮出願の優先権の主張
本願は、2011年1月18日に出願された、発明の名称が「文書及びアダプティブグラフィックオブジェクトに対する複数の表現を記憶する、ページ内容を順序付けるリスト群の再構築」である、米国仮出願番号第61/433951号、2011年1月18日に出願された、発明の名称が「文書内のリストの再構築」である、米国仮特許出願番号第61/433959号の優先権を主張するものである。これらは、参照することによって組み込まれる。
電子文書の著者は、通常は、リスト編集ツールを使用することなく、そうでなければ、文書内の意味構造とするリストを特定することなく、リストと、それ以外の連続するあるいはグループ化されているコンテンツ(内容)構造(例えば、番号付けされたチャプタ、セクション、脚注、書誌項目等)を作成する。加えて、著者が文書内のこの構造を記号化(符号化)しているとしても、仮想プリンタドライバを通じてPDF印刷する場合にはその構造が失われてしまう可能性がある。
リスト情報が文書内の構造で明示的に示されない場合、これは、様々なアプリケーションが、そのようなリストを活かす機能を使用することを妨げてしまう。アプリケーションは、ユーザに対する追加のリストエントリ群を提案することができず、容易に文書を案内することができない、あるいは正確にリストの部分をコピーすることができない。
本発明のいくつかの実施形態は、リストが明示的に記号化されていない文書に対するリスト群のセットを再構築するための新規の方法を提供する。いくつかの実施形態では、この文書は、1つ以上のカラムを含み、リスト群のセットは、各カラムに対して別々に再構築される。カラム内のリストを再構築するために、いくつかの実施形態は、幾何学的な解析(例えば、テキストラインの水平方向のインデント)と語彙的な解析(例えば、リストラベル群内の文字群に基づいて、リスト群のタイプを識別すること)の組み合わせを使用する。
各カラムに対しては、いくつかの実施形態の方法は、まず、幾何学的な解析と語彙的な解析の組み合わせを実行して、カラム内のリスト間隔を識別する。この方法は、適切な統計的特性を有する位置揃えされたインデントギャップ群の集合に基づいて、リストラベル群とリストコンテンツ間の潜在的なスペーサ群を判定する。これらのリストスペーサ群は、リスト項目を示す特定の基準を検索するための語彙的な解析を使用することによって確認することができる。いくつかの実施形態では、次に、この方法は、異なる識別されるリストスペーサ群に基づいて、カラム内の各リスト項目に対するレベルを判定する。
この情報を使用することで、この方法は、カラム内のリスト群を再構築する。この方法は、リストレベル群とスペーサ群とを使用して、1つのリストの一部となる可能性のあるリスト項目を識別し、そして、リストテンプレートに基づいてリスト群をカテゴリに分けて、そして、リスト項目群が1つのリスト内で整合するかどうかを判定することによって、そのリスト項目群の照合を確認する。カラム内のリスト群が一旦再構築されると、いくつかの実施形態は、連続するカラムとの間で照合しているリスト群を識別して、文書全体に渡ってリスト群を再構築する。カラムは、同一のページ上でにあっても、複数のページ上にあっても良い。
前述の要約は、本発明のいくつかの実施形態の概要の導入として提供することを意図している。これは、本明細書で開示されるすべての発明特徴事項の導入あるいは概要であることを意味するものではない。後続の詳細説明と、その詳細説明が参照する図面は、要約と他の実施形態で説明される実施形態を更に説明するものである。従って、本明細書によって説明されるすべての実施形態を理解するためには、この要約と、詳細説明と図面との完全な精読が必要とされる。また、請求項で定義される特徴事項は、要約で示される詳細、詳細説明及び図面によって制限されるべきでないのものであり、むしろ、請求項によって定義されるべきもである。これは、請求項で定義される特徴事項は、その特徴事項の範囲から逸脱することなく、他の特定の形態で実施することができるからである。
本発明の新規な特養は、添付の請求項で説明される。しかしながら、説明のために、本発明のいくつかの実施形態は、以下の図面で説明される。
様々なリストを含むカラムの例を示す図である。 テキストの1つ以上のカラム群に渡るリストを再構築するためのいくつかの実施形態のプロセスを概念的に示す図である。 人間の目からはリストが属していることが明らかであることがわかる23個の順序付けされたテキストラインからなる1つのカラムを示す図である。 カラムの最初の8つのライン群にも生じる、カラムに対して識別されるリスト項目の最初の候補群を示す図である。 図4のカラムに対するいくつかの実施形態のリストレベル計算を示す図である。 図4の最初の2つのラインに対して取り得るラベルテンプレートを示す図である。 テキストライン群のカラム内のリストスペーサ群を識別するためのいくつかの実施形態のプロセスを概念的に示す図である。 1つのカラム内のリスト群を再構築するためのいくつかの実施形態のプロセスを概念的に示す図である。 1つのカラム内のリスト群を再構築するためのいくつかの実施形態のプロセスを概念的に示す図である。 11段階に渡る未処理リスト群のスタックを概念的に示す図である。 複数のラインのリスト項目の例を示す図である。 リスト項目との間の段落がリスト項目群としてグループ化され、そして、リスト群のクラスタとはならない場合のカラムを示す図である。 入れ子になっているリストヘッダ群の間の段落コンテンツを有するリスト群の一部の例を示す図である。 入れ子になっているリスト群の例を示す図である。 複数のカラムに渡るリスト群を再構築するためのいくつかの実施形態のプロセスを概念的に示す図である。 文書の2つの連続するカラムを示す図である。 カラム群のリスト群が組み合わされる場合に、第1のリストがレベルを変更しながら、第2のリストは同一のレベルのままにしているが、単調性の要件が維持されている場合の文書の2つの連続するカラムの例を示す図である。 いくつかの実施形態のリスト再構築モジュールのソフトウェアアーキテクチャを概念的に示す図である。 本発明のいくつかの実施形態が実現される電子システムを概念的に示す図である。
以下の記載は、いくつかの詳細を説明目的のために説明する。しかしながら、当業者は、本発明が、これらの特定の詳細を使用することなく実施することができることを理解するであろう。他の例では、周知の構造及びデバイス群がブロック図の形式で示されることで、不必要な詳細で本発明の記載を曖昧にしないようにしている。
本発明のいくつかの実施形態は、文書に対するリスト群のセット(集合)を再構築するための新規な方法を提供する。この方法では、リスト群は明示的には記号化されない。いくつかの実施形態では、文書は、1つ以上のカラム(欄:column)を含んでいて、リスト群のセットは、各カラムに対して別々に再構築される。カラム内のリストを再構築するために、いくつの実施形態は、幾何学的な解析(例えば、テキストライン(テキスト行)の水平方向のインデント)と語彙的な解析(例えば、リストラベル(リスト標識)群内の文字群に基づくリスト群のタイプの識別)の組み合わせを使用する。
各カラムに対しては、いくつかの実施形態の方法は、最初に、幾何学的な解析と語彙的な解析の組み合わせを実行して、カラム内のリスト間隔(list spacing:リストスペーシング)を識別する。この方法は、適切な統計的特性を有する位置合わせされているインデントギャップ(indendation gap)群の集合に基づいて、リストラベル群とリスト内容(list content:リストコンテンツ)との間の潜在的なスペーサ(spacer)群を判定する。これらのリストのスペーサ群は、リスト項目の特定の基準指標をサーチするための語彙的な解析を使用することによって確認することができる。いくつかの実施形態では、この方法は、異なる識別されているリストのスペーサ群に基づいて、カラム内の各リスト項目に対するレベルを判定する。
この情報を使用して、この方法は、カラム内のリスト群を再構築する。この方法は、リストのレベルとスペーサを使用して、単一のリストの部分の可能性のあるリスト項目群を識別し、かつ、リストテンプレートに基づいてリスト群をカテゴリに分け、そして、リスト項目群が単一のリスト内で整合するかどうかを判定することによって、これらの照合を確認する。カラム内のリスト群が一旦再構築されると、いくつかの実施形態は、連続するカラム間で照合するリストを識別して、文書全体に渡ってリスト群を再構築する。カラム群は、同一のページ上にあっても良いし、複数のページに渡ってあっても良い。
図1は、様々なリスト群を含むカラム100の例を示している。人間の目から見て明らかなように、カラムは、「I」、「II」、「III」のラベルが付けられているメインリストに加えて、このリストの内部に入れ子になっている様々なリスト群を含んでいる。しかしながら、リスト構造がカラム100を含む文書内で記号化されていない場合には、この文書を使用するアプリケーション群は、このリスト構造を使用することができないことになる。いくつかの実施形態の方法は、幾何学的な解析(例えば、カラム100内のリスト項目群のインデントの異なるレベルを識別する)と語彙的な解析(「I」、「II」、「III」のシーケンスを識別する等)の組み合わせを使用して、これらのリストを再構築し、かつ文書のモデルで、このリスト群を記号化する。
本発明のいくつかの実施形態の詳細を以下で説明する。セクションIは、文書内のリスト群を再構築するためのプロセスの全体フローを説明する。次に、セクションIIは、カラム内のリスト群を識別し、かつ再構築するための詳細プロセスを説明する。セクションIIIは、カラム群のセットに渡ってリスト群を照合するための詳細プロセスを説明する。セクションIVは、リスト群を再構築するためのいくつかの実施形態のモジュールのソフトウェアアーキテクチャを説明する。そして、セクションVは、本発明のいくつかの実施形態が実現される電子システムを説明する。
I.リスト再構築の全体フロー
上述のように、いくつかの実施形態は、電子文書内のリスト群を識別して再構築する。ここで、これらのリスト群は、語彙的な構造として明示的には記号化されない。このようなリスト群は、番号付けされたチャプタ、セクション、脚注、書誌項目、写真、週の日付、命令行、目次の内容、箇条書きの概要等であっても良い。これらのリストは、明示的には記号化されていない場合がある。それは、これらのリストは、リスト作成ツール(例えば、シンプルテキストエディタ)を持たないワードプロセッシングアプリケーションによって、あるいはリスト内の各エントリに対する個々のテキストボックスあるいはレイアウト領域を使用するグラフィック指向プログラムによって、作成されているからである。いくつかの場合、文書は、明示的なリストを伴って作成されている可能性があるが、語義的な構造はフォーマット変換において失われている可能性がある(例えば、文書が、仮想プリンタドライバを通じてPDFファイルに保存される場合)。
文書内のこのような暗黙的なリスト群を検出して、その暗黙的なリスト群を明示的に記号化されたリスト群へと変換することは、その文書を使用するアプリケーションに、そのような記号化された構造の利点を提供することを可能にする。例えば、エディタソフトウェアは、適切なフォーマットで、自動的に生成される次のリスト項目とラベルを提示することができる。ハイパーリンク、リンクされている目次、及び他のそのような電子的に記号化されている、連続的な項目に対するリファレンスを自動的に生成することができ、また、ユーザが文書を編集することで、それらが参照するオブジェクトを移動することができる。文書ビューアアプリケーションは、ユーザに、チャプタ番号あるいは他のそのようなリスト項目を使用して文書を検索して案内することを可能にすることができる。アプリケーション間通信に対して、リストを再構築することは、ユーザに、文書ビューアから暗黙的なリストをコピーして、そのリストを明示的なリストとして文書エディタにペーストすることを可能にすることで、更なる編集を容易にすることができる。加えて、リスト再構築は、ベクトルデータからなるグラフィック文書(例えば、PDFファイル)を文書編集アプリケーションに完全にインポートするために必要とされる一般的な語義的な再構築の一部として使用することができる。この一般的な語義的な再構築は、米国特許出願第12/455866号として出願され、米国特許出願公開第2010/0174985号明細書に詳細に説明されていて、これは、参照することで本明細書に組み込まれる。
いくつかの実施形態では、リスト再構築プロセスは、幾何学的な方法と語彙的な方法の組み合わせを使用して、暗黙的なリスト群を識別して、それらを明示的なリスト群へと変換する。つまり、このプロセスは、コンテンツ(例えば、インデント)の配置と外観(アピアランス)の両方を考慮することに加えて、リスト内のラベル群を形成するために使用される特定の文字(例えば、ローマ数字)を考慮する。
図2は、1つ以上のテキストのカラムに渡るリストを再構築するためのいくつかの実施形態のプロセス200を概念的に示している。このプロセス200は、図3−図6を参照することによって説明され、これらは、リスト再構築プロセスの様々な態様を示している。図示されるように、このプロセス200は、順序付けされたテキストライン群からなる1つ以上のカラムを受信する(205)ことによって開始する。記載のように、いくつかの実施形態は、最初に、テキストの各カラムを別々に評価し、次に、連続するカラム間でリスト群を比較する。複数ページの文書に対しては、いくつかの実施形態は、それらのページが1つのカラムからなるページ群である場合でさえも、リスト再構築プロセスに対するセパレートカラム(別欄)として各ページを取り扱う。
いくつかの実施形態では、リスト群が存在しない場合でさえ、テキストライン群とカラム群の順序付けは、文書内で明示的に記号化される。他の実施形態では、その上、テキストライン群とカラム群は意味的に再構築される。このような再構築に対する方法は、米国特許出願公開第2010/0174985号明細書に詳細に記載されており、これは、参照することによって本明細書に組み込まれる。
図3は、人間の目には、明らかにリストに属しているように見える、23個の順序付けされたテキストラインからなる1つのカラム300を示している。しかしながら、任意の明示的な記号付けすることなく、電子的なアプリケーションはリスト構造には関知することはないであろう。図示のように、リスト構造は3つのレベルのリスト群を含んでいる。いくつかの実施形態では、改行(ラインブレーク)が文書内のリスト構造内で記号化される一方で、他の実施形態は、文書再構築プロセスを使用して、ワード(単語)とライン(行)を識別して、また、ライン群がすべて1つのカラムであることを識別する。
次に、プロセス200は、カラム群のそれぞれのリストスペーサを識別する(210)。上述のように、いくつかの実施形態は、各カラム内のリスト群を別々に再構築する。当業者は、図2に示されるプロセス200ではなく、いくつかの実施形態では、カラム群のそれぞれに対する処理210−220を経由するループを介在する場合があることを認識するであろう。
いくつかの実施形態では、リストスペーサは、テキストライン内で識別されるギャップとなる。ここで、テキストラインは、ギャップがリストラベル(例えば、カラム300内の最初のライン内の「I」)とリストコンテンツ(例えば、その同一ライン内の「メインヘッダ1」)との間のセパレータとされる可能性のある候補であることを示す特定の基準を満足するものである。リストスペーサは特定のタイプのスペーサであり、ここで、いくつかの実施形態では、ページコンテンツが含まれない、できるかぎり伸びている縦方向のストリップ(vertical strip)として定義する。
カラム内のリストスペーサを識別するために、いくつかの実施形態は、カラムのテキストライン群内のスプリットギャップ群を識別して、そして、これらのスプリットギャップ群の縦方向縦方向の組立(assembly:アセンブリ)を検出する。まとめると、ベースライン(基準線)のy軸によってソートされるテキストライン群を用いて、このプロセスは、ページの下部で開始する。ページの下部から、このプロセスは、連続するテキストライン群から、x−インターバル(間隔)で重複する潜在的なスプリットギャップ群を組み立てる。これは、縦方向に伸びる矩形状のストリップを生成する。この縦方向に伸びる矩形状のストリップは、潜在的なスプリットギャップ群の組み立てられている集合それぞれのギャップを完全に通過するものである。つまり、縦方向のストリップの幅は、その集合でx−間隔で組み立てられているすべての交差点に広がっている。テキストラインと重複する潜在的なスプリットギャップを持たないテキストラインにストリップが達するまで、ストリップはできる限り縦方向に延伸される。スプリットギャップ群の縦方向の組立がリスト項目群を示す特定の基準に合致する場合、ギャップ群の組立はリストスペーサとして識別される。図7の以下の説明では、リストスペーサを識別するためのプロセスを詳細に説明する。
図4は、カラム400に対して識別されるリスト項目が開始する候補群を示していて、これは、カラム300の最初の8個のラインについてもあてはまる。この場合、テキストライン群のすべてが実際にリスト項目であるので、すべてのラインは、図示のようにリストスペーサに関係している。8個のラインのそれぞれは、ラインの第1番目の単語と第2番目の単語との間に潜在的なスプリットギャップを有していて(第1番目の単語とは、例えば、「I」、「A」、「B」、「i」等である)、第2番目の単語は左側に位置合わせされている。これらのスプリットギャップは、図示される3つのリストスペーサに組み立てられる。
図2に戻り、プロセス200は、リストスペーサ付きの各ラインに対するリストレベルを識別する(215)。ラインのリストレベルは、カラム内のラインの相対的なインデントを判定するために使用される。図5は図4におけるカラム400に対するいくつかの実施形態によるリストレベル計算を示している。図示されるように、いくつかの実施形態は、ベースラインの左エッジからカラムの左エッジへと、リストスペーサ付きの任意のラインのベースラインを伸ばしている。このプロセスは、伸ばされたベースラインが交差する同一のカラム内のテキストライン群に属するリストスペーサ群の数を計数する。図示されるように、この数はカラムの最初のラインに対してはゼロとなる(即ち、伸ばされたベースラインはどのリストスペーサとも交差しない)。第3番目のライン(また、第2番目と第7番目のラインについても)に対しては、この数は1となり、一方で、第5番目のライン(第4番目と第6番目のライン)は、2つのリストスペーサと交差する。これらの数は、テキストラインのリストレベルとして自身の各テキストラインに関連づけられる。いくつかの実施形態は、ゼロではなく1から番号付けを開始する。
次に、このプロセスは、各カラムに対するリスト群を再構築する(220)。このリストの再構築プロセスは、図8及び図9を参照して後述するセクションIIで詳細に説明する。一般的に、このプロセスは、未処理のリスト群のスタックを作成し、そして、様々なルールを使用して、スタック内に新規のリストを作成し、項目群をリストに追加し、そして、リスト群を打ち切って(クローズアウト(close out)して)、それらをスタックから除去する。このリスト再構築プロセスは、いくつかの実施形態では、ラベルテンプレート識別機能、ラベルレクサー(lexer)機能、及びラベル生成機能を使用する。
ラベルテンプレート識別機能は、いくつかの実施形態では、特定のリストに対して使用され、かつサポートされるアルファベットのセットから選択する、アルファベットあるいはテンプレートを識別する。このようなアルファベットの例には、10進表記の{0、1、2、...、9}、小文字のローマ字{i、v、x、l、c、d、m}、大文字のローマ字{I、V、X、L、C、D、M}、小文字のラテン文字{a、b、c、...、z}、大文字のラテン文字{A、B、C、...、Z}、小文字のギリシャ文字{α、β、γ、...、ω}、大文字のギリシャ文字{Α、Β、Γ、...、Ω}、ディスクビュレット(Disc Bullet){●}、サークルビュレット(Circle Bullet){○}、ダッシュビュレット(Dash Bullet){−}、アスタリスクビュレット(Asterisk Bullet){*}等がある。
特定のリストエントリに対するラベルテンプレートは、プレフィックスストリング、サフィックスストリング及びビュレットあるいは序数の形式(これらに対しては、アルファベットが使用される)からなる。特定のラベルに対するラベルテンプレートは、ラベル(特定のリスト項目に対するリストスペーサの左側の最初の文字として識別される)の最後の文字から開始して、サポートされるアルファベットの1つと照合する文字に到達するまで逆行することによって識別される。そのような文字が一旦検出されると、その文字がリストタイプとアルファベットを定義する。文字が複数のアルファベット(例えば、「i」、「D」)内にある場合、複数のテンプレートが選択され、かつリスト再構築の後段の処理で、選択されたものの中から決定される。
このプロセスは、アルファベットに照合するものの内の1つである限り、先行する文字群のチェックを継続する。この文字群の範囲は、いくつかの実施形態では、ラベルに対する序数あるいはビュレットの範囲を定義する。序数の範囲の前にあるラベル内のすべての文字群はプレフィックスを定義し、序数の範囲の後にあるラベル内のすべての文群はサフィックスを定義する。つまり、図6に示されるように、カラム400の最初のラインに対するラベルテンプレートは、空白のプレフィックス、大文字のローマ字あるいは大文字のラテン文字、「.」のサフィックスである。この場合、大文字のローマ字のテンプレートが大文字のラテン文字よりも優先される。これは、文字「I」は、特に、カラムの先頭において、大文字のローマ字のアルファベットに属することがよりふさわしいからである。しかしながら、このレベルでの次のリスト項目が「J」であった場合、大文字のラテン文字がこの時点で選択されることとなる。
いくつかの実施形態は、プレフィックス及びサフィックスの少なくとも一方のプロパティも制限する。このようなプロパティは、ストリング長、文字セット、あるいは正規表現を含んでいても良い。例えば、サフィックスを、1文字長に制限することができ、あるいは、いくつかの特定の値(例えば、「.」、「)」、「:」等)に制限することができる。プレフィックスとサフィックスは、いくつかの実施形態では、特定のタイプ(例えば、ビュレットが付けられているリスト)に対しては完全に認めないようにすることもできる。
プレフィックス定義とサフィックス定義と、序数のタイプに加えて、いくつかの実施形態は、ラベルテンプレートにおけるフォント情報とスタイル情報とを含んでいる。例えば、最初のエントリがカラム300内の最初のラインであるリストに対するテンプレートは、通常(即ち、非ボールド、非イタリック、下線なし)のTimesNewRomanフォントで、空白のプレフィックス、大文字のローマ字の序数、「.」のサフィックスを示すことができる。
特定のリストタイプのラベルレクサー機能は、入力として、ラベルのビュレット部分あるいは序数部分を使用して、リストラベルの項目番号を生成する。例えば、図6に示されるライン群の両方は1の項目番号を有し、一方、図5に示される第3番目のラインは2の項目番号を有している。いくつかの実施形態では、ビュレットがすべて付されているリストタイプあるいはそれ以外の順不同のリストタイプは、常に、1の項目番号を生成する。共通の順序付けられたリストタイプ(例えば、小文字のローマ字、大文字のローマ字等)に対しては、いくつかの実施形態は、周知の技術を使用して、決定性有限オートマン(DFA)としてラベルレクサー(語彙解析部)を実装する。最も単純な場合(例えば、10進表記、小文字のラテン文字、大文字のラテン文字)に対しては、いくつかの実施形態は、文字コード群についての演算を使用するラベルレクサーを実装する。
ラベル生成機能は、本質的には、ラベルレクサー機能の逆の機能である。ラベル生成部は、所与のラベルテンプレートと項目番号に対するラベルを生成する。例えば、図6に示される最初のラインに関連付けられているラベルテンプレートに対しては項目番号4が与えられる場合、ラベルジェネレータは「IV」を生成することになる。いくつかの実施形態は、ビュレットが付けられているリストに対する入力とは無関係に同一のものを生成する。順序付けされたリスト群の序数部分に対して、ラベル生成部は、いくつかの実施形態では、通常は、底(例えば、10進表記及びローマ数字に対しては底が10、ラテン文字に対して底が26等)の乗数による整数除算を使用して、その底における数の桁を判定し、そして、各桁のストリング記述を順番通りに連結することになる。
図2に戻って、プロセス200は、カラム間のリスト同士を照合する(225)。このリスト照合プロセスは、図10及び図12を参照して以下のセクションIIIで詳細に説明する。各カラムに対して再構築されるリストを用いることで、いくかの実施形態では、このプロセスは、最初のカラムの最後にあるオープンリスト群を識別し、これらのオープンリスト群を次のカラムの開始にあるオープンリスト群と照合することを試行して、これらのリスト群を組み合わせる。
上述のように、テキストライン群のカラム内のリストスペーサ群を識別するために、いくつかの処理が実行される。図7は、いくつかの実施形態における、テキストライン群のカラム内のリストスペーサ群を識別するためのプロセス700を概念的に示している。図示されるように、このプロセス700は、順序付けされたテキストラインのカラムを受信する(705)ことによって開始する。図2を参照して説明されるように、いくつかの実施形態は、文書内のいくつかのカラムそれぞれを別々に評価する。いくつかの実施形態では、リストスペーサは各カラムに対して別々に識別される。
次に、このプロセスは、カラムのテキストライン群内のスプリットギャップ群(あるいは潜在的なスプリットギャップ群)を識別する(710)。スプリットギャップ(分割間隔)は、文章(センテンス)内の2つの連続するワード(単語)間の期待されるギャップよりも大きいワード間あるいはその類の内容との間のギャップである。いくつかのフォーマット(例えば、リッチワードプロセッサフォーマット)では、スプリットギャップは、文書内で使用される間隔があけられている文字群に基づいて識別することができる(例えば、タブ文字群、1列に並ぶ複数のスペース文字の連続、カラムを分離する明示的な挿入語句あるいはマージン、浮動画像、及び他の文書内容構造等)。ベクトルグラフィック文書(あるいは、所与の情報だけでグリフ(記号)の位置となる他の文書)に対しては、いくつかの実施形態は、語義再構築プロセスの一部としてスプリットギャップ群を識別し、その詳細は、米国特許出願公開第2010/0174985号明細書に開示され、これは、参照することによって本明細書に組み込まれる。このようないくつかの実施形態は、ワード内のグリフ間の平均的な間隔と、ワード間の平均的な間隔とを判定するためのクラスタ解析を実行し、そして、平均的なワード間の間隔よりも大きいギャップ群をスプリットギャップあるいは潜在的なスプリットギャップに分類する。
スプリットギャップが一旦識別されると、いくつかの実施形態は、米国特許出願公開第2010/0174985号明細書に記載されるようなプロセスを使用して、これらのギャップからスペーサを作成する。まとめると、このプロセスは、縦方向のスプリットギャップ群の集合をスペーサに組み立てる(アセンブルする)。このプロセス700は、カラムの最下部にある未評価テキストラインを選択する(715)。初回の処理715を通じて、これは、カラム内の最下部のテキストラインとなる。処理を行う毎に、このプロセスは次のテキストラインを選択することになる。
次に、このプロセスは、選択されているテキストラインが少なくとも1つのスプリットギャップを含んでいるかどうかを判定する(720)。テキストラインが任意のスプリットギャップを含んでいない場合、プロセスは750に進み、任意のテキストラインがカラム内にまだ残っているかどうかを判定する。この場合、カラムは、テキストラインを通過する任意のリストスペーサを含むことはない。一方、選択されているラインが少なくとも1つのスプリットギャップを含んでいる場合、このプロセスは、テキストラインからスプリットギャップを選択する(725)。異なる実施形態では、左から右へ、右から左へ、あるいは任意の順番でスプリットギャップを選択する。
次に、このプロセスは、選択されているスプリットギャップがオープンスペーサのセットと交差する(730)かどうかを判定する。以下の段落で説明するように、いくつかの実施形態は、連続するテキストラインの少なくとも部分的に水平に並んでいるスプリットギャップ群のスペーサセット群を作成する。例えば、図4のカラム400では、第5番目のテキストラインの「ii」と「第3ヘッダ2」との間のギャップは、第6番目のテキストの「iii」と「第3ヘッダ3」との間のギャップと並んでいる。いくつかの実施形態では、選択されているスプリットギャップが、スプリットギャップ間のライン群内にテキストが介在することなく、先行するライン群の任意のラインを含むスペーサセットと交差するかどうかも判定する。例えば、カラム400の第1のライン内の「I」と「メインヘッダ1」との間のギャップは、第8番目のライン内の「II」と「メインヘッダ2」との間のギャップと並んでいて、いくつかの実施形態はこれらのスプリットギャップを一列に並べる。これは、第2番目のラインから第7番目のライン内に介在するテキストが存在しないからである。
選択されているスプリットギャップがオープンスペーサセット(即ち、先行するラインを含んでいる、あるいは先行するライン内のテキストによってブロックされていないスペーサセット)と交差しない場合、このプロセスは、選択されているスプリットギャップを含んでいる新規のスペーサセットを作成する(735)。例えば、カラム400において、プロセスは、最初に、第8番目のライン内のスプリットギャップに対するスペーサセットを最初に作成し、そして、この時、評価する第7番目のラインは、「C」と「第2ヘッダ3」との間のスプリットギャップに対する新規のスペーサセットを作成しなければならいであろう。これは、既に作成されているスペーサセットと交差しないからである。
一方、選択されているスプリットギャップがオープンスペーサセットと交差する場合、このプロセスは選択されているスプリットギャップを、交差しているスペーサセットに追加する。いくつかの実施形態は、スプリットギャップ群の交差点を使用して、スペーサセットによって定義される縦方向のストリップの境界群を判定する。例えば、カラム400の第4番目のライン、第5番目のライン、第6番目のラインはそれぞれスプリットギャップを有し、また、これらのスプリットギャップはスペーサ405を形成するように並んでいる。スペーサ405はこれらの3つのギャップの内の最も狭い幅と同じくらい幅しかない。これは、スペーサの幅は、ギャップ群の水平軸に沿う交差点によって定義されるからである。
図3はカラム300に対して生成されるスペーサ群を示している。図示されるように、いくつかの実施形態は、テキストラインの開始の前にあるスペース(空間)はスプリットギャップとしてはカウントしないが、そのようなスペースを介するスペーサを組み立てることを妨げない。例えば、スペーサ305は第5番目のテキストラインから第8番目のテキストラインによってそれぞれ分離される4つのスプリットギャップの組立品である。加えて、3つのスペーサ310−320が存在していて、これらは、骨子となるメインヘッダ群が互いに接続してしまうことを防いでいて、また、4つのスペーサ325−340は、メインヘッダと第2ヘッダとが接続してしまうことを防いでいる。これらのスペーサはすべて、自身の右側に左揃えされているテキストを有しいるので、これらのスペーサの幅は、左の境界のテキスト(即ち、リスト項目番号)の右エッジに基づいて判定される。
プロセス700に戻ると、このプロセスは、次に、更なるスプリットギャップ群がテキストラインに残っているかどうかを判定する(745)。更なるギャップが残っている場合、このプロセスは725に戻り、次のギャップを選択する。ギャップのすべてが現在選択されているテキストラインに対して評価されている場合、このプロセスは、任意のテキストラインが残っているかどうかを判定する(750)。更なるテキストラインが評価される必要がある場合(即ち、現在選択されているテキストラインがカラム内の最上位のラインでない場合)、このプロセスは715に戻り、下部の未評価のテキストラインを選択する。カラム内のすべてのギャップ(すべてのテキストラインのすべてのギャップ)の評価後、このプロセスは755に進み、組み立てられているスペーサがリストスペーサであるかどうかを判定する。
このプロセス700は、スペーサセット(即ち、処理715−750におけるスプリットギャップから構築されているセット群の1つ)を選択する(755)。このプロセスは、左から右へ、上から下へ、あるいはそれらの任意の組み合わせで、スペーサセットを選択することができる。
次に、このプロセスは、選択されているスペーサセットがリストスペーサの特徴を有しているかどうかを判定する(760)。カラムに対するスペーサ群を構築しながら、いくつかの実施形態は、カラム内で検出されるスペーサ群のすべての統計値を収集する。これらの集計値を使用して、いくつかの実施形態では、リストスペーサ群を特定の基準に合致するスペーサ群として識別する。この基準は、テキストライン内のスプリット(分割)を示す(例えば、カラムを2つに分割すべきであることを示す)スペーサ群と比較して、このスペーサがリストラベルとリストコンテンツ(内容)との間とのギャップの可能性があるという指標である。このような基準の例は、リストスペーサの右にあるワード群が左揃えにされているという要件であり、一方で、リストスペーサと、その左にあるスペーサ(あるいはマージン)との間にはゼロあるいは1つのワードがあるという傾向がある(この1つのワードはリストラベルである)。
リストスペーサが一旦識別されると、いくつかの実施形態では、リストスペーサ群が通過する潜在的なスプリットギャップ群を検査する。例えば、図3のスペーサ305の場合、4つのスプリットギャップだけが存在するが、スペーサは縦方向の長さが23ラインとなっている。テキストラインの第1番目のワードと第2番目のワードとの間をリストスペーサが通過する場合(任意のテキストラインによるスプリットが実行された後)、テキストラインは潜在的なリスト項目の開始の候補としてフラグが付けられ、それに関係するリストスペーサがそのテキストラインに割り当てられる。いくつかの実施形態では、スペーサが薄すぎるためにそうでなければ破棄されるとしても、スペーサがリストスペーサに対するすべての基準に合致する場合にはスペーサ群をリストスペーサとして確保しても良い。
選択されているスペーサがリストスペーサの特徴に合致する場合、プロセス700は、そのセットをリストスペーサとして識別する(765)。いくつかの実施形態では、リストスペーサは、大規模な文書再構築プロセスで使用するためにメモリに記憶される。いくつかの実施形態では、リストスペーサを、文書を記述するファイル内の情報として記憶する(例えば、スペーサ自身を文書オブジェクトとして記憶する)。次に、このプロセスは、評価対象の任意の更なるスペーサセットが残っているかどうかを判定する(770)。多くのスペーサセットが残っている場合、このプロセスは755に戻り、次のスペーサを選択する。スペーサセットのすべてが評価されると、プロセスは終了する。
II カラム内のリスト群の再構築
上述のように、いくつかの実施形態では、未処理のリスト群のスタックを使用することによって一度に1つのカラム内のリスト群を再構築する。図8は、1つのカラム内のリスト群を再構築するためのいくつかの実施形態のプロセス800を概念的に示している。プロセス800は、図4と図9を参照して説明し、ここで、図4は8個のラインを有するカラム400を示していて、図9は11個の段階905−955を介する未処理のリストのスタック900を概念的に示している。
図示されるように、プロセス800は、識別されているリストスペーサ群とレベル群とを有するテキストライン群のカラムを受信する(802)ことによって開始する。いくつかの実施形態では、リストスペーサ群とレベル群は、上述のセクションIで説明されるように識別される(即ち、スペーサ群を検出するために潜在的なスプリットギャップ群を使用して、リストスペーサ群であるスペーサ群を判定して、そして、各スペーサに対するレベルを検出することによる)。
次に、このプロセスは、カラムに対する未処理のリストの空のスタックを作成する(804)。上述のように、図9はスタック900を示していて、ここでは、第1段階905では空きになっている(即ち、スタック内には未処理のリスト群は存在しない)。このプロセスは、カラムの右エッジのオープン位置も設定する(806)。プロセス800で後述するように、オープン位置は、新規のリストの開始がオープンのままにすることができるか、あるいはクローズされるべきかを判定するために使用される。
次に、このプロセスは、カラム内の次のテキストラインを選択する(808)。いくつかの実施形態では、このプロセスは、カラム内の最上位のテキストラインで開始する。カラム400を参照すると、これは、「I」で開始するラインである。いくつかの実施形態では、リストスペーサ群を有するラインのみを処理し、それ以外のラインはすべて無視する(即ち、リストとリストとの間にコンテンツ(内容)があるライン群)、一方、他の実施形態は、カラム内のすべてのテキストラインを処理する。
次に、プロセス800は、選択されているテキストラインがリストスペーサと識別されているレベルを有するかどうかを判定する(810)。上述のように、いくつかの実施形態では、リストスペーサ群と識別されているレベル群を有するテキストライン群のみを処理し、他方、他の実施形態では、すべてのテキストラインを処理する。プロセス800は、すべてのテキストラインを検査し、選択されているテキストラインがリストスペーサと識別されているレベルを有さない場合、このプロセスは、以下で詳細に説明する852に進む。
選択されているテキストラインがリストスペーサと識別されているレベルを有する場合、このプロセスは、未処理のリストが、現在のラインと同一のリストスペーサとレベルを有するスタック内にあるかどうかを判定する(814)。そのような場合、現在のラインは未処理のリストに属している場合がある。1回目の処理814では、もちろん、同一のあるいは異なるリストスペーサとレベルを有する未処理のリストは存在しない。現在選択されているテキストラインと同一のスペーサとレベルを有するリストが、スタック内で未処理の場合、このプロセスは、後述の844へ進む。
一方、現在選択されているテキストラインと同一のスペーサとレベルとを有する未処理のリストがスタック内にない場合、このプロセスは、現在のリストに対する任意の候補リストテンプレートを識別する(816)。上述のセクションで説明されるように、いくつかの実施形態では、リストスペーサから開始して、ワードを遡ることで、現在のラインが属しているリストに対して使用されるアルファベットを識別することを試行する。いくつかの実施形態では、最初のリスト項目が曖昧な場合に、複数の候補リストテンプレートを識別し、テンプレート決定をオープンのままにすることができる。これは、最初のリスト項目が、複数の異なるアルファベット(例えば、「I」、「i」等)となり得る特徴を有しているからである。
次に、このプロセスは、現に識別されている候補リストテンプレートそれぞれに対して、現在のテキストラインの最初のワードの序数の部分に、自身のリストタイプのためのレクサーを適用する。この時点で、候補リストテンプレート群の識別により、このプロセスは、プレフィックス、サフィックス、テキストラインの最初のワード(ラベル)の序数部分を判定している。
このプロセスは、テキストラインの最初のワードが、少なくとも1つの候補テンプレートに対して対応する項目番号を有する正規のリストラベルであるかどうかを判定する(#722)。レクサー機能を使用して(818)、正しい出力(アルファベットの項目番号の1つとして組み合わせる必要がない)が得られる場合、現在のラインの最初のワードが項目の正規のリストラベルとなる。例えば、ラベル「i」は、2つの正規のアルファベット(小文字のローマ字と大文字のラテン文字)に分解することができる。
ワードが一致するテンプレートが存在しない場合、ラインはリスト項目(リスト再構築を実行するアプリケーションによって認識されるアルファベットでは少なくともない)ではなく、そして、プロセスは後述の852に進む。しかしながら、最初のワードが少なくとも1つの一致を有している場合、このプロセスは、オープンエンド状態の新規の未処理リストを作成する(824)。リストの最後(エンド)に項目の追加を継続することができる場合、リストはオープンエンド状態を有する。一方、リストの最後に項目をこれ以上追加することが一旦できなくなると、このリストは、クローズエンド状態を有することになる。いくつかの実施形態では、リストは、常に、オープンエンド状態のスタックに追加される。
リストラベルが2つ以上のアルファベットとなり得る場合、新規の未処理リストは明確なテンプレートを有することはなく、むしろ、一致する(処理822)任意の候補のテンプレート群がリストに対して記憶されることになる。第2番目のリスト項目がリストに追加される場合、このプロセスは、一致するテンプレート群の1つを選択することによってこのテンプレート決定を解決することになる。
図9の第2の段階910は、第1のリスト960がスタック900に追加されていることを示している。図示されるように、リスト960は、現在、カラム400内の最初のラインに対応する、1つの項目だけを有している。このラインに対するリストラベルが「I」であるので、これは、項目番号1を有する大文字のローマ字あるいは項目番号9を有する大文字のラテン文字のどちらかであり得る。つまり、このリストはスタックに追加され、2つの取り得るテンプレートを記憶する。図示されるように、大文字のローマ字が最初にリストされている、これは、これは、2つの取り得るアルファベットの上位の優先度であるからである。一般的には、リスト内で検出される最初の序数が「I」あるいは「i」である場合、対応するローマ数字のアルファベットがよりアルファベットらしく、だけれども、もちろん、項目が、先行するカラムから継続するラテン文字のアルファベットリストとなるという可能性は残っている。
次に、プロセス800は、現在のラインのリストスペーサが、オープンのままであるかどうかを判定する(826)。上述のように、いくつかの実施形態は、新規のリストのスタート(開始)状態がオープンのままにされるべきかどうかを判定するためにオープン位置を使用する。リストが、先行するカラム、ページ、セクション等から継続するリストであるという可能性が存在する場合、リストのスタート状態はオープンのままにされる。つまり、リストが、現在のカラム内の先行するリスト内部で入れ子になっていない場合、スタート状態はオープンのままになる。オープン位置は、カラム内の最も左にあるリストを追跡するために使用され、また、この位置の右にあるスペーサ群を有する任意のリスト群は、クローズされているスタート状態を有することになる。
つまり、現在のラインのリストスペーサがオープン位置の左にある場合、このプロセスは、新規のリストのスタート状態をオープンする(828)。そうでなければ、現在のラインのリストスペーサがオープン位置に、あるいはオープン位置の右にある場合、このプロセスは、新規のリストのスタート状態をクローズする(829)。現在のラインに対するリストスペーサがオープン位置の右にある場合、カラムは、現在のリストスペーサの左に項目群を有するリストを既に有している。このように、現在のスペーサは、先行するカラムから継続するものではなく、新規のリスト内の最初の項目を有しなければならなくなり、これは、少なくとも1つの他のリスト内で入れ子になっているからである。図9の段階910で示されるように、第1のリスト960がスタックに追加される場合、スタート状態はオープンのままになる。
次に、プロセス800は、現在のテキストラインがリストの項目となっているそのリストと等しいあるいはそれよりも上位のリストのレベルを有する任意の未処理のリストの最後(エンド)をクローズする(830)。このプロセスは、未処理のリストのスタックからクローズされているリストも削除し(832)、そして、新規のリストをスタックの先頭に追加する(834)。つまり、スタック上の少なくとも1つのリストよりも下位のレベル(即ち、更に左側にある自身のリストスペーサを有している)である新規のリストが追加される場合、これらのリストはクローズされ(エンド(終了)状態で)、そして、スタックから削除される。この場合は、先行するリストの継続を含むカラム内で発生し得る。例えば、レベル3のリスト項目がカラム内の最初の項目であり、かつレベル1のリスト項目が続く場合、レベル1のリストを作成することが、レベル3のリストのエンド(最後)を示すことになる。図9の段階910では、このプロセスに対するスタック内にクローズしかつ削除するためのリストは存在しないが、新規のリスト960がスタックの先頭に追加される。
次に、プロセス800は、オープン位置を現在のオープン位置の最も左であって、かつ現在のテキストラインの左側の境界に移動する(835)。このプロセスが、カラム内の各テキストラインの処理後にこの処理を実行するので、オープン位置は、常に、任意の処理済のテキストラインの最も左にある境界に存在することになる。しかしながら、いくつかの実施形態は、リストの一部であるテキストライン群の後にあるオープン位置を修正するだけで、そのオープン位置による影響を、意図しないリストの非テキスト(例えば、チャプタの見出し間の本文(ボディテキスト)へ及ぼしてしまうことを防いでいる。
次に、このプロセスは、任意のテキストラインが更にカラム内に残っているかどうかを判定する(836)。テキストラインのすべてが一旦検査されると、プロセス800は、後述する860に進む。更なるテキストラインが残っている場合、このプロセスは808に戻り、次のテキストラインを選択し、自身のリストのプロパティ群に対するこの新規のラインを検査する。上述のように、いくつかの実施形態では、このプロセスは、カラムの先頭から開始して、下向きに移動する。
上述のように、このプロセスは、スタックが、現在のテキストラインと同一のリストスペーサとレベルとを有する未処理のリストを含んでいることを判定し(814)、このプロセスは、844へ進む。ここで、このプロセスは、現在のテキストライン内の最初のワードが、少なくとも1つの候補テンプレートに対するリスト内の予期される次の項目と照合するかどうかを判定する(844)。この判定は、現在のラインが未処理のリストに加えることができるかどうかについての判定である。現在のラインが未処理のリストに加えることができるかどうかを判定するために、いくつかの実施形態では、取り得る候補テンプレートのそれぞれとこれらのテンプレート群の次の項目番号に対するラベル生成機能を使用する(即ち、リストの最初の項目が「I」である場合、ラベル生成機能は「II」と「J」を出力するであろう)。照合しない場合、このプロセスは816に進んで、項目が新規のリストの開始であるかどうかを判定する。
生成されたラベルが照合するラベルである場合、このプロセスは、その照合するラベルが存在するテンプレートの内、最上位の優先度のテンプレートを選択する(845)。この時点で1つの候補テンプレートしか存在しない場合、次に、これは、その候補テンプレートを常に選択することになる。この項目が、リスト内の第3あるいはそれ以降の項目である場合、任意の候補テンプレート間の決定は、常に、解決されることになる。しかしながら、現在のラインが、複数の候補テンプレートを有するリスト内の第2のリスト項目を有する場合、このプロセスは、どのテンプレートでも最上位の優先度を有するテンプレートを選択する。
次に、プロセス800は、現在のラインを新規のリストとして、自身のレベルにおける現在の未処理のリストに追加する。図9では、第3の段階915は、カラム400の第2のラインが新規のリスト965の作成を生じさせている。このプロセスは、クローズされているスタート状態でこの新規のリスト965を作成する。これは、カラム400の第2のラインの開始の左にオープン位置が現在位置しているからである。このリストは、スタックの先頭に追加される。第3のラインは、段階920のこのリストに追加される。ここでは、リスト965が2つの項目を有している。
新規の項目を未処理のリストに追加した後、このプロセスは、現在の項目よりも上位のレベルを有する任意の未処理のリストのエンド(最後)をクローズし(848)、そして、クローズされているリストを未処理のリストのスタックから削除する(850)。次に、このプロセスは835へ進み、オープン位置を移動して(必要ならば)、任意の追加のテキストラインがカラム内に残っているかどうかを判定する。
つまり、新規の項目が特定のレベルでリストに追加される場合、そのリスト内で入れ子になっている(つまり、より上位のレベルの)任意のリストがクローズされる。カラム400に戻り、第7番目の列内の項目がレベル1のリスト(大文字のラテン文字)に追加される場合、このプロセスは、レベル2のリスト(下位のローマ字)をクローズする。図9は、このことを、段階940で、先の3つの段階の後に示されるように示している。段階925は、カラム400の第4のラインが、新規のリスト970の追加を生じさせ、これは、大文字のローマ字あるいは小文字のラテンアルファベットのどちらかを使用することができる。この決定は、カラム400の第5番目のラインから第2の項目がリスト970に追加される場合の段階930で解決される。リスト内のこの第2の項目は「j」ではなく「ii」であり、これは、リストが自身のアルファベットに対する小文字のローマ数字を使用することを示している。カラム400の第6番目のラインは、段階935におけるリスト970の第3の項目として追加される。
段階940で、第3の項目がスタック900の第2のリスト965に追加され、これは、カラム400の第7番目のラインに対応する。第3のリスト970は、第2のリスト965よりも上位のレベルにあるので、プロセスは、第3のリスト970をクローズして、そのリストを削除する。図示されるように、いくつかの実施形態は、記憶装置(RAMのような揮発性メモリ、ハードディスクあるいはフラッシュメモリのような固定記憶装置等)内のリストについての関連する詳細情報(即ち、リスト内の項目群を構成するテキストライン、項目の番号、項目のラベル、使用されるテンプレート等)を記憶する。段階945は、スタック900が2つの未処理リストだけを、最上位のリストとなるリスト965とともに有していること示している。段階950では、第2の項目が第1のリスト960に追加され、これは、カラム400の第8番目のラインに対応する。この追加は、プロセスに、第2のリスト965をクローズさせ、そして、そのリストを削除させる。段階950は、第1のリスト960だけが、スタック900内でオープンになっていることを示している。
図8に戻り、現在のテキストラインがリストを形成するために使用することができない場合(例えば、処理810あるいは822で判定されるように)、プロセス800は処理852に進む。この時点で、プロセスは、現在のテキストラインの左境界の右にあるリストスペーサを有する任意の未処理リストの最後をクローズする(852)。このプロセスは、未処理リストのスタックからクローズされているリストを削除する(854)。
次に、このプロセスは、未処理のリストのスタックが、そのリストの削除後に空きとなるかどうかを判定する(856)。少なくとも1つのリストがスタック内で未処理のままである場合、このプロセスは、現在のテキストラインを、スタックの先頭のリスト内の最新のリスト項目に追加する(858)。つまり、リスト項目が複数のラインに渡っている場合、追加のラインはリスト項目でグループされることになる。図10は、このような複数のラインのリスト項目1000の例を示している。リスト項目1000の第2のラインを評価する場合、このプロセスは、1つのリスト項目(項目「I」)でリストオープンを維持し、そして、第2のラインをそのリスト項目に追加する。これは、それが、リストラベル自身を持っていないばかりか、自身のアライメントによってリストをクローズすることがないからである。図11は、リスト項目間の段落がリスト項目でグループ化されていて、かつリスト群をクローズすることにならない場合のカラム1100を示している。カラム1100の各リスト項目は、3つあるいは4つのラインの関連する段落を有している。これらのラインは、いくつかの実施形態では、リスト項目でグループ化される(例えば、第1の段落は、ラベル「I」を備えるリスト項目の一部としてグループ化される)。
しかしながら、いくつかの実施形態は、処理852と854とを実行しないで、あるいは、これらの処理の変形を実行して、より大きな文書内のセクションあるいはチャプタの見出しの識別を実現するとともに、リスト項目間に大量の非リストコンテンツが存在する場合にそのようなリスト群を再構築することを実現する。例えば、いくつかの場合、セクションの見出しは、図4に示されるリストの類として意図されるが、これらの見出しの間では、インデントなしの段落になる(即ち、段落がインデントされていない、カラム1100と同様の状況)。未処理のリストのスタックを各段落が空にすることよりも、これらの段落は、任意の他のリスト群を締め出すことなく、最新のリスト項目の下のコンテンツ(内容)として追加される。図12は、入れ子になっているリストヘッダ間の段落内容で、そのようなリストの部分の例を示している。いくつかの実施形態は、文書内の主段落群を(例えば、明示的に記号化されるフォーマット処理あるいは文書再構築技術に基づいて)認識し、そして、リスト再構築プロセスを実行する前にこれらの段落に属するテキストラインを除去する。
カラム内のテキストラインのすべてが一旦評価されると、プロセス800は、リストを検証して(860)、任意の不適格なリストを削除し、そして、必要に応じてリストが記憶されているスタックを修正する。いくつかの実施形態では、リストを正規なものとして認識するための極小条件を含んでいる。例えば、いくつかの実施形態では、少なくとも2つの項目を有することをリストに要求することで、1つの項目リストからなる構造を防ぐいでいる。リストが不適格である場合、このプロセスはそのリストを削除し、自身のテキストラインと任意の入れ子のリスト群とを、記憶されているリスト群のスタックにおける1つ下位のレベルに下げる。テキストラインがリスト群のスタックの下部に下げられる場合、このラインは任意のリスト内には存在しない。
つまり、例えば、カラム400が自身の第8番目のラインを含まない場合、いくつかの実施形態では、最初(第1)のリスト960は不適格となり、そして、リストが記憶されているスタックから削除される。他のリスト965と970はそれぞれ、1つレベルがあげられる。カラムの第1のラインは任意のリストと関連づけられない。しかしながら、文書が複数のカラムを含んでいる場合、いくつかの実施形態では、このリストを削除することはない。これは、セクションIIIで説明されるように、このリストは後続のカラムに継続する可能性があるからである。
一方、第5番目のラインと第6番目のライン(「ii」と「iii」)が存在しなかった場合、このリスト970は削除され、また、第4番目のテキストラインは、リスト965内の第2の項目と関連づけられることになる。この場合、1つの項目リストがクローズされるので、複数のカラムが存在する状況でさえも、このリストは除去され、2つのリストだけが残ることになる。
上述のプロセス800と説明される変形は、インデントをリストレベルのインジケータとして使用する。いくつかの実施形態では、ネスティング(入れ子状態)が複数のレベルの番号付けを使用して生じている場合に、入れ子になっているリスト群を識別することもできる。図13は、入れ子になっているリストのセット1300の例を示している。この入れ子になっているリストのセットでは、リストスペーサが、異なる項目のすべてに対して同一のレベルにあるが、リスト項目群は異なるリストに分割される必要がある。この問題を処理するために、(i)現在のテキストラインが未処理のリストとして同一のレベルにあり、かつ(ii)未処理のリストの最新のリスト項目(あるいはセパレータ文字を加えている最新のリスト項目)が現在のテキストラインのラベルのプレフィックス部分である場合、いくつかの実施形態では、未処理のリストをクローズしないし、あるいは、新規のリストを先頭に追加する前にスタックからリストを削除する。
上述のように、いくつかの実施形態は、インデントによって入れ子になっているリスト群(例えば、図3に示されるような)と、番号付けによって入れ子になっているリスト群(例えば、図13に示されるような)との両方を識別することができる。それを実行するために、いくつかの実施形態は、プロセス800における変形を使用する。処理830で、いくつかの実施形態は、新規のリストと同一のレベルの未処理のリスト群を常にクローズしないで、むしろ、複数のレベルの番号付けが、同一のレベルの任意の未処理リストと新規のリストとの間で存在するかどうかを判定する。上述の条件に合致する場合にこのような番号付けが存在する。つまり、この条件とは、未処理の最新のリスト項目(あるいはセパレータ文字を加えた最新のリスト項目)が現在のテキストラインのラベルのプレフィックス部分であるという条件である。
III 複数のカラムに渡るリスト群の再構築
上述のセクションは、1つのカラム内でリスト群を識別し、そして、再構築するためのいくつかの実施形態のプロセスを説明している。上述のように、いくつかの実施形態は、複数のカラムからなる文書の各カラムにおいてそのようなプロセスを実行し、リスト群を検証する前にカラム群に渡るオープンリスト群を照合する。図14は、複数のカラムに渡るリスト群を再構築するためのいくつかの実施形態のプロセス1400を示している。このプロセス1400は、図15を参照して説明する。この図15は、文書内で連続する2つのカラム1505と1510を示している。
図示されるように、プロセス1400は、順序付けされたカラム群のセットを受信する(1405)。このカラム群は、すべて同一のページの同一のレイアウトあっても良く、あるいは、複数のレイアウト、ページ、セクション等に広がっていても良い。いくつかの実施形態では、カラム群の順序が与えられる(例えば、文書の構造内で記号化されている)。他の実施形態では、リスト再構築は、米国特許出願公開第2010/0174985号明細書に説明されるような、大規模な文書再構築プロセスの一部であり、これは参照することによって本明細書に組み込まれる。
次に、このプロセスは、カラムのすべてのリスト群を識別する(1410)。いくつかの実施形態では、プロセス800のほとんどが実行され(860の検証処理を除いて)、カラム群のリスト群を識別する。このことは、オープンスタート状態あるいはオープンエンド状態を伴ういくつかのリストが残る場合がある。例えば、図15は、第1のカラム1505は、オープンエンド状態の3つのリストを有することになる(ライン1、8及び14のリスト「I」、「II」、「III」、ライン15及び16のリスト「A」及び「B」、ライン17からの1つの項目リスト「i」)。この最初のこれらのリスト群は、オープンスタート状態を有することにもなる。第2のカラム1510では、2つのリストがオープンスタート状態を有することになる(ライン1及び2のリスト「ii」及び「iii」と、第3番目のラインと第6番目のラインのリスト「C」及び「D」)。後者のこれらの2つのリストは、オープン状態を有することにもなる。
識別されるリストのすべてを用いることで、このプロセスは、カラム群に渡るリスト群との照合を試行することができる。このプロセスは、現在選択されているカラムとして順番に最初(第1)のカラムを設定する(1415)。このプロセスは、次のカラムとして選択されているカラムの後のカラムも設定する(1420)。いくつかの実施形態では、少なくとも2つのカラムを有する文書に対するプロセス1400だけを実行する。他の実施形態では、1つのカラムの文書に対してでさえも、常にこのプロセスを実行するが、これには、文書が1つのカラムだけを有している場合に対する終了条件を含んでいる。
文書が2つ以上のカラムを有していると想定すると、このプロセスは、選択されているカラムが、オープンエンド状態の任意のリストを有しているかどうかを判定する(1425)。カラムがオープンリストを有していない場合、次に、このプロセスは後述の1455に進む。オープンリストが存在しない場合、このプロセスは、現在選択されているカラムと、次のカラムの任意のリストとの照合を試行することはない。これは、2つのカラムの内の最初のカラムのオープンエンドのリストはそのような照合に対する要件であるからである。
次に、このプロセスは、次のカラムがオープンエンド状態の任意のリストを有するかどうかを判定する(1430)。カラムのペアの第1のカラムにおけるオープンエンド状態の要件と同様に、このプロセスは、第1のカラムのリストとの比較を行うために、そのペアの第2のカラムがオープンスタート状態の少なくとも1つのリストを有すること要求する。再度、オープンスタート状態のリストが存在しない場合、このプロセスは、カラム群に渡る照合を試行しないで、1445に進む。
第1のカラムにオープンエンド状態のリスト群が存在し、第2のカラムにオープンスターチ状態のリスト群が存在する場合、このプロセスは、照合するリストの連続あるいはリストの連続のセットがレベル間で存在するかどうかを判定する(1435)。いくつかの実施形態では、第1のカラムの最後の任意のオープンリストが、第2のカラムの開始の任意のオープンリストと照合することができる。これは、すべての照合されるリストのレベルのセットがオリジナル(当初)のレベルの単調増加関数であり、また、第2のカラムを開始する項目ラベル群が第1のカラムのリスト群に対する次の項目ラベルとして比較することができる限りで実行する。つまり、リストレベルの順序は照合を通じて維持されなければならないが、いくつかのリストレベルに対しては、残りを同一にしたまま変更することが可能である。
2つのリストが照合するかどうかを判定するために、いくつかの実施形態は、ラベル生成機能を使用して、第1のカラムのオープンエンド状態のリストの次のリスト項目を生成し、次に、これを、第2のカラムのオープンスタート状態の第1のリスト項目のラベルと照合するかどうかをチェックする。この照合が、第1のカラムのリスト群のそれぞれに対して存在するかどうかを判定した後に、いくつかの実施形態は、任意の要求されているリストレベルが単調性の要件を違反することになるかどうかを判定する。
有効な照合(あるいは照合のセット)が2つのカラムの間で存在する場合、このプロセスは、2つのカラムに渡って照合されるリスト群を組み合わせる(1440)。2つのカラム間の1つの有効な照合あるいは照合のセットよりも多い照合が存在することがありそうもない場合には、いくつかの実施形態は、インデント同士(例えば、カラムの左エッジからリストスペーサまでの距離)を比較して、有効な照合の内の最適なものを判定する(同一のインデントを有するリスト群に対するプリファレンスも用いて)。
次に、このプロセス1400は、選択されているカラムとして次のカラムを設定する(1445)。いくつかの実施形態では、次のカラムの一部として従前に選択されているカラムも含めている。つまり、従前に選択されているカラム内の任意のオープンエンド状態のリスト群が照合を検出しておらず、また、比較するより下位のレベルのオープンエンド状態のリスト群の比較によりクローズされている場合、このプロセスは、次のカラム内での照合を検索することができる。いくつかの実施形態では、このプロセスは、従前の選択されているカラムと次のカラムとを連結することで、リスト群を複数のカラムに渡って広げることを可能にする(例えば、特定のリスト内の第1のリスト項目が第1のカラム内にあり、そのリスト内の第2の項目が第3のカラムまでには発生していない場合である)。
このプロセスは、新規に選択されているカラムの後に任意の追加のカラム群が存在するかどうかを判定する(1450)。追加のカラムを残しながら、このプロセスは1420に戻り、次のカラムとの照合をチェックする。これ以上のカラムが残っていない場合、このプロセスは、カラム内のすべてのリストを検証する(1455)。いくつかの実施形態では、これは、後述する、プロセス800の処理860と同一である。つまり、このプロセスは、リストのすべてを検証して、任意の不適格なリストを削除し、そして、必要に応じて、リストが記憶されているリストを修正する。そして、このプロセス1400は終了する。
図15では、第2のカラム1510の最下位のリストレベルは、第1のカラム1505の最下位のリストレベルと一致し(即ち、「C」のリスト項目は「B」のリスト項目に続いている)、第2のカラム1510の最上位のリストレベルは第1のカラム1505の最上位のリストレベルと一致する(即ち、「ii」のリスト項目は「i」のリスト項目に続いている)。第1のカラムの最下位のレベルのオープンリスト(大文字のローマ字)は、第2のカラムとの一致は有さない。このプロセスは、一致するアルファベット群と、リスト項目群の連続する序数とに基づいて、これらのリストを容易に照合することができる。
図16は、1つのリストがレベルを変更しながら、第2のリストが同一のレベルのままである場合の例を示している。但し、ここでは、単調性の要件は維持されている。この図では、第2のカラム1610は、それぞれレベル0とレベル1を有する2つのリストを有している。レベル0の大文字のローマ字のリストは、第1のカラム1605のレベル0の大文字のローマ字のリストと一致するが、第2のカラム1610のレベル1の小文字のローマ字のリストは、第1のカラムのオープンレベル2の小文字のローマ字リストと一致する。
上述のように、文書に対して完全に再構築されているリスト群を用いると、様々な機能を実現することができる。これらの機能は、追加のリスト項目群の自動生成、ハイパーリンク群の自動生成、連続する項目群の他のリファレンス群の自動生成、リスト項目による検索及びナビゲーション機能、フォーマット間のコピーアンドペースト等を含むことができる。
IV ソフトウェアアーキテクチャ
いくつかの実施形態では、上述のプロセスは特定のマシーン(装置)上で動作する、あるいは、コンピュータ可読媒体に記憶されるソフトウェアとして実現される。このマシーンには、例えば、コンピュータあるいは携帯デバイスがある。図17は、いくつかの実施形態のリスト再構築モジュール1700のソフトウェアアーキテクチャを概念的に示している。いくつかの実施形態では、リスト再構築モジュール1700はスタンドアローンアプリケーションであり、あるいは、1つのアプリケーションに統合されていて(例えば、文書再構築アプリケーションの一部として)、一方で、他の実施形態では、アプリケーションは、オペレーティングシステム内で実現されても良い。また、いくつかの実施形態では、このモジュールは、サーバベースのソリューションの一部として提供される。このようないくつかの実施形態では、このモジュールは、シンクライアントを介して提供される。つまり、このモジュールはサーバ上で動作し(例えば、サーバ上で動作するアプリケーションの一部として)、一方で、ユーザは、サーバからリモートで、別のマシーン(装置)を介してアプリケーションと対話する。このような他の実施形態では、このモジュールはシッククライアントを介して提供される。つまり、このモジュールは、サーバからクライアント装置へ配信され(例えば、サーバから配信されるアプリケーションの一部として)、そのクライアント装置上で動作する。
このリスト再構築モジュール1700は、リストスペーサ識別部1705、リストレベル識別部1710、リスト再構築部1715、交差カラム照合部1720、リスト検証部1722、及びリストテンプレート機能1740を含んでいる。加えて、リスト再構築モジュール1700は、文書記憶装置1745、未処理リストのスタック用の記憶装置1750、テンプレート定義1755を使用する。文書記憶装置1745は、リスト再構築モジュール1700がリストを識別し、かつ再構築するための1つ以上の文書についての情報を記憶する。この情報は、カラム及びテキストラインの情報を含むことができ、また、これらの文書のオブジェクトの境界も含んでいる。いくつかの実施形態では、文書記憶装置1745は、米国特許出願公開第2010/0174985号明細書に記載されているように、文書オブジェクトモデルを記憶する。これは参照することによって本明細書に組み込まれる。未処理のリスト群のスタックの記憶装置1750は、リスト再構築プロセス中の取り得るリスト群の未処理スタックを記憶する。いくつかの実施形態では、この情報はRAMに記憶される。テンプレート定義群は、アルファベットのリストと、リストテンプレート機能1740によって必要とされるアルファベットについての情報を記憶する。いくつかの実施形態では、文書情報、未処理スタック、及びテンプレート定義群は、1つの物理的な記憶装置に記憶される。他の実施形態では、これらの情報は異なる物理記憶装置に記憶され、例えば、文書情報とテンプレート定義群は固定記憶装置に記憶され、一方で、未処理スタックはRAMに記憶される。加えて、記憶装置の1つが、複数の物理的な記憶装置に渡って実際に分割されていても良い(例えば、異なる文書は異なるディスクに記憶されていても良い)。
リストスペーサ識別部1705は、文書情報1745を使用して、文書内のリストスペーサ群を識別する。いくつかの実施形態では、リストスペーサ識別部1705は、文書内のカラム内の潜在的なスプリットギャップ群を識別し、重複するスプリットギャップ群の縦方向のストリップとするスペーサ群を組み立て、スペーサ群がリストスペーサ群に対する要件に合致するかどうかを判定する。
リストレベル識別部1710は、リストスペーサと文書情報1745を使用して、リストスペーサを有する各テキストラインに対するリストレベルを識別する。上述のように、いくつかの実施形態は、テキストラインのベースラインの左エッジで開始し、そして、どれくらいの数のリストスペーサが、カラムの左エッジの地点で交差するかを判定する。この数は、テキストラインに対するリストレベルとなる。
リスト再構築部1715はリストスペーサとリストレベルの情報と、文書記憶装置1745からの文書の情報(例えば、テキストライン内の単語(ワード)と文字の少なくとも一方についての情報)を使用して、カラム内のリスト群を再構築する。いくつかの実施形態と、リスト再構築部1715は、図8に示されるプロセス800のいくつかあるいはすべてを実行する。
いくつかの実施形態では、リスト再構築部1715は、リストテンプレート機能1740を使用する。これらは、テンプレート識別部1725、ラベルレクサー1730、及びラベル生成部1735を含んでいる。これらの機能のすべては、ビュレットあるいは序数のタイプ及びそれらのアルファベットを含んでいる、テンプレート定義1755を使用する。テンプレート識別部1725は、所与のリストラベルに対するテンプレートを識別する。テンプレート識別部は、リストラベルの文字を検査して、自身のアルファベットを識別し、そして、アルファベットが一旦識別されると、リストテンプレートに対するプレフィックスとサフィックスとを判定する。ラベルレクサー1730は、ラベルのビュレットあるいは序数部分を入力とし、出力として、ラベルによって再現される項目番号を生成する。ラベル生成部1735は、本質的には、ラベルレクサー1730の逆機能を実行して、項目番号とラベルテンプレートとをラベルへと変換する。
交差カラム照合部1720は複数の順序付けられているカラムに対するリスト再構築部1715の出力を使用して、カラム間のリスト群を照合する。いくつかの実施形態では、上述のように、交差カラム照合部は、オープンエンド状態の第1のカラムのリスト群と、オープンスタート状態の次のカラムのリスト群との間で特定の基準を満足する照合結果を探し出す。これらの照合結果を識別するために、交差カラム照合部1720はリストテンプレート機能1740を利用する。
リスト検証部1722は、交差カラム照合部の出力(リスト群の最終的なセット)を使用して、リスト群を検証する。特定の検証基準を満足しない任意のリスト群はそのリスト群のセットから削除され、任意の入れ子のリストは必要に応じて修正される。いくつかの実施形態では、これらの基準は、各リストが少なくとも2つの項目を含んでいるということを義務付けている。
機能群の多くは1つのモジュール(例えば、リスト再構築部1715、リストスペーサ識別部1705等)によって実行されるように説明されているが、当業者は、本明細書で説明される機能群が複数のモジュール群に分けられていても良いことを認識するであろう。同様に、複数の異なるモジュール群によって実行されるように記載されている機能群は、いくつかの実施形態においては1つのモジュールによって実行されても良い(例えば、交差カラム照合部1720は、リスト再構築部1715の一部であっても良い)。
V.電子システム
上述の多くの機能及びアプリケーションは、コンピュータ可読記憶媒体(以下では、コンピュータ可読媒体)に記録されている命令群のセットとして特定されるソフトウェアプロセスとして実現される。これらの命令群が1つの計算あるいは処理ユニット(群)によって実行される場合(例えば、1つ以上のプロセッサ、プロセッサ群のコア、あるいは他の処理ユニット)、これらは、処理ユニット(群)に、命令群で指示される動作群を実行させる。コンピュータ可読媒体の例には、限定されるものでないものとして、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードドライブ、消去可能プログマラブルリードオンリーメモリ(EPROM)、電子的消去可能プログマラブルリードオンリーメモリ(EEPROM)等を含んでいる。コンピュータ可読媒体は、搬送波、及び無線あるいは有線接続を介して伝送される電子信号は含まない。
本明細書では、用語「ソフトウェア」は、リードオンリーメモリに常駐するファームウェア、あるいは磁気記憶装置に記憶されるアプリケーションを含むことを意味するものである。ここで、アプリケーションはプロセッサによって処理するためにメモリに読み出すことができる。また、いくつかの実施形態では、複数のソフトウェア発明を、異なるソフトウェアの発明を残しながら、より大規模なプログラムの一部分として実現することができる。いくつかの実施形態では、複数のソフトウェア発明は、別々のプログラムとして実現することもできる。そして、本明細書で説明されるソフトウェア発明を併せて実現する、別々のプログラムの任意の組み合わせは、本発明の範囲内にある。いくつかの実施形態では、ソフトウェアプログラムは、1つ以上の電子システムで処理するためにインストールされる場合、1つ以上の特定のマシーンの実装を定義し、これは、ソフトウェアプログラムの処理を実行して機能させる。
図18は、本発明のいくつかの実施形態が実現される電子システム1800を概念的に示している。電子システム1800は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ等)、電話、PDA、あるいは任意の他の電子デバイスの類である。このような電子システムは、様々なタイプのコンピュータ可読媒体、及コンピュータ可読媒体の様々なタイプ用のインタフェースを含んでいる。電子システム1800は、バス1805、処理ユニット(群)1810、グラフィック処理ユニット(GPU)1815、システムメモリ1820、ネットワーク1825、リードオンリーメモリ1830、固定記憶装置1835、入力デバイス1840、及び出力デバイス1845を含んでいる。
バス1805は、すべてのシステムバス、周辺バス、及びチップセットバスを集約的に表現したものであり、これらは、電子ステム1800の内部デバイス群を通信によって接続する。例えば、バス1805は、処理ユニット(群)1810を、通信によって、リードオンリーメモリ1830、GPU1815、システムメモリ1820、及び固定記憶装置1835と接続する。
様々なメモリユニット群から、処理ユニット(群)1810は、本発明のプロセス群を実行するために、実行するための命令群と処理するためのデータを取得する。処理ユニット(群)は、様々な実施形態として、1つプロセッサあるいは複数のコアプロセッサであっても良い。いくつかの命令は、GPU1815によって渡されて、かつ実行される。GPU1815は、処理ユニット(群)1810によって提供される画像処理の様々な計算あるいは補完を解放することができる。いくつかの実施形態では、このような機能は、コアイメージのカーネルシェーディング言語を使用して提供することができる。
リードオンリーメモリ(ROM)1830は、処理ユニット(群)1810と電子システムの他のモジュール群によって必要とされる静的なデータ及び命令群を記憶する。一方、固定記憶装置1835は、リードライトメモリデバイスである。このデバイスは、不揮発性メモリユニットであり、電子ステム1800が電源オフにされても命令群及びデータを記憶する。本発明のいくつかの実施形態は、大容量記憶装置(例えば、磁気あるいは光ディスク、及びそれに対応するディスクドライブ)を固定記憶装置1835として使用する。
他の実施形態は、リムーバル記憶デバイス(例えば、フロッピーディスク、フラッシュメモリデバイス等、及びそれに対応するドライブ)を固定記憶装置として使用する。固定記憶装置1835と同様に、システムメモリ1820はリードライトメモリデバイスである。しかしながら、固定記憶装置1835と異なり、システム1820は揮発性リードライトメモリであり、これには、ランダムアクセスメモリがある。システムメモリ1820は、プロセッサがライタイムで必要とするいくつかの命令群及びデータを記憶する。いくつかの実施形態では、本発明のプロセスは、システムメモリ1820、固定記憶装置1835及びリードオンリーメモリ1830の少なくともいずれかに記憶される。例えば、様々なメモリユニット群には、いくつかの実施形態に従う処理マルチメディアクリップ群に対する命令群を含んでいる。これらの様々なメモリユニット群から、処理ユニット(群)1810は、いくつかの実施形態のプロセスを実行するために、実行するための命令群と処理するためのデータとを取得する。
バス1805は、入力デバイス1840と出力デバイス1845も接続する。入力デバイス1840は、電子システムとの情報通信とコマンド選択を行うことをユーザに可能にする。入力デバイス1840は、英数字キーボード、ポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)、カメラ(例えば、ウェブカメラ)、マイク、あるいは同様の音声コマンドを受信するデバイス等を含んでいる。出力デバイス1845は、電子システムあるいはそれ以外の出力データによって生成される画像を表示する。出力デバイス1845は、プリンタ及び、陰極線管(CRT)あるいは液晶ディスプレイ(LCD)のようなディスプレイデバイス、スピーカあるいは同様のオーディオ出力デバイスを含んでいる。いくつかの実施形態は、入力デバイス及び出力デバイスとして機能するタッチスクリーンのようなデバイスを含んでいる。
最後に、図18に示されるように、バス1805は、ネットワークアダプタ(不図示)を通じて、電子システム1800をネットワーク1825にも接続する。この方法では、コンピュータは、ネットワークのコンピュータ群(例えば、ローカルエリアネットワーク(「LAN」、ワイドエリアネットワーク(「WAN」))の一部、あるいは、イントラネットの一部、あるいはネットワーク群の1つのネットワーク、例えば、インターネットの一部とすることができる。電子ステム1800の任意のあるいはすべてのコンポーネント群は、本発明とともに使用することができる。
いくつかの実施形態は、電子コンポーネント群を含み、これには、マイクロプロセッサ、記憶装置及びメモリがあり、メモリは、マシーン可読媒体あるいはコンピュータ可読媒体(選択的には、コンピュータ可読記憶媒体、マシーン可読媒体あるいはマシーン可読記憶媒体とも呼ばれる)にコンピュータプログラム命令群を記憶する。このようなコンピュータ可読媒体のいくつかの例には、RAM、ROM、リードオンリーコンパクトディスク(CD−ROM)、レコーダブルコンパクトディスク(CD−R)、リライタブルコンパクトディスク(CD−RW)、リードオンリーデジタル多用途ディスク(例えば、DVD−ROM、デュアルレイヤーDVD−ROM)、様々なレコーダブル/リライタブルDVD(例えば、DVD−RAM、DVD−RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気ハードドライブ及びソリッドステートハードライブの少なくとも一方、リードオンリー及びレコーダブルブルーレイ(登録商標)ディスク、ウルトラデンシティーオプティカルディスク、任意の他の光あるいは磁気媒体、及びフロッピーディスクを含んでいる。コンピュータ可読媒体は、コンピュータプログラムを記憶することができ、このコンピュータプログラムは少なくとも1つの処理ユニットによって実行可能であり、また、様々な処理を実行するための命令群のセットを含んでいる。コンピュータプログラムあるいはコンピュータコードの例には、例えば、コンパイラによって生成されるマシーンコード、コンピュータによって実行される上位レベルのコードを含むファイル、電子コンポーネント、あるいはインタプリタを使用するマイクロプロセッサを含んでいる。
上述の説明は主にソフトウェアを実行するマイクロプロセッサあるいはマルチコアプロセッサを参照しているが、いくつかの実施形態は、1つ以上の集積回によって実行される。この集積回路には、例えば、特定用途集積回路(ASIC)あるいはフィールドプログラマグルゲートアレイ(FPGA)がある。いくつかの実施形態では、このような集積回路は、回路自身に記憶されている命令群を実行する。加えて、いくつかの実施形態は、プログラマブルロジックデバイス(PLD)、ROM、RAMデバイスに記憶されるソフトウェアを実行する。
本明細書で使用されるように、また、本願の任意の請求項で使用されるように、用語「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」は、すべて、電子デバイスあるいは他の技術上のデバイスを言及するものである。これらの用語は、人間あるいは人間のグループを除外する。本明細書の目的のために、用語、表示(ディスプレイ)あるいは表示することは、電子デバイス上で表示することを意味する。本明細書で使用されるように、また、本願の任意の請求項で使用されるように、用語「コンピュータ可読媒体」、「コンピュータ可読メディア」、及び「マシーン可読媒体」は、有形で、かつ物理的なオブジェクト(物体)に完全に制限されるものであり、これは、コンピュータによって読出可能な形式で情報を記憶している。これらの用語は、任意の無線信号、有線によってダウンロードされる信号、及び任意の他の一時的な信号は除外している。
本発明は、いくつかの特定の詳細を参照して説明しているが、当業者は、本発明が、本発明の精神から逸脱することなく他の特定の実施形態で実施することができることを認識するであろう。例えば、本明細書の説明は、テキストが左から右へ、また、上から下へと読まれることを想定している。当業者は、同様のプロセスを、右から左及び下から上の少なくとも一方で読まれるテキストに使用できることを認識するであろう。加えて、いくつかの図(図2、図7、図8、及び図14を含む)は、概念的にプロセスを示している。これらのプロセスの特定の処理は、図示されかつ記載される順序に厳格に実行されなくても良い。特定の処理は、1つの連続する処理群の並びで実行されなくても良く、異なる特定の処理群が異なる実施形態で実行されても良い。また、プロセスは、いくつかのサブプロセッサを使用して実現することができ、あるいは大規模のマクロプロセスの一部として実現することができる。つまり、当業者は、本発明が上述の詳細な説明に限定されるものではなく、むしろ、添付の請求項によって定義されるべきものであることを理解するであろう。

Claims (15)

  1. 少なくとも1つの処理ユニットによって実行される場合に、複数の基本要素を有する文書を解析するプログラムを記憶するマシーン可読媒体であって、
    前記プログラムは、
    前記文書のカラム内の複数のテキストラインそれぞれについて、前記テキストライン内のワード内のグリフ間のギャップより大きい前記テキストラインの連続するグリフ間のギャップ群と、前記テキストライン内のワード間のギャップ群とを識別するための命令群のセットと、
    前記カラム内の連続するテキストライン群で位置揃えされているギャップ群のセットを識別するための命令群のセットと、
    リスト項目として前記位置揃えされているギャップ群を含むテキストライン群を識別するために、前記位置揃えされているギャップ群のセットのどれが、リスト項目ラベルとリスト項目との間の間隔を示しているかを判定する命令群のセットと、
    前記リスト項目群のアライメント、間隔、及びコンテンツに基づいて、該リスト項目群に対する階層レベル群を識別するための命令群のセットと、
    同一の階層レベルを有する前記リスト項目群が同一のリスト内にある前記カラムに対する階層構造のリスト群のセットを定義するための命令群のセットと
    を有することを特徴とするマシーン可読媒体。
  2. 前記プログラムは、更に、前記カラム内の第1のリストと該カラムとは異なるカラム内の第2のリストとが1つのリストの一部であることを判定するための命令群のセットを有する
    ことを特徴とする請求項に記載のマシーン可読媒体。
  3. 前記リスト項目のアライメントは、前記文書の前記カラム内の該リスト項目群のインデントのレベル群に基づいて識別される
    ことを特徴とする請求項に記載のマシーン可読媒体。
  4. 前記位置揃えされているギャップ群のセットのどれが、リスト項目ラベルとリスト項目との間の間隔を示しているかを判定するための命令群のセットは、自身の左に1つのワードを有し、かつ自身の右で左に位置揃えされているテキストを有するギャップ群を識別するための命令群のセットを有する
    ことを特徴とする請求項に記載のマシーン可読媒体。
  5. 前記リスト項目群のアライメント、間隔、及びコンテンツに基づいて、該リスト項目群に対する階層レベル群を識別するための命令群のセットは、
    リスト項目ラベルとリスト項目との間の間隔を示すギャップを有するテキストラインそれぞれに対して、前記リスト項目ラベルの左にあるギャップ群の数を判定するための命令群のセットと、
    前記テキストラインに対する前記リスト項目ラベルの左にあるギャップ群の数に基づいて、前記テキストラインのそれぞれを階層レベルに割り当てる命令群のセットと
    を有することを特徴とする請求項に記載のマシーン可読媒体。
  6. 同一の階層レベルを有する前記リスト項目が同一のリスト内にある前記カラムに対する階層構造のリスト群のセットを定義するための命令群のセットは、追加のリスト項目群を追加することができるリスト群についての情報を記憶する、未処理リスト群のスタック群を作成するための命令群のセットを有する
    ことを特徴とする請求項に記載のマシーン可読媒体。
  7. 同一の階層レベルを有する前記リスト項目が同一のリスト内にある前記カラムに対する階層構造のリスト群のセットを定義するための命令群のセットは、
    前記カラムからテキストラインを選択するための命令群のセットと
    前記選択されるテキストラインを前記リスト群のセットのリストに割り当てるための命令群のセットと
    を繰り返し実行する
    ことを特徴とする請求項に記載のマシーン可読媒体。
  8. 前記選択されるテキストラインを前記リスト群のセットのリストに割り当てるための命令群のセットは、
    前記テキストラインのリスト項目ラベルに基づいて、前記テキストラインに対するリストタイプを識別するための命令群のセットと、
    前記識別されるリストタイプのリストが、前記未処理リスト群のスタック内で未処理であるかどうかを判定するための命令群のセットと、
    前記識別されるリストタイプのリストが未処理である場合、前記テキストラインを前記未処理リストのリスト項目として割り当てるための命令群のセットと、
    前記識別されるリストタイプのリストがない場合、前記テキストラインを有する新規のリストをリスト項目として前記未処理リストのスタックに追加するための命令群のセットと
    を有することを特徴とする請求項に記載のマシーン可読媒体。
  9. 前記リストタイプは、他のリスト群との相対的なインデントのレベルと、前記リスト項目ラベルに対して使用されるアルファベットを示している
    ことを特徴とする請求項に記載のマシーン可読媒体。
  10. 前記識別されるリストタイプのリストが、前記未処理リスト群のスタック内で未処理であるかどうかを判定するための命令群のセットは、
    前記スタック内の任意の未処理リスト群が、同一レベルのインデントと同一のアルファベットを有するかどうかを判定するための命令群のセットと、
    前記リスト項目ラベルが、前記アルファベットに従って、前記未処理リストの次のリスト項目として照合するかどうかを判定するための命令群のセットと
    を有することを特徴とする請求項に記載のマシーン可読媒体。
  11. 前記識別されるリストタイプのリストがない場合、前記テキストラインを有する新規のリストをリスト項目として前記未処理リストのスタックに追加するための命令群のセットは、前記階層構造のリスト群のセットの前記新規のリストよりも上位のレベルの任意のリストを、前記未処理リスト群のスタックから削除するための命令群のセットを有する
    ことを特徴とする請求項に記載のマシーン可読媒体。
  12. 前記識別されるリストタイプのリストが未処理である場合、前記テキストラインを前記未処理リストのリスト項目として割り当てるための命令群のセットは、前記階層構造のリスト群のセットの前記未処理リストよりも上位のレベルの任意のリストを、前記未処理リスト群のスタックから削除するための命令群のセット
    ことを特徴とする請求項に記載のマシーン可読媒体。
  13. 複数の基本要素を有する文書を解析するための方法であって、
    前記文書のカラム内の複数のテキストラインそれぞれについて、前記テキストライン内のワード内のグリフ間のギャップより大きい前記テキストラインの連続するグリフ間のギャップ群と、前記テキストライン内のワード間のギャップ群とを識別するステップと、
    前記カラム内の連続するテキストライン群で位置揃えされているギャップ群のセットを識別するステップと、
    リスト項目として前記位置揃えされているギャップ群を含むテキストライン群を識別するために、前記位置揃えされているギャップ群のセットのどれが、リスト項目ラベルとリスト項目との間の間隔を示しているかを判定するステップと、
    前記リスト項目群のアライメント、間隔、及びコンテンツに基づいて、該リスト項目群に対する階層レベル群を識別するステップと、
    同一の階層レベルを有する前記リスト項目群が同一のリスト内にある前記カラムに対する階層構造のリスト群のセットを定義するステップと
    を有することを特徴とする方法。
  14. 更に、前記カラム内の第1のリストと該カラムとは異なるカラム内の第2のリストとが1つのリストの一部であることを判定するステップを有する
    ことを特徴とする請求項13に記載の方法。
  15. 前記リスト項目のアライメントは、前記文書の前記カラム内の該リスト項目群のインデントのレベル群に基づいて識別される
    ことを特徴とする請求項13に記載の方法。
JP2012007324A 2011-01-18 2012-01-17 文書内のリストの再構築 Active JP5480920B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201161433951P 2011-01-18 2011-01-18
US201161433959P 2011-01-18 2011-01-18
US61/433,951 2011-01-18
US61/433,959 2011-01-18
US13/106,806 2011-05-12
US13/106,806 US8380753B2 (en) 2011-01-18 2011-05-12 Reconstruction of lists in a document

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014001225A Division JP5826299B2 (ja) 2011-01-18 2014-01-07 文書内のリストの再構築

Publications (2)

Publication Number Publication Date
JP2012164305A JP2012164305A (ja) 2012-08-30
JP5480920B2 true JP5480920B2 (ja) 2014-04-23

Family

ID=45655141

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012007324A Active JP5480920B2 (ja) 2011-01-18 2012-01-17 文書内のリストの再構築
JP2014001225A Active JP5826299B2 (ja) 2011-01-18 2014-01-07 文書内のリストの再構築

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014001225A Active JP5826299B2 (ja) 2011-01-18 2014-01-07 文書内のリストの再構築

Country Status (7)

Country Link
US (2) US8380753B2 (ja)
EP (1) EP2477124A1 (ja)
JP (2) JP5480920B2 (ja)
KR (2) KR101321309B1 (ja)
AU (1) AU2012200110B2 (ja)
TW (1) TWI472933B (ja)
WO (1) WO2012099803A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251123B2 (en) * 2010-11-29 2016-02-02 Hewlett-Packard Development Company, L.P. Systems and methods for converting a PDF file
US8380753B2 (en) 2011-01-18 2013-02-19 Apple Inc. Reconstruction of lists in a document
AU2012282688B2 (en) 2011-07-11 2017-08-17 Paper Software LLC System and method for processing document
WO2013009889A1 (en) 2011-07-11 2013-01-17 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
US10572578B2 (en) * 2011-07-11 2020-02-25 Paper Software LLC System and method for processing document
US10346516B2 (en) * 2013-02-27 2019-07-09 International Business Machines Corporation Readable structural text-based representation of activity flows
KR102147935B1 (ko) * 2013-08-29 2020-08-25 삼성전자주식회사 데이터 처리 방법 및 그 전자 장치
CN107704468A (zh) * 2016-08-08 2018-02-16 广州市动景计算机科技有限公司 页面显示方法、装置和客户端设备
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
CN109871743B (zh) * 2018-12-29 2021-01-12 口碑(上海)信息技术有限公司 文本数据的定位方法及装置、存储介质、终端
US11140112B1 (en) * 2020-06-29 2021-10-05 Unify Patente Gmbh & Co. Kg Method of generating a thread for discussion amongst a plurality of participants in a group conversation and real-time communication and collaboration platform
US20220335240A1 (en) * 2021-04-15 2022-10-20 Microsoft Technology Licensing, Llc Inferring Structure Information from Table Images
AU2023210531B1 (en) * 2023-07-31 2023-11-16 Canva Pty Ltd Systems and methods for processing designs

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6346565A (ja) * 1986-08-13 1988-02-27 Nec Corp 目次生成処理方式
JP2855797B2 (ja) 1990-06-15 1999-02-10 富士ゼロックス株式会社 文書処理装置
US5335290A (en) 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
US5680479A (en) 1992-04-24 1997-10-21 Canon Kabushiki Kaisha Method and apparatus for character recognition
JP2789971B2 (ja) 1992-10-27 1998-08-27 富士ゼロックス株式会社 表認識装置
JPH06214983A (ja) * 1993-01-20 1994-08-05 Kokusai Denshin Denwa Co Ltd <Kdd> 文書画像の論理構造化文書への変換方法および装置
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.
JP2618832B2 (ja) 1994-06-16 1997-06-11 日本アイ・ビー・エム株式会社 文書の論理構造の解析方法及びシステム
US5555556A (en) 1994-09-30 1996-09-10 Xerox Corporation Method and apparatus for document segmentation by background analysis
US5987171A (en) 1994-11-10 1999-11-16 Canon Kabushiki Kaisha Page analysis system
US5689585A (en) 1995-04-28 1997-11-18 Xerox Corporation Method for aligning a text image to a transcription of the image
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 構造化文書生成方法および装置
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
US5784487A (en) 1996-05-23 1998-07-21 Xerox Corporation System for document layout analysis
US5956737A (en) 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US6175844B1 (en) 1997-05-29 2001-01-16 Adobe Systems Incorporated Ordering groups of text in an image
US6687404B1 (en) 1997-06-20 2004-02-03 Xerox Corporation Automatic training of layout parameters in a 2D image model
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
JP3940491B2 (ja) 1998-02-27 2007-07-04 株式会社東芝 文書処理装置および文書処理方法
US6377704B1 (en) 1998-04-30 2002-04-23 Xerox Corporation Method for inset detection in document layout analysis
JP2001101164A (ja) 1999-09-29 2001-04-13 Toshiba Corp 文書画像処理装置及び文書画像処理方法
US7249318B1 (en) 1999-11-08 2007-07-24 Adobe Systems Incorporated Style sheet generation
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
US8230323B2 (en) 2000-12-06 2012-07-24 Sra International, Inc. Content distribution system and method
JP2002178811A (ja) 2000-12-14 2002-06-26 Takata Corp 子供用座席装置
US20030004971A1 (en) * 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US6801673B2 (en) 2001-10-09 2004-10-05 Hewlett-Packard Development Company, L.P. Section extraction tool for PDF documents
JP2003288334A (ja) 2002-03-28 2003-10-10 Toshiba Corp 文書処理装置及び文書処理方法
US7142728B2 (en) * 2002-05-17 2006-11-28 Science Applications International Corporation Method and system for extracting information from a document
CA2486528C (en) 2002-05-20 2010-04-27 Tata Infotech Ltd. Document structure identifier
US7191186B1 (en) * 2002-11-27 2007-03-13 Microsoft Corporation Method and computer-readable medium for importing and exporting hierarchically structured data
US7272258B2 (en) 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
US7313754B2 (en) 2003-03-14 2007-12-25 Texterity, Inc. Method and expert system for deducing document structure in document conversion
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
US7890852B2 (en) 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
JP2005149269A (ja) 2003-11-18 2005-06-09 Hitachi Systems & Services Ltd 構造化文書の処理システム
JP4012140B2 (ja) 2003-11-20 2007-11-21 キヤノン株式会社 画像処理装置、情報処理装置及びそれらの制御方法、プログラム
US7386789B2 (en) 2004-02-27 2008-06-10 Hewlett-Packard Development Company, L.P. Method for determining logical components of a document
KR100747879B1 (ko) 2004-06-10 2007-08-08 캐논 가부시끼가이샤 화상 처리 장치, 제어 방법 및 기록 매체
US7558792B2 (en) 2004-06-29 2009-07-07 Palo Alto Research Center Incorporated Automatic extraction of human-readable lists from structured documents
JP2006134036A (ja) * 2004-11-05 2006-05-25 Matsushita Electric Ind Co Ltd スライド構造化装置
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
US8302002B2 (en) 2005-04-27 2012-10-30 Xerox Corporation Structuring document based on table of contents
US7392473B2 (en) 2005-05-26 2008-06-24 Xerox Corporation Method and apparatus for determining logical document structure
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
EP1739574B1 (en) 2005-07-01 2007-09-12 PDFlib GmbH Method of identifying words in an electronic document
GB2428114A (en) 2005-07-08 2007-01-17 William Alan Hollingsworth Data Format Conversion System
US7613996B2 (en) 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US8307275B2 (en) * 2005-12-08 2012-11-06 International Business Machines Corporation Document-based information and uniform resource locator (URL) management
US7623710B2 (en) 2006-02-14 2009-11-24 Microsoft Corporation Document content and structure conversion
CN101055578A (zh) * 2006-04-12 2007-10-17 龙搜(北京)科技有限公司 基于规则的文档内容挖掘器
US7603351B2 (en) 2006-04-19 2009-10-13 Apple Inc. Semantic reconstruction
US7756333B2 (en) 2006-04-26 2010-07-13 Microsoft Corporation Document layout verification
JP2008097436A (ja) 2006-10-13 2008-04-24 Canon Inc 構造化文書構造自動解析および構造自動再構築装置
US8504553B2 (en) 2007-04-19 2013-08-06 Barnesandnoble.Com Llc Unstructured and semistructured document processing and searching
US8996682B2 (en) * 2007-10-12 2015-03-31 Microsoft Technology Licensing, Llc Automatically instrumenting a set of web documents
JP2009110500A (ja) 2007-10-29 2009-05-21 Toshiba Corp ドキュメント処理装置、ドキュメント処理方法、ドキュメント処理装置のプログラム
RU2007141666A (ru) 2007-11-13 2009-05-20 Николай Игоревич Докучаев (RU) Способ сбора, обработки и каталогизации целевой информации из неструктурированных источников
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
TW201025049A (en) * 2008-12-31 2010-07-01 Inventec Appliances Corp Method and system to integrate location information within file, and computer program product using the method thereof
US8473467B2 (en) 2009-01-02 2013-06-25 Apple Inc. Content profiling to dynamically configure content processing
US8380753B2 (en) 2011-01-18 2013-02-19 Apple Inc. Reconstruction of lists in a document

Also Published As

Publication number Publication date
US8380753B2 (en) 2013-02-19
KR101394723B1 (ko) 2014-05-15
KR101321309B1 (ko) 2013-10-29
JP2012164305A (ja) 2012-08-30
KR20130096686A (ko) 2013-08-30
TW201250494A (en) 2012-12-16
WO2012099803A1 (en) 2012-07-26
KR20120099578A (ko) 2012-09-11
JP5826299B2 (ja) 2015-12-02
AU2012200110B2 (en) 2013-05-16
US8886676B2 (en) 2014-11-11
US20130227406A1 (en) 2013-08-29
AU2012200110A1 (en) 2012-08-02
TWI472933B (zh) 2015-02-11
EP2477124A1 (en) 2012-07-18
US20120185491A1 (en) 2012-07-19
JP2014096171A (ja) 2014-05-22

Similar Documents

Publication Publication Date Title
JP5826299B2 (ja) 文書内のリストの再構築
JP6141921B2 (ja) 文書再構成の方法及びシステム
US8442998B2 (en) Storage of a document using multiple representations
US10360294B2 (en) Methods and systems for efficient and accurate text extraction from unstructured documents
US7853869B2 (en) Creation of semantic objects for providing logical structure to markup language representations of documents
JP5789525B2 (ja) 文書コンテンツの順序付け
JP2008123528A (ja) 文書のページ番号を検出する方法及びシステム
AU2012207560A1 (en) Storage of a document using multiple representations
JP5056337B2 (ja) 情報検索システム
WO2021230054A1 (ja) 文抽出装置及び文抽出方法
JP2011070529A (ja) 文書処理装置
JP5768561B2 (ja) 入力支援プログラム、入力支援装置、及び入力支援方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140107

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140214

R150 Certificate of patent or registration of utility model

Ref document number: 5480920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250