千度檢索與語言處理實驗平臺--開幕片

 

  從今天開始我要正式的做一些關於我畢業設計系統的文章了。之前有打算寫一些文章,但是總感覺缺了些知識的底蘊在裏面。經過近2個多月的積累,我逐漸的形成了一些想法。在這期間,我完成了這個系統的debug版本的開發,從中積累了一些經驗,同時也學到了很多知識。希望我的文章可以對於各位讀者有所啓發。

 

序曲:

     兩個多月前,我正式的來到了我現在所在的實驗室--瀋陽航空工業學院 知識工程中心。這個實驗室主要研究的方向是自然語言處理,其中包括信息檢索、機器翻譯、人工智能、知識工程等有趣的話題。我的導師就是這個實驗室的leader,蔡東風教授。這裏濃厚的學習與研究氛圍激發了我的熱情,作爲畢業前在學校度過的最後時光,我非常的珍惜這段寶貴的時光。關於這段時間的安排,畢業設計當然是我努力的主線與主要成果。我努力的學習、研究,精心的構建了一個用於科研實驗的檢索系統,以此作爲我爲蔡老師以及實驗室各位師兄的關懷的一點微不足道的回報。希望我這一階段的努力能夠爲所有關心我的人帶來一絲啓發、喜悅或者是欣慰。也希望這些努力能夠爲我大學的學習生活畫上一個圓滿的句號。

思想來源:

      Internet的發展給世界帶來了一場信息革命,通過互聯網,人們可以簡單而快捷的獲取海量信息。然而世界並沒有因此而變得“平坦”,人們仍然無法平等的獲取信息。其中的一個最爲突出的因素就是“信息爆炸”的問題。面對着如此海量的信息,如何提取我們需要的“有用”信息呢?

搜索引擎,作爲一種目前較爲成熟的解決方案,得到了廣泛的重視。隨着Google爲代表的第二代搜索引擎在商業上取得了極大的成功,世界各地掀起了一場“搜索引擎”熱潮。無論是在工業界還是在學術界,搜索引擎的相關技術始終是熱門話題。

搜索引擎實際上就是一個信息檢索系統,其本質就是從非結構化的信息集合中找出與用戶需求相關信息的計算機軟件系統[1.信息檢索系統導論]。目前比較成熟的檢索系統都是大量優化技術的組合,整個系統的性能與效果不僅僅取決於某個部分的表現,還要考慮各個部分的結合方式。因此,檢索系統的研究人員除了要解決自己所研究的部分之外,還有兼顧整個系統的構建。特別在實驗當中,研究與開發人員不僅要構建自己所研究的優化技術,還要去構建檢索系統的其它部分,這樣就使得很多人無法集中精力去解決那些本質上的複雜性問題。

在工業界,比較著名的檢索開發工具有Apache Lucene,支持P2P架構的Hyper Estraier,基於SQL的全文檢索引擎Sphinx,結構化文本索引和檢索Zebra等。其中最廣泛使用的是lucene,它基於Java開發,接口簡潔,具有良好的系統構建與可擴展性。然而,它有性能較差,提供的檢索算法較少,無法支持大規模的數據處理等弱點,這樣導致這些以Lucene爲代表的商用檢索工具並不適用於科學研究。

研究人員往往需要一個支持大規模數據的、靈活的、健壯的、易擴展的實驗平臺,用來測試和驗證各種新的優化技術以及算法。在這種情況下,很多國外的科研機構都開發了自己的檢索工具平臺。具有代表性的有卡內基梅隆大學(CMU)與馬薩諸塞州立大學(UMass)聯合開發的語言模型和信息檢索工具包Lemur,皇家墨爾本理工大學(RMIT)Zettair,加拿大滑鐵盧大學的Wumpus等。其中比較有特色的是Lemur,其對於檢索效果試驗有良好的支持,目前也被很多科研機構所採用。但在檢索效率、索引實驗等方面,Lemur並不能提供良好的擴展支持。國內目前同類的檢索工具僅有中國科學院計算所開發的FirteX,雖然系統的構架與思路不錯,但是在覈心檢索模型的支持上與國外的工具還有一定的差距,所以在目前的國際檢索評測會議上,還沒有出現基於國內的檢索工具開發的系統。

Lemur本身並不是一個完整的檢索系統,而是一個檢索系統的工具集合。它僅提供了構建檢索系統所必要的組件和API。雖然lemur後續推出了開源項目indri,其爲一個完整的檢索系統程序,但是與lemur本身一樣,使用這些工具開發系統均存在着如下問題:

1.    文檔支持比較粗糙,部分信息無法同軟件最新版本同步。

2.    參考資料極少,中文的介紹資料暫無。

3.    使用者多爲科研機構,開發者相對較少,社區不活躍。

4.    Lemur本身實現複雜,進行開發需要一定的領域知識。

5.    對於中文的支持較弱,僅支持單字的切分。

6.    開源軟件,部分組件發現的bug無法得到及時的修補。

鑑於上述開發系統當中所遇到的問題,我產生了構建這樣一個檢索與語言處理平臺的想法。

系統實現目標:

1.    深入研究lemur,包括它所提供的具體功能、API調用方式、開發方法、內部實現機制等問題。

2.    基於lemur開發檢索平臺,該平臺需具有如下特徵:

l  整個系統的構架保持lemur的風格,追求靈活性與功能的強大與完整性;同時系統結構力求簡潔,儘量的減少lemur中設計的複雜性問題。

l  系統模塊定義清晰,構架具有良好的伸縮性,力爭做到每一個組件都可以容易的擴展、定製、維護等。

l  提供對於英文與中文的良好語言處理支持。

l  友好的交互界面,使得科研人員可以“點按鈕,做實驗”。

l  儘量提高系統的響應速度。

l  儘量保證系統代碼的簡潔性與健壯性。

l  形成詳細的開發文檔,並提供關於檢索系統的構建思想以及lemur使用的一些介紹性文檔,以供初學者學習

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章