專利名稱:抽取關系型表格的方法和裝置的制作方法
技術領域:
本發明總體地涉及信息處理和信息抽取領域,更具體地涉及從非結構化文檔中抽取關系型表格的方法和裝置。
背景技術:
目前,存在大量的電子文檔,例如,互聯網上的各種描述產品的文章等。對各種文檔進行信息處理、分析、統計等,正成為業界研究和開發的熱點。文檔可以分為結構化文檔和非結構化的文檔。結構化文檔一般是按照某種預定義的文檔對象模型構造的文檔,其已經給文檔定義了框架,使得各部分的作用一目了然,例如通過一些數據庫定義語言或面向對象的編程語言等構建的文檔可以稱為結構化文檔。在本文中,將除了結構化文檔外的各種文檔統稱為非結構化文檔。非結構化文檔可以分為半結構化文檔和無結構文檔。網頁等諸如HTML或XML格式的文檔常被人稱為半結構化文檔或半結構化數據,從其中的一些標簽語言即可以知道所描述對象的屬性和值。無結構文檔類似于自然語言形式,例如我們常見的后綴為txt的純文本文檔即為一種典型的無結構文檔。此外,word格式和pdf格式的文檔中也不存在便于理解文章所描述的主體和具體屬性的信息,因此也可視為無結構文檔。在非結構化文檔存在海量表格,其中的關系型表格通常含有豐富的有用信息。所謂關系型表格是就其對現實世界中的事物間關系的模型而命名,一般是二維表格,其中含有多個對象,每個對象具有諸多屬性和對應的屬性值。圖1示出了 Web網頁中的一個關系型表格的例子。互聯網中有很多含關系型數據的網頁,比如說產品參數對比表格網頁。以網頁為例,自動從網頁中抽取關系型表格信息可以用來更好地構建此類網頁的索引,有助于搜索。所抽取的海量關系型表格可以用于科研、工程、統計、策略制定、市場調研等,用以提供量化數據。已經存在一些從非結構化文檔中檢測表格的技術。在文獻 I, A Machine Learning B ased Approach for Table Detectionon The Web, Proceedings of the Eleventh International World Wide WebConference (WWW2002)中,描述了一種基于監督的機器學習方法,在訓練數據之后,來把每個給定的表格分類成真實的表格或者非真實的表格。在文獻2,Uncovering the Relational Web, Proceedings of the IlthInternational Workshop on Web and Databases (WebDB 2008)中,描述了從大的網頁庫中過濾關系表的簡單的方法,其假設每個數據元組是表格中的行,還試圖恢復列的標簽信息和類型信息。在文獻3,US7590647(B2)-Method for extracting, interpreting andstandardizing tabular data from unstructured documents 中,描述了一個系統,方法,計算機程序,能夠自動地從非結構化文檔中識別,解析,和解釋表格數據。該技術對于表格解釋,使用標準模板,包含一個標準化數據域的集合;其次,該技術假設每個數據元組是表格中的行。
發明內容
鑒于現有技術中的上述問題,提出了本發明。根據本發明的一個方面,提供了一種從非結構化文檔中抽取關系型表格的方法,可以包括:檢測非結構化文檔中的表格,以獲得表格;以及確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。所述非結構化文檔可以是網頁,以及可以通過解析網頁并選擇被用來顯示表格數據的DOM節點來得到表格。抽取關系型表格的方法還可以包括在確定表格布局之前,規范化所檢測的表格的內容。規范化所檢測的表格的內容可以包括:對于表格的每個表格單元格計算一段文本,此文本可以為空。對于表格的每個表格單元格計算一段文本可以包括:對于每個無文本節點但含圖像節點的單元格,基于圖像節點的特征確定一段文本。該抽取關系型表格的方法還可以包括:在確定表格布局之前,過濾表格中的內容,以去除信息含量低的數據。過濾表格中的內容可以包括以下操作中的至少一種:計算表示行的信息含量的行信息量分數,并去除行信息量分數低的行;計算表示列的信息含量的列信息量分數,并去除列信息量分數低的列;計算表示整個表格的信息含量的表格信息量分數,并且如果整個表格的信息量分數低于預定閾值,則丟棄該表格。確定表格布局可以包括:確定表征表格中候選對象標識符部分、候選屬性名部分和候選屬性值部分的布局的各種候選表格布局;計算各種候選表格布局的一致性分數;基于所計算的各種候選表格布局的一致性分數,確定表格布局,從而確定了表格中的對象標識符部分、屬性名部分和屬性值部分。可以至少基于下列要素中的一個或幾個計算各種候選表格布局的一致性分數:1)對象標識符是否唯一 ;2)屬性名是否唯一 ;3)各行之間的相似度分數和各列之間的相似度分數;4)每行的各個單元格間數據的類型一致性,以及每列的各個單元格間數據的類型一致性。根據本發明實施例的一種從非結構化文檔抽取關系型表格的裝置,可以包括:表格檢測部分,檢測非結構化文檔中的表格,以獲得表格;以及表格布局確定部分,確定指明表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。根據本發明實施例的抽取關系型表格的方法和裝置,并不預先假定每個數據元組是表格中的行,而是可以自動確定表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。此外,根據本發明實施例的抽取關系型表格的方法和裝置,通過過濾表格數據,從而去除噪聲信息,提高抽取表格數據的速率和準確性。
此外,根據本發明實施例的抽取關系型表格的方法和裝置,通過規范化表格數據,可以從表格的圖像中計算文本,從而抽取圖像中的有用信息。根據本發明實施例的一種從非結構化文檔抽取關系型表格的方法,可以包括:檢測非結構化文檔中的表格,以獲得表格;規范化表格數據;過濾表格數據;以及確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。根據本發明實施例的一種從非結構化文檔抽取關系型表格的方法,該確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局可以包括:計算各行是對象標識符區域的可能性分數以及為屬性名區域的可能性分數;選擇可能性分數最高的行,并相應地確定該行是對象標識符區域或屬性名區域;基于行中對象標識符區域或屬性名區域的確定,計算各列為屬性名區域或對象標識符區域的可能性分數;選擇可能性分數最高的列作為屬性名區域或對象標識符區域;以及輸出對象標識符區域、屬性名區域、屬性值區域信息。根據該從非結構化文檔抽取關系型表格的方法,可以一次性確定表格方向和對象標識符區域或屬性名區域,可以迅速、準確地確定表格布局。
圖1示出了 Web網頁中的一個關系型表格的例子;圖2示出根據本發明一個實施例的抽取關系型表格的方法的整體流程圖;圖3示出了一個示例性表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局;圖4不出了一個表格的各種候選布局的不例。圖5示出了在Web環境下實現圖2中步驟S2100的示例性表格獲取方法的流程圖;圖6示出了從DOM樹獲得表格的過程的示意圖;圖7示出了表格數據規范化的過程的例子;圖8示出了規范化含文本節點的表格單元格的例子;圖9示出了從圖像的屬性” src”(其表示圖像的來源)來確定圖像節點的含義的例子;圖10示出了結合圖像節點中的“src”和“alt”特征來從圖像節點計算文本的例子;圖11示出了進行表格數據過濾的示例性方法的流程圖;圖12不意性不出了表格中低信息含量的行和列的例子;圖13示出了根據本發明一個實施例的確定表格布局的示例性方法的流程圖;圖14示出了行是對象標識符區域的表格例子;圖15示出了列是對象標識符區域的表格例子;圖16示出了列是對象標識符區域情況下的行間相似度和列間相似度的示意;圖17示出根據本發明另一實施例的確定表格布局的示例性方法的流程圖;圖18示出分局本發明實施例的從非結構化文檔抽取關系型表格的裝置的總體功能性框圖19示出了可以實施本發明實施例的網絡系統環境示意圖;以及圖20是示出按照本發明實施例的從非結構化文檔抽取關系型表格的系統的總體硬件框圖。
具體實施例方式為了使本領域技術人員更好地理解本發明,下面結合附圖和具體實施方式
對本發明作進一步詳細說明。將按如下順序進行描述:1、關系型表格抽取的整體過程2、從網頁提取表格的示例性方法3、表格數據規范化4、表格數據過濾5、確定表格布局的詳細操作5.1確定表格布局的一個不例性方法5.2確定表格布局的另一不例性方法6、系統硬件配置6.1從非結構化文檔抽取關系型表格的功能性裝置6.2網絡系統環境6.3從非結構化文檔抽取關系型表格的硬件系統7、總結〈1、關系型表格抽取的整體過程〉圖2是根據本發明一個實施例的抽取關系型表格的方法的整體流程圖。在步驟S2100中,檢測非結構化文檔中的表格,以獲得表格。具體地,在非結構化文檔是網頁的情況下,可以通過解析網頁生成文檔對象模型DOM樹、并選擇被用來顯示表格數據的DOM節點來得到表格。在此過程中,可能涉及到“假表格”的識別和過濾。在HTML中,〈TABLE〉標簽經常用來呈現視覺信息,例如商業站點廣告、導航欄或者其他站點的鏈接等等,不是為了顯示關系型數據,而是例如為了讓頁面美觀、易讀。另外,為了便于后續處理,可以進行數據規范化處理,例如對圖像節點進行處理,將其轉換為文本等。后面,將參考圖5對從網頁中檢測表格的示例性方法進行詳細描述。在例如非結構化文檔是pdf文檔的情況下,在PDF文檔的格式說明書中,并沒有表格的概念和相應的部件,表格是由線段和例如文字組成。可以解析并建立PDF文檔對應的樹狀結構,進而解析可移植電子文檔的內容以獲取和表格相關的命令、線條提取單元,用于通過處理這些命令來提取線條和線條位置,用于分析線條的位置關系來提取表格和表格中的內容。另外,前文介紹的文獻3中的檢測表格的方法以及任何可以獲得非結構化文檔中的表格的方法均可以用于本發明。在步驟S2200中,確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。對于二維關系型表格,一般地,一個完整的表格由三塊區域組成:對象標識符部分,屬性名部分和屬性值部分。這是對真實世界中事物間關系組織的一種模擬,在真實世界中,一個對象也有一個通常意義上的獨特的標識符(名字),我們將之稱為對象標識符;屬性名表示這個對象的一些特征和屬性,也就是說,它們是這個表的構架;剩下的部分,值,是每個屬性的具體值內容。在一個二維關系型表格中,有多行或者多列,而且對象標識符行(或列)和屬性名列(或行)之間的關系是正交的。我們將這種是對象標識符或屬性名的行(或列)稱為標識符行(或列)。圖3示出了一個示例性表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局或者說表格結構。在該表格中,最左列是屬性名區域,第二行是對象標識符區域,這兩者之間的右下區域是屬性值區域。而且,在圖3所示的表格例子中,除了作為屬性名區域的列外的其它每列構成一條記錄或所謂的數據元組。在本文中,將這種每列構成一條記錄或所謂的數據元組的表格稱為列方向表格或者縱向表格,而將每行構成一條記錄或所謂的數據元組的表格稱為行方向表格或者橫向表格。在現有技術中,一般默認為表格是橫向表格。但是,實際上,如圖3所不,表格可以是列向表格。也就是說,對象標識符區域可以為行,也可以為列。當然,對應地,也就是說,屬性名區域可以為列,也可以為行。下文中,將一個表格中對象標識符部分,屬性名部分和屬性值部分的定位稱為表格布局。而對象標識符部分,屬性名部分和屬性值部分的定位的各種可能組合稱為表格候選布局,圖4不出了一個表格的各種候選布局的不例。關于確定表格布局,可以存在各種實現方法。一種實現方法是,首先,確定表格的方向,即是橫向表格還是列向表格,例如這可以根據行間相似度和列間相似度來加以判斷;然后,基于所確定的表格方向,確定對象標識符和屬性名區域,例如,如果確定表格是橫向表格,則相當于已經確定了對象標識符區域為列,屬性名區域為行,因此接下來需要做的是,確定哪一列是對象標識符區域,哪一行是屬性名區域,而這可能通過計算各列作為對象標識符區域的可能性分數,和各行作為屬性名區域的可能性分數來進行判定。替代地,另一種實現方法是,首先從各行中確定可能的標識符行作為候選標識符行,從各列中確定可能的標識符列作為候選標識符列;然后,基于候選標識符行和候選標識符列的各種組合得到候選表格布局,計算候選表格布局的似然性作為可能性分數,基于各個候選表格布局的可能性分數確定表格布局并確定表格方向,從而確定標識符行和標識符列哪個為對象標識符部分,哪個為屬性名部分。下面將參考圖13描述確定表格布局的示例性方法。替代地,再一種實現方法是,直接計算各行是對象標識符區域的可能性分數以及是屬性名區域的可能性分數,選擇最高可能性分數,根據該最高可能性分數是對象標識符區域的可能性分數還是屬性名區域的可能性分數,確定具有該最高可能性分數最高的行是對象標識符區域還是屬性名區域;進而根據對象標識符區域和屬性名區域的正交性,來計算各列為屬性名區域或對象標識符區域的可能性分數,基于該可能性分數來確定屬性名區域或對象標識符區域。在確定了對象標識符部分、屬性名部分之后,表格中的其余部分就是屬性值部分。
〈2從網頁提取表格的示例性方法〉下面參考圖5詳細描述在Web環境下實現圖2中步驟S2100的示例性表格獲取方法。在非結構化文檔是網頁的情況下,可以通過解析網頁并選擇被用來顯示表格數據的DOM節點來得到表格。具體地,在步驟S2110中,解析網頁,構造DOM樹。D0M,即文檔對象模型(Document Object Model),是一個來自W3C的成熟標準。DOM是一種在瀏覽器內編程的模型,同時也是XML的主要接口,DOM與語言和平臺無關,它是基于樹的API,它把所有的數據以父子的節點層次結構裝入內存構成一棵樹,這些節點的類型可以是元素、文本、屬性、注釋或其它。它允許開發者讀取、創建、刪除和編輯XML數據。DOM的一切都是節點,實質上是一些節點的集合。DOM樹結構和二叉樹很相似,元素的子節點集合就是該元素的分支,但是屬性節點不是元素的子節點,它只是描述該元素節點的一些性質而已,屬于元素節點結構內部的一部分。這里,例如可以利用HTML解析器解析網頁,并生成DOM樹。不過,還可以借助于第三方工具,比如CyberNeko HTML解析器來生成DOM樹。本領域技術人員熟知DOM樹的構造過程,這里不再贅述。另一個方案是基于網頁生成含計算后式樣信息的DOM樹。計算后式樣,是指原始網頁不能簡單的依賴HTML就完成所有的解析工作,還可以結合css、javascrpt等其它信息,計算并渲染后得到更精確的網頁。首先,從互聯網上下載網頁,網頁包含:HTML文件,附帶的CSS文件,Javascript文件,圖像文件等等。給定這些網頁文件,網絡瀏覽器構造DOM樹。工業界有一些主流的網絡瀏覽器,比如Mozilla Firefox, Windows InternetExplorer, Google Chrome或者Apple Safari。網絡瀏覽器引擎通過分析語法結構來解析HTML代碼,構造含計算后式樣信息的DOM樹,執行一些動態內容(比如Javascript代碼),然后在瀏覽器窗口里渲染網頁。然后用戶可以在計算機屏幕上瀏覽網頁。同樣地,所構造的DOM樹和計算后的式樣信息可以通過程序接口被其他程序得到。例如Mozilla提供的XULRunner 是一個接 口。在構造完DOM樹后,在步驟S2120中,獲取具有〈TABLE〉標簽的DOM節點,得到HTML表格。具體地,選擇所有HTML標簽名為〈TABLE〉的DOM節點。對于每個選擇的DOM節點,解析以此DOM節點為根的DOM子樹,并且構造HTML表格。首先,我們可以根據HTML語法(如,HTML標簽“tr”與“td”之間的關系)抽取數行記錄,它們屬于一表格,將該表格稱為HTML表格,如圖6(b)所示。在步驟S2130中,將HTML表格轉換為單元格矩陣,由此得到表格。具體地,可以根據HTML語法中“span”屬性,展開表格單元格,從而HTML表格被轉換成一個矩陣,每個矩陣的兀素代表一個表格單兀格。圖6示出了從DOM樹獲得表格的過程的示意圖。其中,圖6(a)表示一顆DOM樹,其根節點的標簽名為〈TABLE〉。圖6(b)示意性示出了從圖6(a)的DOM樹抽取記錄后得到的HTML表格,圖6 (c)示意性地示出了單元格矩陣;圖6(d)示意性地示出了將各個單元格填充值后的表格。對如此獲取的表格,還可以根據需要進行一些后續處理,例如去噪,去除冗余行等,數據類型轉換等。還可以進行表格數據規范化和表格數據過濾等。下面將參考圖7-10對表格數據規范化進行詳細描述,以及參考圖11-12對表格數據過濾進行詳細描述。<3表格數據規范化>如此獲取的表格可能含有各種格式的信息,為此,可選地,為了便于后續的諸如行、列或表格的信息量分數的計算、行內相似度、行間相似度等的計算,可以對表格數據進行規范化。圖7示出了表格數據規范化的過程的例子。利用該示例性方法,可以將所有單元格中的內容規范化為文本。對于原始表格中的每個表格單元格,計算一段文本。這段文本可能是空的。在本文中,圖像表格單元格的意思是無文本節點但有一個圖像節點的表格單元格。基于圖像節點的特征,每個圖像表格單元格會被轉化成一段文本。如圖7所示,在步驟S3100中,從表格中選擇一個表格單元格,用于后續規范化處理。在步驟S3200中,規范化含文本節點的表格單元格的文本。例如,在web文檔的情況下,可以如下規范化含文本節點的一個表格單元格的文本:a)得到該表格單元格所代表的DOM節點下的所有文本節點;b)連接這些文本,此步驟即合并在一個單元中的數段文本,一個單元可以根據特定的HTML標簽(如“span”,“br”等)來判斷,合并的順序可以是按文本的自然順序。c)如果此文本太長,截斷此文本。這是因為目標表格單元的文本值,一般不會太長,通過截斷太長的文本,使之更規范一些,可以通過文本長度和預定長度閾值的比較來判斷文本是否過長。預定長度閾值可以根據經驗值設置或者通過學習算法學習得到。此外,可以記錄原始長度以供后續計算信息含量之用。圖8示出了規范化含文本節點的表格單元格的例子。可見,該單元格在瀏覽器上渲染后呈現為文本“35mm Full-frame/Nikon FX”,其對應的html源代碼為
權利要求
1.一種從非結構化文檔中抽取關系型表格的方法,包括: 檢測非結構化文檔中的表格,以獲得表格;以及 確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。
2.根據權利要求1的抽取關系型表格的方法,其中所述非結構化文檔是網頁,以及通過解析網頁并選擇被用來顯示表格數據的DOM節點來得到表格。
3.根據權利要求1或2的抽取關系型表格的方法,還包括: 在確定表格布局之前,規范化所檢測的表格的內容。
4.根據權利要求3的抽取關系型表格的方法,其中規范化所檢測的表格的內容包括: 對于表格的每個表格單元格計算一段文本,此文本可以為空。
5.根據權利要求4的抽取關系型表格的方法,所述對于表格的每個表格單兀格計算一段文本包括: 對于每個無文本節點但含圖像節點的單元格,基于圖像節點的特征確定一段文本。
6.根據權利要求1或2的抽取關系型表格的方法,還包括: 在確定表格布局之前,過濾表格中的內容,以去除信息含量低的數據。
7.根據權利要求6的抽取關系型表格的方法,所述過濾表格中的內容包括以下操作中的至少一種: 計算表示行的信息含量的行信息量分數,并去除行信息量分數低的行; 計算表示列的信息含量的列信息量分數,并去除列信息量分數低的列; 計算表示整個表格的信息含量的表格信息量分數,并且如果整個表格的信息量分數低于預定閾值,則丟棄該表格。
8.根據權利要求1或2的抽取關系型表格的方法,所述確定表格布局包括: 確定表征表格中候選對象標識符部分、候選屬性名部分和候選屬性值部分的布局的各種候選表格布局; 計算各種候選表格布局的一致性分數; 基于所計算的各種候選表格布局的一致性分數,確定表格布局,從而確定了表格中的對象標識符部分、屬性名部分和屬性值部分。
9.根據權利要求8的抽取關系型表格的方法,至少基于下列要素中的一個或幾個計算各種候選表格布局的一致性分數: 1)對象標識符是否唯一; 2)屬性名是否唯一; 3)各行之間的相似度分數和各列之間的相似度分數; 4)每行的各個單元格間數據的類型一致性,以及每列的各個單元格間數據的類型一致性。
10.一種從非結構化文檔抽取關系型表格的裝置,包括: 表格檢測部分,檢測非結構化文檔中的表格,以獲得表格;以及 表格布局確定部分,確定指明表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。
全文摘要
提供了一種從非結構化文檔抽取關系型表格的方法和裝置。該方法包括檢測非結構化文檔中的表格,以獲得表格;以及確定指示表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。根據本發明實施例的抽取關系型表格的方法和裝置,并不預先假定每個數據元組是表格中的行,而是可以自動確定表格中的對象標識符部分、屬性名部分和屬性值部分的表格布局。
文檔編號G06F17/30GK103198069SQ201210003480
公開日2013年7月10日 申請日期2012年1月6日 優先權日2012年1月6日
發明者孫軍, 謝宣松, 姜珊珊, 鄭繼川 申請人:株式會社理光