TWI472933B - 用於文件中之列表重建的方法及電腦程式產品 - Google Patents

用於文件中之列表重建的方法及電腦程式產品 Download PDF

Info

Publication number
TWI472933B
TWI472933B TW101101399A TW101101399A TWI472933B TW I472933 B TWI472933 B TW I472933B TW 101101399 A TW101101399 A TW 101101399A TW 101101399 A TW101101399 A TW 101101399A TW I472933 B TWI472933 B TW I472933B
Authority
TW
Taiwan
Prior art keywords
list
line
item
text
row
Prior art date
Application number
TW101101399A
Other languages
English (en)
Other versions
TW201250494A (en
Inventor
Philip Andrew Mansfield
Michael Robert Levy
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 TW201250494A publication Critical patent/TW201250494A/zh
Application granted granted Critical
Publication of TWI472933B publication Critical patent/TWI472933B/zh

Links

Classifications

    • 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/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)

Description

用於文件中之列表重建的方法及電腦程式產品
本發明係關於文件中之列表重建。
電子文件的作者通常建立列表及其他連續或分組的內容結構(例如編號的章、節、註腳、書目條目等),而無使用列表編輯工具或是指定列表作為文件中的語義結構。此外,即使作者編碼文件中的此結構,當經由一虛擬印表機驅動器轉換為一PDF時仍可能遺失結構。
當列表資訊在文件的結構中非外顯時,這阻止了各種應用程式使用利用此等列表的特徵。應用程式無法建議額外的列表條目給使用者,無法輕易地瀏覽一文件或正確地複製一列表的部分。
本發明某些具體實施例提供用以針對一文件重建一組列表的新穎方法,其中列表並無外顯地編碼。在某些具體實施例中,文件包括一或多行,且針對每一行而個別地重建一組列表。為重建在一行內的一列表,某些具體實施例使用幾何分析(例如文字線的水平內縮)及詞彙分析(例如基於列表標籤中的字元而識別列表的類型)的一組合。
針對每一行,某些具體實施例的方法開始執行幾何及詞彙分析的一組合以識別行內的列表間距。該方法基於具 有適當統計特性之對準內縮間隙的收集而決定列表標籤及列表內容之間的可能間距。這些列表間距可藉由使用詞彙分析以搜尋指示一列表項目的特定標準而確認。在某些具體實施例中,該方法接著基於不同的識別列表間距而決定在行內之每一列表項目的等級。
使用此資訊,該方法重建在行內的列表。該方法使用列表等級及間距以識別可能為單一列表之部分的列表項目,並藉由基於列表樣板而分類列表以及決定列表項目在一單一列表中是否互相搭配而確認這些匹配。一旦重建在一行中的列表,某些具體實施例識別在後續行之間的匹配列表,以重建在整個文件中的列表。行可在相同的頁上也可在多個頁上。
前述〔發明內容〕的目的係作為對本發明某些具體實施例的簡介,其並不意味對本文件所揭露之所有發明性標的物的介紹或概觀。以下的〔實施方式〕以及參照〔實施方式〕的〔圖式〕將進一步描述在〔發明內容〕中所述的具體實施例以及其他具體實施例。因此,要了解本文件所述的所有具體實施例,需要〔發明內容〕、〔實施方式〕及〔圖式〕的完整檢視。此外,所主張的標的並不受限於〔發明內容〕、〔實施方式〕及〔圖式〕中的詳細描述,而是由後附申請專利範圍所定義,因為所主張的標的可不偏離標的的精神而具體化於其他特定形式中。
在以下描述中,為解釋目的而提出許多細節。然而,熟悉此技術者將了解到,本發明可不使用這些特定細節而實施。在其他例子中,以方塊圖形式顯示習知的結構及裝置,以避免因不必要的細節而模糊本發明的描述。
本發明的某些具體實施例提供用以重建一文件之一組列表的一新穎方法,其中列表非外顯地編碼。在某些具體實施例中,文件包括一或多行,且針對每一行而個別地重建一組列表。為重建在一行內的一列表,某些具體實施例使用幾何分析(例如文字線的水平內縮)及詞彙分析(例如基於列表標籤中的字元而識別列表的類型)的一組合。
針對每一行,某些具體實施例的方法執行幾何及詞彙分析的一組合以識別行內的列表間距。該方法基於具有適當統計特性之對準內縮間隙的收集而決定列表標籤及列表內容之間的可能間距。這些列表間距可藉由使用詞彙分析以搜尋指示一列表項目的特定標準而確認。在某些具體實施例中,該方法接著基於不同的識別列表間距而決定在行內之每一列表項目的等級。
使用此資訊,該方法重建在行內的列表。該方法使用列表等級及間距以識別可能為單一列表之部分的列表項目,並藉由基於列表樣板而分類列表以及決定列表項目在一單一列表中是否互相搭配而確認這些匹配。一旦重建在一行中的列表,某些具體實施例識別後續行之間的匹配列表,以重建在整個文件中的列表。行可在相同的頁上也可在多個頁上。
圖1描述包括各種列表之一行100的範例。明顯可見的,行包括具有標籤「I」、「II」、「III」的一主要列表以及嵌套在此列表之內的各種列表。然而,若列表結構沒有在含有行100的文件中編碼,則使用文件的應用程式將不能使用此列表結構。某些具體實施例的方法使用幾何分析(如識別行100中列表項目之不同的內縮等級)及詞彙分析(如識別「I」、「II」、「III」等之序列)的組合來重建這些列表並外顯地編碼在文件之模式中的列表。
以下將描述數個更為詳細之本發明具體實施例。第I部分描述用以重建一文件中列表之程序的整體流程。第II部分接著描述用以識別及重建一行內之列表的詳細程序。第III部分描述用以匹配一組行中之列表的詳細程序。第IV部分描述用以重建列表之某些具體實施例之模組的軟體架構。最後,第V部分描述實施本發明某些具體實施例的一電子系統。
I.列表重建的整體流程
如所述,某些具體實施例識別並重建在一電子文件中的列表,其中列表非外顯地編碼作為一語義結構。這類列表可為編號的章、節、註腳、書目條目、照片、一週天數、編碼線、內容條目表、標題符號大綱等。這些列表可能非外顯編碼,因為列表係由一文字處理應用程式所產生,而無例如一列表產生工具(如一簡單的文字編輯器)或一圖形導向程式(其針對在列表中的每一條目使用不同的文 字盒或佈局區域)。在某些情況中,一文件可能已有建立一外顯列表,但在格式轉換中可能已遺失語義結構(例如假設檔案經由一虛擬印表機驅動器而儲存成PDF檔案)。
偵側在一文件中的這類內隱列表以及將內隱列表轉換為一外顯編碼的列表係致能使用此文件之一應用程式提供此一編碼結構的益處。舉例來說,編輯軟體可建議具有適當格式化之一自動產生的下一列表項目及標籤。超連結、內容的鏈路表、及對接續項目的其他此類電子編碼參考可自動地產生,且當使用者編輯文件時可與其所參考的物件一起移動。文件檢視應用程式可致能使用者使用章節號碼或其他此類列表項目而搜尋及瀏覽一文件。針對應用程式間的通訊,重建一列表可致能一使用者從一文件檢視器複製一內隱列表並將此列表貼於一文件編輯器中作為一外顯列表以有助於進一步的編輯。此外,列表重建可使用作為要完整輸入一向量圖形文件(如PDF檔案)至一文件編輯應用程式所需的通用語義重建的部分。此通用語義重建係詳細描述於美國專利申請案12/455,866,公開號為2010/0174985,其係併入本文中作為參考。
在某些具體實施例中,列表重建程序使用幾何與詞彙方法的一組合來識別內隱列表並將其轉換為外顯列表。亦即,程序說明內容的配置及外觀(例如內縮)以及用以形成列表中標籤的特定字元(如羅馬數字)。
圖2概念地描述用以重建跨越一或多行文字之列表之某些具體實施例的程序200。程序200將參考圖3至圖6 進行描述,其描述列表重建程序的各種態樣。如所示,程序200開始於205,其接收一或多行的有序文字線。將描述,某些具體實施例最初係個別地評估文字的每一行,接著匹配在接續行之間的列表。針對一多頁文件,某些具體實施例將每一頁視作用於列表重建程序的一單獨行,即使當頁為單行頁時。
在某些具體實施例中,文字線及行的排序係外顯地編碼至文件,即使列表並非如此。在某些具體實施例中,文件線及行也進行語義上的重建。此類重建的方法係詳細描述於美國專利公開號2010/0174985,其係併入作為參考。
圖3描述具有二十三個有序文字線的單一行300,其係明顯可見屬於一列表。然而,無任何外顯編碼,電子應用程式不會知道列表結構。可看出列表結構包括三個列表的等級。在某些具體實施例中,線間斷可編碼於文件的結構中,然而其他具體實施例使用一文件重建程序以識別文字及線並識別線均為一單一行。
接著,程序200在210識別在每一行的列表間距。如所述,某些具體實施例係個別地重建在每一行中的列表。熟此技藝這將了解到在某些具體實施例中這可包括對每一行之循環操作210-220,而非在此圖式所示的程序200。
在某些具體實施例中,列表間距為符合特定標準之一文字線中的一識別間隙,其中特定標準係指示間隙為一列表標籤(例如在行300之第一線中的「I」)及列表內容(例如在相同線中的「主標題1」)間之一分隔符的一可 能候選。列表間距為一特定類型的間距,其中某些具體實施例係定義為盡可能延伸之沒有頁內容的一垂直帶。
為識別在一行中的列表間距,某些具體實施例識別在行的文字線中之分離間隙,且接著找出這些分離間隙的垂直彙集。總結來說,當文字線由其基線的y座標所分類,程序開始於頁的底部。從頁的底部,程序彙集在連續文字線中具有重疊x間隔的可能分離間隙。這產生了一垂直矩形帶,其完全地通過可能分離間隙的每一彙集收集之間隙。亦即,垂直帶的厚度跨越在收集中所彙集之所有x間隔的相交。帶係盡可能地垂直延伸,直到帶遇到不具有可能分離間隙的一文字線與其重疊。若分離間隙的垂直彙集符合指示列表項目的特定標準,則間隙的彙集係識別為一列表間距。以下對圖7的討論將詳細描述用以識別列表間隙的程序。
圖4描述針對行400之識別列表項目起始候選,且剛好也是行300的前八線。在此情況中,由於所有文字線事實上為列表項目,所有線具有相關的列表間距,如圖所示。八線中的每一個在線的第一及第二文字之間具有一可能的分離間隙(第一文字為例如「I」、「A」、「B」、「i」等),第二文字係向左對齊。這些分離間隙係彙集為三個列表間距,如圖所示。
回到圖2,程序200在215識別具有列表間隙之每一線的列表等級。線的列表等級係用以決定在行中之線的相對內縮。圖5描述針對圖4之行400之某些具體實施例的 列表等級計算。如圖所示,某些具體實施例將任一線的基線從基線的左邊緣至行的左邊緣延伸一列表間距。程序係計數延伸基線所相交之屬於相同行中之文字線的列表間距的數量。如圖所示,對行的第一線來說此數量為零(即延伸的基線沒有與列表間距相交)。對於第三線(以及第二及第七線)來說,此計數為一,而第五線(及第四及第六線)則與兩個列表間距相交。這些計數係相關於其個別的文字線,作為文字線的列表等級。某些具體實施例從一而非零開始計算。
程序接著在220重建每一行的列表。列表重建程序將參考圖8及圖9而詳細描述於以下的第II部分。一般來說,程序產生未決列表之一堆疊並使用各種規則以產生新列表於堆疊中、增加項目於一列表、以及結束列表並將其從堆疊移除。某些具體實施例的列表重建程序使用一標籤樣板識別功能、標籤詞彙功能、及標籤產生功能。
某些具體實施例的標籤樣板識別功能係識別從一組所支援字母所選擇之用於特定列表的字母或樣板。這類字母的範例包括十進位{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}、小寫希臘文{α,β,γ,...,ω}、大寫希臘文{A,B,Γ,...,Ω}、圓盤標題符號{‧}、圓圈標題符號{°}、破折號標題符號{-}、星形標題符號{ }等。
特定列表項目的標籤樣板係由字首字串、字尾字串、 及標題符號或序數(其使用字母)的類型所構成。特定標籤的標籤樣板係藉由開始於標籤的最後字元(其可識別為一特定列表項目之列表間距左方的第一字元)並向後移動直到到達符合其中一支援字母的字元而識別。一旦找到此一字元,這定義了列表類型及字母。若字元在多個字母(如「i」、「D」等)中,可選擇多個樣板且這多個樣板之間的選擇可在列表重建的較晚階段決定。
程序持續檢查先前的字元,只要其來自其中一個匹配字母。在某些具體實施例中,此字元範圍定義標籤的序數或標題符號的範圍。在序數範圍前之標籤中的所有字元係定義字首,而在序數範圍後之標籤中的所有字元係定義字尾。因此,如圖6所示,行400之第一列的標籤樣板為一空字首、大寫羅馬字或大寫拉丁字、及字尾「.」。在此情況中,大寫羅馬字樣板係優先於大寫拉丁字,因為字元「I」較可能屬於大寫羅馬字母,尤其是在一行的頂部。然而,若在此等級的下一列表項目為「J」,則此時將選擇大寫拉丁字母。
某些具體實施例也限制了字首及/或字尾的特性。這些特性可包括字串長度、字元集、或正規標示。舉例來說,字尾可在長度上限制在單一字元、或限制在幾個特定數值(例如「.」,「)」,「:」等)。在某些具體實施例中,對於特定類型(如標題符號列表),字首及字尾可能完全不被接受。
除了字首與字尾的定義及序數類型,某些具體實施例 包括字形及文體資訊於標籤樣板中。舉例而言,針對第一條目為行300中第一線之列表的樣板可能指示空字首、大寫羅馬序數、字尾「.」、具有正規的(即非粗體、非斜體、無底線)Times New Roman字形。
特定列表類型的標籤詞彙功能使用標籤的標題符號或序數部分產生列表標籤的一項目數目作為一輸入。舉例來說,圖6所示的兩線具有項目數目為1,而圖5所示的第三線具有項目數目為2。在某些具體實施例中,所有標題符號或其他無序列表類型總是產生項目數目1。針對通常的有序列表類型(如小寫羅馬字、大寫羅馬字等),某些具體實施例使用習知技術而實施標籤詞彙為一確定性有限自動機(DFA)。針對最簡單的情況(如十進位、小寫拉丁字、大寫拉丁字等),某些具體實施例使用算數或字元編碼而實施標籤詞彙。
標籤產生器功能本質上與標籤詞彙功能相反。標籤產生器針對一給定標籤樣板及項目數目而產生一標籤。舉例來說,針對圖6所示之相關於第一線的標籤樣板,若給定的項目數目為4,則標籤產生器產生「IV」。某些具體實施例產生相同的結果,而不論標題符號列表的輸入。針對有序列表的序數部分,某些具體實施例的產生器通常將使用基數(例如針對十進位及羅馬字為基數10,而針對拉丁字為基數26等等)之冪次的整數除法,以決定在該基數之數目的位數,接著依序連結每一位數的字串描述。
回到圖2,程序200接著在225匹配行之間的列表。 列表匹配程序將參考圖10及圖12而詳細描述於以下的第III部分。以針對每一行所重建的列表,某些具體實施例的程序係識別在第一行末端的開放式列表且嘗試將這些列表與在下一行開始處的開放列表匹配,以結合列表。
如前所述,數個操作係執行以識別在文字線的一行內之列表間距。圖7係概念性的描述某些具體實施例用以識別在一行文字線內之列表間距的程序700。如圖所示,程序700開始於705,接收有序文字線之一行。如前文參考圖2所述,某些具體實施例係個別地評估在一文件中之數個行的每一個。在這些具體實施例中,列表間距係針對每一行而個別地識別。
程序接著在步驟710識別在行的文字線中之分離間隙(或可能的分離間隙)。分離間隙為大於一句子中兩個連續文字之間的預期間隙之文字或類似內容之間的間隙。在某些格式中(例如強化文字處理格式),分離間隙可基於用於文件中之間距字元而識別(例如標誌字元、在一列中之多個空格字元的序列、將行分隔之外顯墊間距(padding)或邊限、浮動影像或其他文件內容結構等)。對於向量圖形元件(或在所給定的資訊只有字符的座標之其他文件),某些具體實施例係識別分離間隙作為語義重建程序的部分,其係詳細描述於美國專利公開號US2010/0174985並併入本文作為參考。某些這些具體實施例執行集群分析,以決定在一文字內之字符之間的平均間距以及在文字之間的平均間距,接著將大於平均跨字間 距的間隙歸類為一分離間隙或可能的分離間隙。
一旦識別分離間隙,某些具體實施例使用例如詳細描述於美國專利US2010/0174985中之程序而從這些間隙產生間距。總結來說,程序將分離間隙的垂直收集彙集為間距。程序700在715選擇行之最底部未評估的文字線。這在第一次執行操作715時將為行中的最底部文字線。每一次執行操作,程序將向上選擇下一文字線。
程序接著在步驟720決定所選的文字線是否包含至少一分離間隙。當文字線不包括任何分離間隙時,程序接著進行至750以決定是否有任何文字線餘留於行中。在此情況中,行將不包括經過文字線的任何列表間距。另一方面,當所選線包括至少一分離間隙,則程序在725從文字線選擇一分離間隙。不同的具體實施例從左到右、右到左、或以隨機順序選擇分離間隙。
接著,程序在730中決定所選分離間隙是否與一開放式間距組相交。在以下段落中將描述,某些具體實施例產生分離間隙的間距組,其在後續文字線中至少部分地水平對齊。舉例來說,在圖4的行400中,在第五文字線中之「ii」與「第三標題2」之間的間隙係對齊在第六文字線中之「iii」與「第三標題3」之間的間隙。某些具體實施例也決定所選分離間隙是否與一間距組(包括任一之前的線且沒有在分離間隙間之線中插入文字)相交。舉例來說,在行400之第一線中之「I」及「主標題1」之間的間隙係對齊在第八線中之「II」及「主標題2」之間的間隙, 且某些具體實施例將對準這些分離間隙,因為在第二到第七線中沒有插入的文字。
當所選分離間隙沒有與一開放式間距組(即包括先前線或沒有被先前線中的文字所阻擋的間距組)相交,程序在735產生包括所選分離間隙的一新的間距組。舉例來說,在行400中,程序最初在第八線針對分離間隙產生一間距組,接著當評估第七線將必須針對「C」及「第二標題3」之間的分離間隙而產生新的間距組,因其未與已經產生的間距組係相交。
另一方面,當所選分離間隙與開放式間距組相交時,程序於740將所選分離間隙加入至相交的間距組。某些具體實施例使用分離間隙的相交而決定由間距組所定義之垂直帶的邊界。舉例來說,行400的第四、第五、及第六線之每一者具有一分離間隙且這些間隙對齊以形成間距405。間距405只有這三個間隙中最窄的寬度,因為間距的寬度係由沿間隙之水平軸的相交所定義。
圖3描述針對行300所產生的間距。如圖所示,某些具體實施例在文字線開始前沒有計數一空格作為分離間隙,但也沒有經由這樣一空格而避免間距的彙集。舉例來說,間距305為四個分離間隙(其每一由五到八文字線所分隔)的彙集。此外,有藉由大綱的主標題而避免彼此連接的三個間距310-320,以及藉由主標題及第二標題而避免連接的四個間距325-340。由於這些間距在其右側皆具有向左對齊的文字,這些間距的寬度係基於左邊界文字的右 邊緣而決定(即列表項目數目)。
會到程序700,程序接著在745決定額外的分離間隙是否餘留在文字線中。若餘留額外的間隙,則程序回到725以選擇下一間隙。當所有間隙已經針對目前所選文字線而評估,程序於750決定是否餘留任何文字線。若額外文字線需被評估(即目前所選文字線不是行中最頂部的線),則程序回到715以選擇底部未評估的文字線。在評估行中的所有間隙後(在所有文字線中的所有間隙),程序進行至755以決定所彙集的間距是否為列表間距。
程序700在755選擇一間距組(即從操作715-750之分離間隙所建構出之組的其中之一)。程序可從左到右、上到下等或其組合選擇間距組。
程序接著在760決定所選的間距組是否具有列表間距的特性。當建構一行的間距,某些具體實施例收集在行中所找到之所有間距的統計。使用這些統計,某些具體實施例識別列表間距為符合特定標準的間距。標準係指示間距可能是列表標籤及列表內容之間的一間隙,相較於指示在文字線中一分離的間距(例如指示一行應分為二)。此標準的一範例為列表間距右方的文字係對齊於左方的需求,同時在一列表間距及其左方間距(或邊限)之間通常為零或有一文字(這一文字為一列表標籤)。
一旦識別列表間距,某些具體實施例檢查列表間距所通過的可能分離間隙。舉例來說,在圖3的間距305的情況中,雖然間距具有23線的垂直長度,但只有四個分離 間隙。當一列表間距通過文字線的第一及第二文字之間時(在已執行任一文字線分離之後),文字線係旗標為一可能的列表項目起始候選,且相關的列表間距係指派至該線。某些具體實施例在當間距符合針對一列表間距的所有標準時可維持間距為列表間距,即使間距另外因太薄而被捨棄。
當所選間距符合列表間距的特性時,程序700在765識別該組為一列表間距。在某些具體實施例中,列表間距係儲存於記憶體中,用以用於較大的文件重建程序。某些具體實施例儲存列表間距作為描述文件之檔案中的資訊(例如儲存間距本身為文件物件)。程序接著在770決定是否有餘留任何額外的間距組供評估。若餘留更多間距,則程序回到755以選擇下一間距。當評估所有間距組,程序結束。
II.在一行中的重建列表
如所述,某些具體實施例藉由使用未決列表的一堆疊而一次一行地重建列表。圖8概念性地描述用以在單一行中重建列表之某些具體實施例的程序800。程序800將參考圖4(其描述具有八線的行400)及圖9(其概念性地描述涵蓋十一個階段905-955之未決列表的一堆疊900)而作出描述。
如圖所示,程序800開始於802,接收具有識別列表間距及等級之文字線的一行。在某些具體實施例中,列表 間距及等級係如同前文在第I部分中所述而識別(即藉由使用可能的分離間隙以找出間距、決定為列表間距之間距、以及找出每一間距的等級)。
接著,程序在804針對該行產生未決列表的一空堆疊。如所述,圖9描述一堆疊900,其第一階段905是空的(即沒有未決列表在堆疊中)。程序也在806設定在行之右邊緣的開放式位置。稍後將於程序800中描述,開放式位置係用以決定一新列表的開始是否可左開放式或應為封閉的。
程序接著在808選擇在該行中的下一文字線。某些具體實施例的程序開始於行中的最高文字線。參考行400,此為開始於「I」的線。某些具體實施例僅處理具有列表間距的線,而忽略所有其他線(即具有列表之間內容的線),而其他具體實施例處理一行中的所有文字線。
程序800接著在810決定所選文字線是否具有列表間距及識別等級。如所述,某些具體實施例僅處理具有列表間距及識別等級的文字線,而其他具體實施例處理所有的文字線。程序800檢查所有的文字線,且當所選文字線不具有列表間距或識別等級時,程序進行至852,其將詳細描述於後。
當所選文字線具有列表間距及識別等級,則程序在814決定一未決列表是否在具有與當前的線相同的列表間距及等級之堆疊中。若是,則當前的線可屬於該未決列表。當然,在第一次通過操作814時並沒有未決列表、也不 具有相同或不同的列表間距及等級。當一列表在具有與當前所選文字線相同的間距及等級之堆疊中為未決,則程序進行至844,其將描述於後。
另一方面,當沒有列表在具有與當前所選文字線相同的間距及等級之堆疊中為未決,則程序在816針對當前列表識別任何候選的列表樣板。如在前面部分中所述,某些具體實施例從列表間距開始且向後操作以試圖識別針對當前的線所屬之列表而使用的字母。某些具體實施例可識別多個候選列表樣板,並在當第一列表項目不明確時留下開放式的樣板決定,因為其具有可能在多個不同字母(如「I」、「i」等)的字元。
程序接著在818對每一個剛識別的候選列表樣板應用針對其列表類型的詞彙分析至當前文字線之第一文字的序數部分。此時,從識別候選列表樣板,程序已決定字首、字尾、及文字線之第一文字(標籤)的序數部分。
程序在#722決定文字線的第一文字是否為具有針對至少一候選樣板之一對應項目數目的一合法列表標籤。使用在818的詞彙功能,若達成成功的輸出(其不需匹配字母的項目數目一),則當前線的第一文字為項目的合法列表標籤。舉例來說,標籤「i」可決定兩個合法字母(小寫羅馬字及小寫拉丁字)。
當沒有文字為一匹配的樣板時,則線非一列表項目(至少不在由執行列表重建的應用程式所識別之字母中),且程序進行至852,其將描述於下。然而,當第一字具有 至少一匹配,則程序在824產生具有開放式末端狀態的新未決列表。當一列表可能持續增加項目於列表的末端時,該列表具有一開放式末端狀態。另一方面,一旦不再有可能加入項目之列表的末點,則列表具有一封閉式末端狀態。在某些具體實施例中,列表總是加入至具有開放式末端狀態的堆疊。
當列表標籤可能來自多於一字母,則新的未決列表將不具有明確的樣板,而是匹配的任何候選樣板(在操作822)將針對列表而儲存。當第二列表項目加入列表,程序將藉由選擇其中一匹配樣板而作出此樣板決定。
圖9的第二階段910描述第一列表960已加入至堆疊900。如圖所示,列表960目前只有一項目,其對應行400中的第一線。當此線的列表標籤為「I」,這可能為項目數目1的大寫羅馬字或是項目數目9的大寫拉丁字。因此,列表加至堆疊,器儲存兩個可能樣板。如圖所示,首先將大寫羅馬字列於表上,因為其為兩個可能字母中優先性較高者。一般來說,當在列表中找到的第一個序數為「I」或「i」,對應的羅馬數字字母為較可能的字母,但當然仍有項目為來自前一行之拉丁字字母的延續的可能性。
接著,程序800在826決定目前線的列表間距是否為開放式位置的左邊。如上述,某些具體實施例使用開放式位置以決定新列表的開始狀態是否應為左開放式。當存在列表可能為來自前一行、頁、節等之列表之延續的可能性,則列表的開始狀態為左開放式。因此,當列表並無嵌套 於目前行之先前列表內時,開始狀態將為左開放式。開放式位置係用以追蹤行中最左邊的列表,且具有在此位置右邊之間距的任何列表將具有一封閉式開始狀態。
因此,當目前線的列表間距為開放式位置的左邊,程序在828開放新列表的開始狀態。另外,當目前線的列表間距在或至開放式位置的右邊,則程序在829封閉新列表的開始狀態。若目前線的列表間距是在開放式位置的右邊,則行已經具有包含至目前列表間距左邊之項目的一列表。同樣地,目前間距將必須為在新列表中的第一項目,而不是來自前一行的延續,因為其係嵌套於至少一其他列表內。如圖9的階段910所示,當第一列表960加入堆疊時,開始狀態為左開放式。
接著,程序800在830以與目前文字線為一項目之列表相同或更高的列表等級封閉任何未決列表的末端。程序也在832從未決列表的堆疊移除封閉列表,並在834加入新列表至堆疊頂部。因此,當新的列表加入,其在比已經在堆疊上之列表的至少一者更低的等級(即其列表間距更向左邊),則那些列表為封閉式(於末端狀態)並自堆疊移除。此情況可能發生在包括一先前列表之延續的一行中。舉例來說,若等級三列表項目為在一行中的第一項目,且等級一列表項目跟隨在後,則等級一列表的產生將指示等級三列表的結束。在圖9的階段910中,新列表960係加至堆疊的頂部,然而並無列表在堆疊中供程序封閉及移除。
接著,程序800在835移動開放式位置至目前開放式位置的最左邊及目前文字線的左邊界。當程序在處理行中每一文字線後執行此操作,開放式位置將總是在任何已處理文字線的最左邊界。然而,某些具體實施例僅修改文字線(其為一列表的部分)之後的開放式位置,避免非內縮非列表文字影響開放式位置(如章節標題之間的本體文字)。
接著,程序在836決定是否還有文字線仍留在行中。一旦所有文字線都已檢查,則程序800進行至860,其將描述於後。當有額外文字線留下,程序回到808以選擇下一文字線並檢查此新線的列表特性。如前述,某些具體實施例的程序係開始於行的頂部並向下移動。
如上述,當程序在814決定堆疊包括具有與目前文字線相同的列表間距及等級之一未決列表時,則程序進行至844。此時,程序在844決定在目前文字線中的第一字是否匹配針對至少一候選樣板之列表中之預期的下一項目。這是目前線是否可加入未決列表的一決定。為決定目前線是否可加入未決列表,某些具體實施例針對每一可能的候選樣板及在那些樣板中的下一項目數目使用標籤產生功能(即若在列表中的第一項目為「I」,則標籤產生功能將輸出「II」及「J」)。當沒有匹配時,程序進行至816以決定項目是否為新列表的開始。
當所產生的標籤為一匹配時,程序在845針對有一匹配而選擇最高優先性樣板。若此時僅有一個候選樣板,則 將總是選擇該候選樣板。若項目為列表中的第三或更多項目,則將總是在任何候選樣板之間作出決定。然而,當目前線在包括多個候選樣板之列表中具有第二列表項目,則程序選擇具有最高優先性的樣板。
程序800接著在846加入目前線作為在其等級之目前未決列表中之新的列表項目。在圖9中,第三階段915描述行400的第二線造成新列表965的產生。程序產生具有封閉式開始狀態的此新列表965,因為開放式位置目前係位於行400之第二線開始的左邊。此列表係加入堆疊的頂部。第三線在階段920加入此列表,列表965現在具有兩項目。
在加入新項目至未決列表後,程序在848封閉等級比目前項目還高之任何未決列表的末端,接著在850從未決列表之堆疊移除封閉式列表。程序接著進行至835以移動開放式位置(若有需要)並決定是否有任何額外的文字線留在行中。
亦即,當新項目以一特定等級加入一列表時,嵌套於該列表之內的任何列表(且因而在更高等級)將封閉。參考行400,當在第七列中的項目加入等級一列表(大寫拉丁字),程序封閉等級二列表(小寫羅馬字)。圖9描述此於階段940,其將在三個先前階段後描述。在階段925,行400的第四線造成新列表970的加入,其可使用小寫羅馬字或小寫拉丁字字母。當來自行400之第五線的第二項目加入列表970時將在階段930做出此決定。在列表中 的此第二項目(其為「ii」而非「j」)係指示列表使用小寫羅馬字數字作為其字母。在階段935,行400的第六線係加入作為列表970的第三項目。
在階段940,第三項目加入堆疊900中的第二列表965,其對應行400的第七線。由於第三列表970在比第二列表965高的等級,程序封閉第三列表970並移除列表。如圖所示,某些具體實施例儲存有關列表的相關細節(即構成列表中項目的文字線、項目數目、項目標籤、所使用的樣板等等)於儲存器(例如,像是RAM的揮發性記憶體、像是硬碟或快閃記憶體的永久儲存器等)。階段945描述堆疊900現在只有兩個未決列表,其中列表965為頂部列表。在階段950,第二項目加入第一列表960,其對應行400的第八線。此加入造成程序封閉第二列表965並移除此列表。階段950描述在堆疊900中只有第一列表960現在為開放式。
回到圖8,當目前文字線無法用以形成一列表(例如在操作810或822所決定),程序800進行至操作852。此時,程序在852封閉具有一列表間距至目前文字線之左邊界右方的任何未決列表的末端。程序也在854從未決列表的堆疊移除封閉式列表。
程序接著在856決定在此列表移除後,未決列表的堆疊是否為空。當至少一列表仍未決於堆疊中,程序在858加入目前文字線至堆疊頂部之列表的最後列表項目。因此,若一列表項目跨越多個線,額外線將以列表項目分組。 圖10描述此一多線列表項目1000的範例。當評估列表項目1000的第二線,程序將保持具有一列表項目之列表為開放式(項目「I」),且將接著加入第二線至該列表項目(因為其本身不具有一列表標籤)但也不會導致列表的封閉(因為其排列)。圖11描述行1100,其中列表項目之間的段落係以列表項目分組且無導致列表的封閉。行1100的每一列表項目具有三到四線的一相關段落。在某些具體實施例中,這些線係以列表項目分組(例如,第一段落係分組為具有標籤「I」之列表項目的部分)。
然而,某些具體實施例並不執行操作852及854、或執行這些操作的變化以致能在較大文件中之分節或章標題的內縮以及當有大量非列表內容在列表項目之間時之此類列表的重建。舉例來說,在某些情況中,分節標題將內縮,如圖4所示的列表,但在這些標題之間為不具內縮的段落(亦即,類似行1100的情況,無內縮段落)。並非讓每一段落清除未決列表的堆疊,而是將這些段落加入於最後列表項目之下作為內容,而無封閉任何其他列表。圖12描述具有在嵌套列表標題間之段落內容的此類列表的部分之範例。某些具體實施例識別文件中的本體段落(如基於外顯編碼格式或文件重建技術)並在執行列表重建程序前消除屬於這些段落的文字線。
一旦已評估在一行中的所有文字線,程序800在860驗證列表、移除任何不合格的列表、且依所需修改所儲存的列表堆疊。某些具體實施例包括識別一列表為合法的最 小條件。舉例來說,某些具體實施例要求一列表具有至少兩項目,避免單一項目列表的形成。若列表不合格,則程序移除列表且將其文字線以及任何嵌套列表下降至儲存的列表堆疊中之一較低等級。若文字線下降至列表堆疊的底部,則此線不在任何列表中。
因此,舉例來說,在某些具體實施例中,若行400並未包括其第八線,則第一列表960將失去資格並從所儲存的列表堆疊移除。其他列表965及970每一將向上移動一等級。行的第一線不會相關於任何列表。然而,若文件包括多行,則某些具體實施例將不移除此列表,其可延續於下一行中,如第III部分所述。
另一方面,若第五及第六線(「ii」及「iii〕)未出現,則將移除列表970,且第四文字線將相關於列表965中的第二項目。在此情況中,因為單一項目列表為封閉式,即使在多行情況中,列表將被消除且僅留下兩列表。
上述程序800及所述變化係使用內縮作為列表等級的一指示符。某些具體實施例也能夠識別使用多等級編號完成嵌套之嵌套列表。圖13描述這樣一組嵌套列表1300的範例。在此組嵌套列表中,對於所有不同的項目,列表間距係在相同等級,但列表項目需分隔為不同列表。為處理此問題,當(i)目前文字線在與一未決列表相同的等級以及(ii)未決列表的最後列表項目(或最後列表項目加上一區分字元)為目前文字線之標籤的字首部分,則某些具體實施例並不封閉未決列表或在加入新列表至頂部前從 堆疊移除列表。
如所述,某些具體實施例可識別藉由內縮而嵌套的列表(如圖3中所示)以及藉由編號而嵌套的列表(如圖13中所示)。為完成此,某些具體實施例使用一變化於程序800。在操作830中,某些具體實施例並不總是封閉在相同等級中的未決列表作為新列表,而是決定多等級編號是否存在於在相同等級之任何未決列表及新列表之間。此編號存在於當符合上述條件時-未決列表的最後列表項目(或最後列表項目加上一區分字元)為目前文字線之標籤的字首部分。
III.跨多行之重建列表
以上部分描述用以識別及重建單一行內列表之某些具體實施例的程序。如上述,某些具體實施例在一多行文件的每一行上執行此一程序,接著在確認列表前匹配所有行的開放式列表。圖14係概念地描述用以重建橫跨多行之列表之某些具體實施例的程序1400。程序1400將參考圖15進行描述,其中圖15描述一文件之隨後的兩行1505及1510。
如所示,程序1400在1405接收一組有序行。行可全部為在相同頁的相同排版,也可跨越多種排版、頁、節等等。在某些具體實施例中,行的順序是給定的(例如編碼於文件的結構中)。在其他具體實施例中,列表重建為一較大文件重建程序的部分,例如描述於US 2010/0174985 中,其係併入本文作為參考。
程序接著在1410識別所有行的列表。在某些具體實施例中,多數程序800係執行(除了在860的驗證操作之外)以識別行的列表。這可留下某些具有開放式開始或末端狀態的列表。舉例來說,在圖15中,第一行1505將具有三個具有開放式末端狀態的列表(來自線1、8、及14的「I」、「II」、「III」的列表、來自線15及16之「A」及「B」的列表、以及來自線17之「i」的單一項目列表)。這些列表的第一個將亦具有一開放式開始狀態。在第二行1510中,兩列表將具有開放式開始狀態(來自線1及2的「ii」及「iii」的列表、以及來自第三及第六線之「C」及「D」的列表)。這兩列表的後者將也具有一開放式狀態。
當識別所有列表,程序可嘗試匹配在各行中的列表。程序在1415設定順序中的第一行作為目前所選之行。程序也在1420設定所選之行之後的行為下一行。某些具體實施例僅針對具有至少兩行的文件執行程序1400。其他具體實施例即使對單一行的文件也總是執行此程序,但包括針對僅具一行之文件的情況下的退出條件。
假設文件具有二或更多行,程序在1425中決定所選之行是否具有包含開放式末端狀態的任何列表。若行不具有開放式列表,則程序進行至1445,其將描述於後。若無開放式列表,程序將不會試圖匹配來自下一行的任何列表與目前所選之行,因為來自兩行中之第一行之具有開放式 末端的列表為此一匹配的必要條件。
程序接著在1430決定下一行是否具有包含一開放式開始狀態的任何列表。類似於在一對行之第一者中的一開放式末端狀態的必要條件,程序要求在該對中的第二行具有至少一列表包含一開放式開始狀態,以與第一行的列表匹配。再者,若沒有列表具有開放式開始狀態,則程序不會試圖匹配各行的列表,且進行至1445。
若在第一行有具有開放式末端狀態的列表且在第二行有具有開放式開始狀態的列表,則程序在1435決定一匹配列表延續或列表延續組是否存在於各等級之間。在某些具體實施例中,在第一行末端的任何開放式列表可與在第二行開始的任何開放式列表匹配,只要所有匹配列表等級組為原始等級的一單調增加函數且開始第二行的項目標籤係匹配來自第一行之列表的下一項目標籤。亦即,列表等級的順序必須在整個匹配中維持,雖然對某些列表等級有可能會改變而其他則維持不變。
為決定兩列表是否匹配,某些具體實施例使用標籤產生功能,以產生來自第一行之開放式末端狀態列表的下一列表項目,接著檢查這是否匹配來自第二行之開放式開始狀態列表的第一列表項目的標籤。在決定對第一行中的每一列表是否存在匹配後,某些具體實施例決定任何所需的列表等級改變是否將違反單調(monotonicity)要求。
若一有效的匹配(或匹配組)存在於兩行之間,則程序在1440結合橫跨兩行的匹配列表。在兩行之間有多於 一個有效匹配或匹配組存在之較不可能的情況中,某些具體實施例比較內縮(如從行的左邊緣到列表間距的距離)以決定哪個有效匹配是最佳的(對具有相同內縮之列表具有優先性)。
程序1400接著在1445設定下一行作為所選之行。某些具體實施例也包括先前所選之行作為下一行的部分。因此,若在先前所選行中的任何開放式列表並未找到一匹配且由於較低階開放式末端列表匹配而未封閉,則程序可在下一行搜尋匹配。在某些具體實施例中,程序將先前所選的行與下一行連結,因而致能列表跨越多個行(例如,在特定列表中之第一列表項目在第一行且列表中的第二項目直到第三行前未出現的情況)。
程序在1450決定在新選之行後是否有任何額外行。當額外行仍存在,程序回到1420以檢查與下一行的匹配。若沒有行存在,程序在1455驗證在行組中的所有列表。在某些具體實施例中,這與程序800的操作860相同,如上述。亦即,程序驗證所有列表、移除任何不合格列表、且在需要時修改所儲存的列表堆疊。接著,程序1400結束。
在圖15中,第二行1510的最低列表等級與第一行1505的第二低列表等級匹配(即「C」列表項目接著「B」列表項目),且第二行1510的最高列表等級與第一行1505的最高列表等級匹配(即「ii」列表項目接著「i」列表項目)。第一行的最低等級開放式列表(大寫羅馬字 )在第二行中不具有一匹配。程序可基於匹配字母及列表項目的持續序數而輕易地匹配這些列表。
圖16描述一列表改變等級而第二列表留在相同等級的一範例,但保留單調的要求。在此圖式中,第二行1610具有兩列表,其具有等級0及等級1。等級0大寫羅馬字列表與第一行1605的等級0大寫羅馬字列表匹配,但第二行1610的等級1小寫羅馬字列表與第一行的開放式等級2小寫羅馬字列表匹配。
如上述,當完全地重建一文件的列表,可致能各種特徵。這些特徵可包括額外列表項目、超連結及對後續項目之其他參考的自動產生、經由列表項目的搜尋及導航功能、格式間的複製及貼上等等。
IV.軟體架構
在某些具體實施例中,上述程序係實施為在一特定機器(例如電腦或手持裝置)上執行或儲存於一電腦可讀媒體的軟體。圖17概念性地描述某些具體實施例之列表重建模組1700的軟體架構。在某些具體實施例中,列表重建模組1700為一單獨應用程式或整合至一應用程式(如作為文件重建應用程式的部分),而在其他具體實施例中,應用程式可能實施於一作業系統內。此外,在某些具體實施例中,模組係提供作為基於伺服器之解決方案的部分。在某些此類具體實施例中,模組係經由薄客戶(thin client)提供。亦即,模組執行於一伺服器上(例如為在 伺服器上操作之應用程式的部分),而使用者經由從伺服器遠端遙控之一單獨機器而與應用程式互動。在其他此類具體實施例中,模組係經由一厚客戶提供。亦即,模組係從伺服器(例如為從伺服器所散佈之應用程式的部分)散佈至客戶機器並執行於客戶機器上。
列表重建模組1700包括列表間距識別器1705、列表等級識別器1710、列表重建器1715、跨行匹配器1720、列表驗證器1722、及列表樣板函數1740。此外,列表重建模組1700使用文件儲存1745、針對未決列表之堆疊的儲存1750、及樣板定義1755。文件儲存1745儲存有關列表重建模組1700用以識別及重建列表之一或多個文件的資訊。此資訊可包括行及文字線資訊,包括這些文件物件的邊界。在某些具體實施例中,文件儲存1745儲存一文件物件模組,例如美國專利申請案2010/0174985所述,其係併入本文作為參考。針對未決列表之堆疊的儲存1750儲存在列表重建程序過程中之可能列表的一未決堆疊。在某些具體實施例中,此資訊係儲存於RAM中。樣板定義係儲存字母之一列表以及有關列表樣板函數1740所需字母之資訊。在某些具體實施例中,文件資訊、未決堆疊、及樣板定義係儲存於一實體儲存中。在其他具體實施例中,此資訊係儲存於不同的實體儲存中;舉例來說,文件資訊及樣板定義可儲存於永久儲存中,而未決堆疊儲存於RAM中。此外,其中一儲存實際上可分裂成多個實體儲存(如不同文件可能儲存於不同磁碟上)。
列表間距識別器1705使用文件資訊1745而識別一文件中的列表間距。在某些具體實施例中,列表間距識別器1705係識別在文件之一行中的可能分離間隙、將間距彙集作為重疊分離間隙的垂直帶、且決定間距是否符合列表間距的需求。
列表等級識別器1710使用列表間距及文件資訊1745以識別具有一列表間距之每一文字線的列表等級。如上述,某些具體實施例開始於文字線基線的左邊緣,且決定有多少列表間距相交於在左行邊緣之該點之間。此數量為文字線的列表等級。
列表重建器1715使用列表間距及列表等級資訊以及來自文件儲存1745的文件資訊(例如有關文字線中的字及/或字元),以重建一行內的列表。在某些具體實施例中,列表重建器1715執行圖8所示之程序800的部分或全部。
某些具體實施例的列表重建器1715使用列表樣板函數1740。這些包括樣板識別器1725、標籤詞彙分析器1730、及標籤產生器1735。所有的這些函數使用樣板定義1755,其包括標題符號或序數類型及其字母。樣板識別符1725識別一給定列表標籤的樣板。樣板識別符檢查列表標籤的字元以識別其字母,且一旦識別字母則決定列表樣板的字首及字尾。標籤詞彙分析器1730採用標籤的標題符號或序數部分作為輸入,並輸出標籤所表示之項目數目作為輸出。標籤產生器1735本質上係執行標籤詞彙分析器 1730的反函數,將項目數目及標籤樣板轉化為標籤。
跨行匹配器1720針對多個有序行使用列表重建器1715的輸出,且匹配行間的列表。在某些具體實施例中,如上述,跨行匹配器在具有開放式末端狀態之第一行的列表與具有開放式開始狀態之後續行的列表之間尋找符合特定標準的匹配。為識別這些匹配,跨行匹配器1720使用列表樣板函數1740。
列表驗證器1722使用跨行匹配器的輸出(最後的列表組)並驗證列表。沒有符合特定驗證標準的任何列表將從列表組移除,且依需要修改任何嵌套的列表。在某些具體實施例中,這些標準包括要求每一列表包括至少兩個項目。
雖然許多特徵係描述為由一模組(如列表重建器1715、列表間距識別器1705等)所執行,但熟此技藝者將理解到本文中所述的功能可分割至多個模組。類似地,描述為由多個不同模組所執行之功能在某些具體實施例中也可由單一模組所執行(例如跨行匹配器1720可能為列表重建器1715的部分)。
V.電子系統
許多上述特徵及應用係實施為軟體程序,其係指定為記錄於電腦可讀儲存媒體(亦稱作電腦可讀媒體)上的一組指令。當這些指令由一或多個計算或處理單元(例如一或多個處理器、處理器核心或其他處理單元)所執行時, 其係造成處理單元執行指令中所指示的動作。電腦可讀媒體的範例包括但不限於CD-ROMs、快閃驅動、隨機存取記憶體(RAM)晶片、硬碟驅動、可抹除可程式化唯讀記憶體(EPROMs)、電子可抹除可程式化唯讀記憶體(EEPROMs)等。電腦可讀媒體並不包括載波及無線傳遞或經由有線連接的電子信號。
在此說明書中,「軟體」一詞係指包括駐存於唯讀記憶體的韌體或儲存於磁性儲存的應用程式,其可讀入記憶體供處理器處理。再者,在某些具體實施例中,多個軟體發明可實施為較大程式的次部分而仍維持不同的軟體發明。在某些具體實施例中,多個軟體發明可實施為不同的程式。最後,共同實施本文所述之軟體發明之各別程式的任何組合係在本發明範疇內。在某些具體實施例中,軟體程式當在一或多個電子系統上安裝以操作時,其係定義執行及完成軟體程式操作之一或多個特定的機器實施。
圖18概念性地描述實施本發明某些具體實施例的電子系統1800。電子系統1800可為一電腦(如桌上型電腦、個人電腦、平板電腦等)、手機、PDA、或任何其他種類的電子裝置。這樣的一電子系統包括各種類型的電腦可讀媒體以及用於各種其他類型的電腦可讀媒體之介面。電子系統1800包括匯流排1805、處理單元1810、圖形處理單元(GPU)1815、系統記憶體1820、網路1825、唯讀記憶體1830、永久儲存裝置1835、輸入裝置1840、及輸出裝置1845。匯流排1805係共同地表示通訊地連接電子 系統1800之多個內部裝置的所有系統、週邊、及晶片組匯流排。舉例來說,匯流排1805通訊地連接處理單元1810與唯讀記憶體1830、GPU 1815、系統記憶體1820、及永久儲存裝置1835。
從這些各種的記憶體單元,處理單元1810擷取要執行的指令以及要處理的資料,以執行本發明的程序。在不同具體實施例中,處理單元可為單一處理器或多核心處理器。某些指令係傳遞且由GPU 1815執行。GPU 1815可卸載各種計算或輔助處理單元1810所提供之影像處理。在某些具體實施例中,此功能性可使用CoreImage的核心渲染語言而提供。
唯讀記憶體(ROM)1830儲存處理單元1810及電子系統的其他模組所需的靜態資料及指令。另一方面,永久儲存裝置1835為一讀寫(read-and-write)記憶體裝置。此裝置為非揮發性記憶體單元,其即使在電子系統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)、或內部網路的網路、或是網路的網路(如網際網路)之一部分。電子系統1800的任何或所有構件可與本發明共同使用。
某些具體實施例包括電子構件(例如微處理器)、儲存電腦程式指令於機器可讀或電腦可讀媒體(或稱作電腦 可讀儲存媒體、機器可讀媒體、或機器可讀儲存媒體)的儲存及記憶體。這類電腦可讀媒體的某些範例包括RAM、ROM、唯讀光碟片(CD-ROM)、可寫入光碟片(CD-R)、可重寫光碟片(CD-RW)、唯讀數位通用碟片(如DVD-ROM、雙層DVD-ROM)、各種可寫入/可重寫DVD(如DVD-RAM、DVD-RW、DVD+RW等)、快閃記憶體(如SD卡、迷你SD卡、微SD卡等)、磁性及/或固態硬碟驅動、唯讀及可寫入藍光碟片、超高密度光碟、任何其他光學或磁性媒體、或軟碟。電腦可讀媒體可儲存可由至少一處理單元執行之電腦程式,且包括指令組以執行各種操作。電腦程式或程式碼的範例包括機器碼(例如由編譯器所產生)以及包括高階編碼的檔案,其係由電腦、電子構件、或微處理器使用一解譯器而執行。
雖然上述討論主要關於執行軟體的微處理器或多核心處理器,但某些具體實施例係由一或多個積體電路所執行,例如特定應用積體電路(ASICs)或場可程式化閘陣列(FPGAs)。在某些具體實施例中,此類積體電路執行儲存在電路本身的指令。此外,某些具體實施例執行儲存於可程式化邏輯裝置(PLDs)、ROM、或RAM裝置中的軟體。
在本說明書及本申請案之任何申請專利範圍中所使用的「電腦」、「伺服器」、「處理器」、及「記憶體」之術語皆指電子或其他技術裝置。這些術語排除人或人的群組。針對本說明書的目的,顯示(display或displaying) 一詞意指顯示於一電子裝置上。在本說明書及本申請案之任何申請專利範圍中所使用的「電腦可讀媒體」及「機器可讀媒體」之術語係完全限制於以可由電腦可讀取之形式儲存資訊之有形、實體的物件。這些術語排除任何無線信號、有線下載信號、及任何其他短暫信號。
雖然本發明已參考需多特定細節而描述,熟此技藝者將理解到本發明可以其他特定形式具體化,而不會偏離本發明的精神。舉例來說,本文中的描述假設文字係由左至右及由上至下而讀取。熟此技藝者將了解到可對由右至左及/或由下至上讀取之文字(例如右至左的語言)使用類似程序。此外,圖式(包括圖2、7、8及14)的號碼係概念性地描述程序。這些程序的特定操作可沒有完全依照所示及所描述的順序而執行。特定操作可沒有以一連續的操作序列執行,且不同的特定操作可於不同具體實施例中執行。此外,程序可使用數個次程序而執行或可實施為較大巨程序的部分。因此,熟此技藝者將了解到本發明並不受限於前文中所描述的細節,而是由後附申請專利範圍所定義。
100‧‧‧行(圖1未顯示)
200‧‧‧程序(圖2未顯示)
300‧‧‧行
305‧‧‧間距
310‧‧‧間距
315‧‧‧間距
320‧‧‧間距
325‧‧‧間距
330‧‧‧間距
335‧‧‧間距
340‧‧‧間距
400‧‧‧行
405‧‧‧間距
900‧‧‧堆疊
905‧‧‧階段
910‧‧‧階段
915‧‧‧階段
920‧‧‧階段
925‧‧‧階段
930‧‧‧階段
935‧‧‧階段
940‧‧‧階段
945‧‧‧階段
950‧‧‧階段
955‧‧‧階段
960‧‧‧列表
965‧‧‧列表
970‧‧‧列表
1000‧‧‧列表項目
1100‧‧‧行(圖11未顯示)
1300‧‧‧一組嵌套列表(圖13未顯示)
1505‧‧‧第一行
1510‧‧‧第二行
1605‧‧‧第一行
1610‧‧‧第二行
1700‧‧‧列表重建模組
1705‧‧‧列表間距識別器
1710‧‧‧列表等級識別器
1715‧‧‧列表重建器
1720‧‧‧跨行匹配器
1722‧‧‧列表驗證器
1725‧‧‧樣板識別器
1730‧‧‧標籤詞彙分析器
1735‧‧‧標籤產生器
1740‧‧‧列表樣板函數
1745‧‧‧文件儲存
1750‧‧‧針對未決列表之堆疊的儲存
1755‧‧‧樣板定義
1800‧‧‧電子系統
1805‧‧‧匯流排
1810‧‧‧處理單元
1815‧‧‧圖形處理單元
1820‧‧‧系統記憶體
1825‧‧‧網路
1830‧‧‧唯讀記憶體
1835‧‧‧永久儲存裝置
1840‧‧‧輸入裝置
1845‧‧‧輸出裝置
本發明的新穎特徵將於後附申請專利範圍中提出。然而,為解釋目的,將於以下圖式中提出本發明的數個具體實施例。
圖1描述包括各種列表之一行的範例; 圖2概念地描述用以重建跨越一或多行文字之列表之某些具體實施例的程序;圖3描述二十三個有序文字線的單一行,其係明顯可見屬於一列表;圖4描述針對一行之識別列表項目起始候選,其剛好也是行的前八線;圖5描述針對圖4之行之某些具體實施例的列表等級計算;圖6描述圖4之行的前兩線之可能的標籤樣板;圖7係概念性的描述某些具體實施例用以識別在文字線的一行內之列表間距的程序;圖8A及圖8B概念性地描述用以在單一行中重建列表之某些具體實施例的程序;圖9概念性地描述涵蓋十一個階段之未決列表的一堆疊;圖10描述一多線列表項目的範例;圖11描述一行,其中列表項目之間的段落係以列表項目分組且無導致列表的封閉;圖12描述具有在嵌套列表標題間之段落內容的此類列表的部分之範例;圖13描述一組嵌套列表的範例;圖14係概念地描述用以重建橫跨多行之列表之某些具體實施例的程序;圖15描述一文件之隨後的兩行; 圖16描述一文件之隨後兩行的範例,其中當行的列表結合時,一列表改變等級而第二列表留在相同等級,但保留單調的要求;圖17概念性地描述某些具體實施例之列表重建模組的軟體架構;以及圖18概念性地描述實施本發明某些具體實施例的電子系統。

