摘要:海量信息在網絡上的出現,使搜索網站應運而生,越來越多的搜索工具受到關注。Nutch是一個開源Java實現的搜索引擎,擴展性較好,是人們研究的熱點。現今出現的NUtch-0.8.1較好地處理了英文分詞,但沒有對中文分詞進行處理。文章介紹了在NUtch-0.8.1中實現索引及檢索的二分法,指出在中文分詞上它比原Nutch-0.8.1有了明顯的改善。
關鍵詞:NUtch-0.8.1;二分法;索引;檢索
0 引言
隨著互聯網的飛速發展,海量的信息出現在網絡上,為了減少人們搜索信息所用的時間,搜索網站應運而生。除了google,百度外,越來越多的搜索工具出現在網上。例如,Laibin是抓取網頁的工具,Lucene是建立索引和檢索的工具,這些都是開放源碼的搜索引擎,還有News Spider之類個人開發的搜索工具等。
Nutch是搜索引擎的研究熱點,它的出現使得抓取、索引、檢索一體化,并且開放源碼,可以讓研究者通過配置,逐步完善各個模塊,從而實現所需的搜索引擎。中文分詞是搜索引擎的一個技術關鍵,分詞的好壞直接影響搜索的準確度和效率。Nutch對英文的切分比較完善,但沒有中文分詞處理。有很多在Nutch中增加中文分詞處理的方法,這里介紹二分法中文分詞在NUtch-0.8.1中的具體實現。
1 Nutch及中文分詞介紹
1.1 Nutch介紹
Nutch是一個開源Java實現的搜索引擎。Nutch的開源使得任何人都可以了解它的工作機制;Nutch的插件機制使得它的擴展性也比較好,因此吸引了很多的研究者。Nutch是由Lucene發展而來的,但比Lucene多了抓取頁面的功能。從架構上,搜索可分為抓取和檢索兩個部分,索引是這兩部分的中介。反向索引在抓取到指定頁面后建立,檢索時通過搜索反向索引匹配用戶輸入的關鍵字,得到用戶需要的信息。
1.2 中文分詞介紹
中文分詞影響著搜索結果的相關度排序及搜索的效率和準確度,因此好的搜索引擎必須處理好中文分詞。現有的中文分詞方法有很多,從分詞效果來看,可以分為:單字切分,二分法和詞庫分詞。
單字切分把對象分為單個字,NUtch-0.8.1采用這種方法。此方法較準確,不會有遺漏(這也是很多人用這種方法在Nutch中加入中文分詞處理的原因),但冗余較多,效率不高。
二分法把對象以相鄰兩字的組合為單位進行分隔,如:武漢科技學院,分詞處理后為:
武漢/漢科,科技,技學/學院。此方法比單字切分效率高。由于Nutch和Lucene屬同一作者,Lucene中給出了二分法的類,因此,可以把二分法移植到Nutch中。
