丁振凡
(華東交通大學信息工程學院,江西 南昌 330013)
隨著Internet的迅速發(fā)展與普及,如何從海量的網(wǎng)絡信息資源中及時、準確地找到所需的信息成為當今的一個研究熱點[1].為滿足查全和查準的要求,出現(xiàn)了基于語義的內(nèi)容檢索,而文檔語義信息的提取是其核心研究內(nèi)容之一[2].在各類信息資源網(wǎng)站中均含有類型各異的文檔資源,如:HTML文檔、PDF文檔、Word文檔、PPT文檔等.隨著網(wǎng)站信息資源的不斷豐富,對站內(nèi)信息資源進行資源搜索也就很有必要.Lucene是目前最為流行的開源全文檢索工具包.Apache Tika是一個開源的文檔語義提取工具包,利用Tika可獲取文檔的元數(shù)據(jù)并實現(xiàn)文檔內(nèi)容的文本分析.將Tika分析的元信息和內(nèi)容分析結(jié)果加入索引,然后用Lucene在建立好的索引中實現(xiàn)基于元信息的全文檢索.如圖1所示.
圖1 Lucene和Tika結(jié)合實現(xiàn)基于元信息的全文搜索流程
各種類型的資源文件的語義信息的提取是一件復雜的工作[3].Tika作為一個優(yōu)秀的元數(shù)據(jù)分析和內(nèi)容分析工具,支持眾多格式的文檔(例如HTML、PDF、Doc等),在Tika分析的基礎上進行再加工,可簡化基于元信息的搜索服務的建立.Tika能自動甄別文件類型,調(diào)用相應的解析器進行分析.在分析中能識別文檔的字符編碼、語言及各類屬性,還能提取文檔的結(jié)構(gòu)化內(nèi)容.如圖2所示.
圖2 Tika對文檔分析的基本過程
Tika能自動甄別文檔類型,并根據(jù)文件類型調(diào)用相應的解析器進行分析.Tika包含不針對任何特定文檔格式的通用解析器,圖 3 為 Tika解析器的設計結(jié)構(gòu).org.apache.tika.parser.Parser接口是Tika的關鍵組件,它隱藏了不同文件格式和解析庫的復雜性,為應用程序從各種不同的文檔提取結(jié)構(gòu)化的文本內(nèi)容以及元數(shù)據(jù)提供了一個簡單且功能強大的機制.
圖3 Tika分析器的繼承層次
其中,AutoDetectParser類將所有的 Tika功能包裝進一個能處理任何文檔類型的解析器.這個解析器可自動決定文檔的類型,然后會調(diào)用相應的解析器對文檔進行解析.用戶也可以使用自己的解析器來擴展Tika.
Tika的parse方法接受要被解析的文檔,并將分析結(jié)果寫入元數(shù)據(jù)集合中.以下為parse方法的最簡單形態(tài):
將元數(shù)據(jù)加入索引實際是完成資源語義的注冊,在全文搜索中主要是依據(jù)檢索關鍵詞對文件內(nèi)容進行查詢匹配.而其他元數(shù)據(jù)可用于綜合搜索處理中(例如:作者、標題等),并可為內(nèi)容搜索提供關聯(lián)的信息服務(例如:文檔的標題、文件名等).
Apache Tika是一個工具箱,用來通過現(xiàn)有的解析器庫檢測以及從各種文檔提取元數(shù)據(jù)和結(jié)構(gòu)化的文本內(nèi)容.parse方法的最后一個參數(shù)用來將文檔元數(shù)據(jù)傳遞進/出解析器.文檔元數(shù)據(jù)被表述為一個元數(shù)據(jù)對象.
圖4給出了Tika中Metadata的繼承層次.可以看出元消息來自多方面的定義.Dublin Core(都柏林核心)元數(shù)據(jù)是應用廣泛的信息資源描述格式.DC元數(shù)據(jù)包含15個核心元素[4]:Title(題名)、Creator(創(chuàng)建者)、Subject(主題)、Description(資源描述)、Publisher(出版者)、Contributor(其他責任者)、Date(制作日期)、Type(類型)、Format(數(shù)據(jù)格式)、I-dentifier(資源標識符)、Source(來源)、Language(語種)、Relation(關聯(lián))、Coverage(覆蓋范圍)、Rights(權(quán)限).
圖4 Tika Metadata的繼承關系
利用tika對象的parse方法可從輸入流中分析出元數(shù)據(jù)存入Metadata對象中.分析提取一篇文檔的元數(shù)據(jù)的代碼如下:
接下來,利用met的getValues(“title”)方法可獲取文檔的title屬性的值.
利用tika對象的parseToString方法可分析提取文件的文本內(nèi)容.可將分析得到的文本內(nèi)容并作為content域加入索引的document對象中,進而實現(xiàn)全文檢索.例如:
在微軟的工具Word、PPT等工具中,均提供有屬性設置對話框,可以設置一個文檔的屬性.這些信息是構(gòu)成文檔語義的核心.通常情況下,用戶并不有意設置文檔的這些屬性.工具將自動設置標題、作者、單位等屬性,而標題是根據(jù)PPT第1頁首次保存含有的標題內(nèi)容確定.
圖5為Tika的圖形界面應用中對一個Word文檔的元信息的分析顯示結(jié)果,顯然,標題欄的語義與實際內(nèi)容不一定符合;這是因為該文檔是原來某文檔的修改結(jié)果.很多文檔是按工具默認的規(guī)則設置的標題;Word在文件保存時自動將第1行作為文檔的Title,以后即便第1行進行了修改再次保存時title屬性仍不變.
圖5 Tika分析結(jié)果的元數(shù)據(jù)
類似地,Tika分析網(wǎng)頁的元信息時,title元信息是從網(wǎng)頁的title標記獲取,制作網(wǎng)頁時,F(xiàn)rontPage會自動設置“新建網(wǎng)頁1”等標題,顯然這不能反映網(wǎng)頁的應有標題.
在全文搜索應用的查詢結(jié)果顯示時,要將滿足查詢的所有文檔的標題和摘要信息顯示在網(wǎng)頁中,并提供文件訪問超鏈.前面建索引時,標題是用Tika獲取的元信息構(gòu)建.Tika獲取的標題是來自用戶文檔的Title屬性,文檔的Title屬性為空或者文檔編輯工具給文檔默認起名的標題(網(wǎng)頁的title標簽為“新建網(wǎng)頁1”)等不適合作為標題,可通過分析標題中是否含有“特征串”進行判斷.
為了讓標題能準確反映文檔內(nèi)容,需要對標題進行改進.確定文檔標題的一個簡單處理辦法是先考慮一些候選對象,然后,對這些候選對象進行評估,確定最優(yōu)者.評估最優(yōu)者要兼顧文檔作者的意圖和標題中含有文檔的高頻詞的數(shù)量.
根據(jù)文檔標題通常在文檔的開始、文件名、文檔的標題屬性等處出現(xiàn)的特點,可以初篩出一些候選標題:
(1)非特殊情形的Tika的Title元數(shù)據(jù).
(2)文件名.特別地,文件名長度小于8不能作為標題.
(3)從文檔中提取到的各條候選標題.
從文檔選擇標題,可以掃描文檔的所有行,滿足以下條件者可作為候選標題.
①標題長度不少于8.
②考慮到本文是針對中文文檔的標題提取,因此,如果候選標題中不包含漢字字符,則不能作為標題.
③考慮到從文檔中提取的字符串有各類標號,要刪除候選標題中這些特殊的前綴和后綴.要去除的字符有:數(shù)字字符、大寫數(shù)字字符以及各類標點符號.
(1)設置候選標題的初始特征值
給每個候選標題設置一個初始特征值,初始特征值設置時考慮候選標題的重要性,如Tika獲取的標題給予較重特征值(為N),文件名的特征值也較重(為0.9*N).其他標題特征值根據(jù)其在文檔中的排列順序依次降低,也就是文檔前面的內(nèi)容更可能作為標題.設候選標題個數(shù)為N,第i個候選標題對應的特征值為compare[i],則其他候選標題的特征值初始計算代碼如下:
(2)對文檔中的詞項-詞項頻率進行統(tǒng)計,獲取高頻詞
在獲取標題的方法中只對一個文檔進行索引,且索引的存儲位置為內(nèi)存,以提高處理效率.利用lucene API獲取該文檔的詞項,以及每個詞項在文檔中出現(xiàn)的頻率.然后,按照詞項頻率高低對詞項排序,選取詞項-詞項頻率列表中前10個詞項來參與標題權(quán)值的計算.
(3)根據(jù)標題中出現(xiàn)的高頻詞數(shù)量調(diào)整特征值
設每個候選標題根據(jù)高頻詞出現(xiàn)的次數(shù)增加其權(quán)值,TN表示詞項個數(shù),算法如下:
(4)選擇候選標題中特征值最大者作為文檔標題.
利用Tika可從各種類型的文檔中提取語義信息.Tika能自動檢測文檔的編碼,并對文檔元信息和內(nèi)容進行分析.Tika得到的元數(shù)據(jù)信息一般是通過文檔的屬性分析中得到,由于各種原因,這些屬性未必能體現(xiàn)文檔內(nèi)容的實際,文中的采用多方競選得到文檔標題的解決方法,準確率較好,從而為基于語義的資源檢索和全文內(nèi)容檢索提供更為準確的信息表達.標題提取是一個具有挑戰(zhàn)性的問題,進一步的研究是引入領域本體[5],利用領域本體實現(xiàn)對文檔的概念理解,從而輔助標題提取.
[1]趙慶齡,錢平,蘇曉路.本體論在基于Web的土壤知識體系智能檢索系統(tǒng)中的應用[J].計算機工程與應用,2005,(5):211-214.
[2]王偉,趙東巖,趙偉.中文新聞關鍵事件的主題句識別[J].北京大學學報(自然科學版),2011,(9):789 -796.
[3]劉建華,張智雄,謝靖,等.基于規(guī)則的網(wǎng)絡文本資源標題快速自動識別方法[J].現(xiàn)代圖書情報技術,2011,(5):27 -31.
[4]李秀麗,徐越權(quán),淺析DC在高校圖書館網(wǎng)絡信息資源組織中的應用[J].農(nóng)業(yè)圖書情報學刊,2010,(5):111 -114.
[5]位傳海,范太華.基于本體的學習資源語義檢索系統(tǒng)研究與設計[J].電化教育研究,2012,(2):70 -74.