Claims (20)

  1. 一種用以分析包含複數個基元元件之一文件的方法,該方法包含:識別在該文件之一行中的複數文字線中的對準間隙;決定該等對準間隙之哪些係指示一列表項目標籤及一列表項目間的間距,用以識別包括該等對準間隙之文字線作為列表項目;基於該等列表項目之對準、間距、及內容而識別針對該等列表項目的階層等級;以及針對該行而定義一階層組織化之列表組,其中具有相同階層等級之列表項目在相同列表中。
  2. 如申請專利範圍第1項所述之方法,其中決定該等對準間隙之哪些係指示一列表項目標籤及一列表項目間的間距包含:識別具有一單一短字元至左以及左對準文字至右的間隙。
  3. 如申請專利範圍第1項所述之方法,其中該行為第一行,且該方法更包含:分別地識別在該第一行中之一第一列表以及在一第二行中之一第二列表;以及決定該第一列表及該第二列表為一單一列表之部分。
  4. 如申請專利範圍第3項所述之方法,更包含連接該第一列表及該第二列表。
  5. 如申請專利範圍第1項所述之方法,其中該文件 為一可攜式文件格式(PDF)文件,其中該方法更包含:針對該文件定義一序列化格式;以及儲存該階層組織化之列表組為一結構於該序列化文件中。
  6. 一種儲存一程式之機器可讀媒體,當該程式由至少一處理單元執行時係分析包含複數個基元元件的一文件,該程式包含指令組用以:識別在該文件之一行中的複數文字線中的對準間隙;決定該等對準間隙之哪些係指示一列表項目標籤及一列表項目間的間距,用以識別包括該等對準間隙之文字線作為列表項目;基於該等列表項目之對準、間距、及內容而識別針對該等列表項目的階層等級;以及針對該行而定義一階層組織化之列表組,其中具有相同階層等級之列表項目在相同列表中。
  7. 如申請專利範圍第6項所述之機器可讀媒體,其中該基元元件包含複數個字符,其中用以識別對準間隙之該組指令包含指令組用以:識別大於在一字元中之字符間之間隙以及字元間之間隙之在一文字線中之連續字符之間的間隙;以及識別在該行之連續文字線中對準之間隙組。
  8. 如申請專利範圍第6項所述之機器可讀媒體,其中用以決定該等對準間隙之哪些係指示一列表項目標籤及一列表項目間的間距之該組指令包含一指令組用以識別具 有一單一短字元至左以及左對準文字至右的間隙。
  9. 如申請專利範圍第6項所述之機器可讀媒體,其中用以識別針對該等列表項目的階層等級之該組指令包含指令組用以:針對具有指示在一列表項目標籤及一列表項目間之間距之一間隙的每一文字線,決定至該列表項目標籤左方的一些間隙;以及基於針對該文字線之該列表項目標籤左方之該些間隙而指派每一該文字線至一階層等級。
  10. 如申請專利範圍第6項所述之機器可讀媒體,其中用以定義一階層組織化之列表組之該組指令包含一指令組用以產生一未決列表堆疊,其儲存有關可加入額外列表項目之列表的資訊。
  11. 如申請專利範圍第10項所述之機器可讀媒體,其中用以定義一階層組織化之列表組之該組指令包含指令組供迭代地:從該行中選擇一文字線;以及指派該所選文字線至在該列表組中的一列表。
  12. 如申請專利範圍第11項所述之機器可讀媒體,其中用以指派該所選文字線至一列表之該指令組包含指令組用以:基於在該文字線中之一列表項目標籤而識別該文字線之一列表類型;決定該所識別之列表類型的一列表在該未決列表堆疊 中是否為未決;當該所識別列表類型之一列表為未決時,指派該文字線作為在該未決列表中的一列表項目;以及當無該所識別列表類型之列表為未決時,將具有該文字線之一新列表作為一列表項目加入至該未決列表堆疊。
  13. 如申請專利範圍第12項所述之機器可讀媒體,其中該列表類型指示相關於其他列表之一內縮等級以及用於該列表項目標籤之一字母。
  14. 如申請專利範圍第13項所述之機器可讀媒體,其中用以決定該所識別之列表類型的一列表是否為未決之該指令組包含指令組用以:決定在該堆疊中之任何未決列表是否具有相同之該內縮等級及相同之該字母;以及根據該字母而決定該列表項目標籤是否匹配在該未決列表中之下一列表項目。
  15. 如申請專利範圍第12項所述之機器可讀媒體,其中用以加入一新列表至該未決列表堆疊之該指令組包含一指令組,用以從該未決列表堆疊中移除等級比在該階層組織化之列表組中之該新列表高之任何列表。
  16. 如申請專利範圍第12項所述之機器可讀媒體,其中用以指派該文字線作為在該未決列表中的一列表項目之該指令組包含一指令組,用以從該未決列表堆疊中移除等級比在該階層組織化之列表組中之該未決列表高之任何列表。
  17. 一種用以分析包含複數個基元元件之一文件的方法,該方法包含:識別在該文件中之在一第一行中之第一組階層組織化列表以及在該第一行之後之一第二行中之第二組階層組織化列表,該第一及第二組階層組織化列表各包含由一列表標籤所識別之一或多個列表項目;基於在該第一列表中的最後列表項目以及在該第二列表中的第一列表項目之該等列表標籤之分析而決定在該第一組階層組織化列表中之一第一列表係持續作為在該第二組階層組織化列表中之一第二列表;儲存該第一列表及該第二列表為相關於該文件之一單一列表結構。
  18. 如申請專利範圍第17項所述之方法,其中決定在該第一組中之一第一列表係持續作為在該第二組中之該第二列表係包含:決定該第一列表具有一開放結束狀態且該第二列表具有一開放開始狀態;決定用於在該第一列表中之列表標籤的一字母與用於在該第二列表中之列表標籤的字母相同;以及根據該字母而決定在該第二列表中之該第一列表項目之一標頭係跟隨在該第一列表中之該最後列表項目之一標頭。
  19. 如申請專利範圍第17項所述之方法,更包含決定在該第一組階層組織化列表中的一第三列表係持續作為 在該第二組階層組織化列表中的一第四列表,其中該第一列表之等級以及該第三列表之等級之間的關係與該第二列表之等級以及該第四列表之等級之間的關係相同。
  20. 如申請專利範圍第17項所述之方法,其中在該文件之閱讀順序中該第二行係緊接在該第一行之後。
TW101101399A 2011-01-18 2012-01-13 用於文件中之列表重建的方法及電腦程式產品 TWI472933B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
TW201250494A TW201250494A (en) 2012-12-16
TWI472933B true TWI472933B (zh) 2015-02-11

Family

ID=45655141

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101101399A TWI472933B (zh) 2011-01-18 2012-01-13 用於文件中之列表重建的方法及電腦程式產品

Country Status (7)

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

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
AU2012281166B2 (en) 2011-07-11 2017-08-24 Paper Software LLC System and method for processing document
CA2840228A1 (en) 2011-07-11 2013-01-17 Paper Software LLC System and method for searching a 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

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5669007A (en) * 1994-06-16 1997-09-16 International Business Machines Corporation Method and system for analyzing the logical structure of a document
US7142728B2 (en) * 2002-05-17 2006-11-28 Science Applications International Corporation Method and system for extracting information from a document
TW200805092A (en) * 2005-12-08 2008-01-16 Ibm Document-based information and uniform resource locator (URL) management
TW200917057A (en) * 2007-10-12 2009-04-16 Microsoft Corp Automatically instrumenting a set of web documents
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
CN101361063B (zh) * 2006-04-12 2010-09-29 龙搜(北京)科技有限公司 支持基于规则的文档内容挖掘的系统与方法
TWI334551B (en) * 2002-11-27 2010-12-11 Microsoft Corp Method and computer-readable medium for improting and exporting hierarchically structured data

Family Cites Families (61)

* 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.
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 文書処理装置及び文書処理方法
US20040006742A1 (en) 2002-05-20 2004-01-08 Slocombe David N. Document structure identifier
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
DE602005002473T2 (de) 2005-07-01 2008-01-10 Pdflib Gmbh Verfahren zum Erkennen von semantischen Einheiten in einem elektronischen Dokument
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
US7623710B2 (en) 2006-02-14 2009-11-24 Microsoft Corporation Document content and structure conversion
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
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
US8438472B2 (en) 2009-01-02 2013-05-07 Apple Inc. Efficient data structures for parsing and analyzing a document
US8380753B2 (en) 2011-01-18 2013-02-19 Apple Inc. Reconstruction of lists in a document

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5669007A (en) * 1994-06-16 1997-09-16 International Business Machines Corporation Method and system for analyzing the logical structure of a document
US7142728B2 (en) * 2002-05-17 2006-11-28 Science Applications International Corporation Method and system for extracting information from a document
TWI334551B (en) * 2002-11-27 2010-12-11 Microsoft Corp Method and computer-readable medium for improting and exporting hierarchically structured data
TW200805092A (en) * 2005-12-08 2008-01-16 Ibm Document-based information and uniform resource locator (URL) management
CN101361063B (zh) * 2006-04-12 2010-09-29 龙搜(北京)科技有限公司 支持基于规则的文档内容挖掘的系统与方法
TW200917057A (en) * 2007-10-12 2009-04-16 Microsoft Corp Automatically instrumenting a set of web documents
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

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI472933B (zh) 用於文件中之列表重建的方法及電腦程式產品
JP6141921B2 (ja) 文書再構成の方法及びシステム
CN103329122B (zh) 使用多个表示的文档存储
JP5789525B2 (ja) 文書コンテンツの順序付け
US20080270119A1 (en) Generating sentence variations for automatic summarization
AU2012207560A1 (en) Storage of a document using multiple representations
CN110781289B (zh) 一种保留非结构化文本语义的文本可视化方法