鄭昕欣+劉明銘
摘 要: 本文通過(guò)對(duì)不同用戶的需求、信息獲取途徑的深入了解以及對(duì)智能化信息檢索進(jìn)行了可行性分析后,對(duì)其作了需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)的設(shè)計(jì)、算法設(shè)計(jì)以及界面設(shè)計(jì),選定在校大學(xué)生作為適用群體,完成了校園信息智能化檢索系統(tǒng)的開(kāi)發(fā)。它可以應(yīng)用于校園、企業(yè)、網(wǎng)站等諸多實(shí)體,因此具有一定的使用價(jià)值。
關(guān)鍵詞:智能化 信息檢索 校園 檢索系統(tǒng)
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-9082(2016)10-0016-01
一、引言
本文以在校大學(xué)生為服務(wù)對(duì)象,針對(duì)上述信息服務(wù)系統(tǒng)的不足,設(shè)計(jì)研發(fā)了針對(duì)大學(xué)生的智能化信息檢索系統(tǒng),實(shí)現(xiàn)了根據(jù)對(duì)用戶自身特性、用戶需求和漢語(yǔ)言自身特點(diǎn)等多方面的綜合考量進(jìn)行有針對(duì)性地信息推送這一功能。通過(guò)使用本系統(tǒng),可以提高在校大學(xué)生獲取信息的便利度和快捷度,同時(shí)也方便了大學(xué)生之間的交流和溝通。
二、系統(tǒng)分析
1.系統(tǒng)總體目標(biāo)
在用戶方面,本系統(tǒng)致力于帶來(lái)便捷的用戶體驗(yàn)、簡(jiǎn)潔大方的用戶接口;在管理員方面,本系統(tǒng)致力于實(shí)現(xiàn)簡(jiǎn)便的后期維護(hù),如要對(duì)功能模塊方面作修改,則無(wú)需進(jìn)行整個(gè)系統(tǒng)的重新架構(gòu)。
2.技術(shù)可行性分析
本系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序?,F(xiàn)有的數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)技術(shù)已非常成熟,利用現(xiàn)有技術(shù)完全可以實(shí)現(xiàn)預(yù)定的功能。Java語(yǔ)言簡(jiǎn)單、功能強(qiáng)大并容易掌握。而MySQL是一個(gè)非常優(yōu)秀的中型數(shù)據(jù)庫(kù)管理軟件,使用方便,性能穩(wěn)定。故采用Java+MySQL技術(shù)完全能夠?qū)崿F(xiàn)本系統(tǒng)的開(kāi)發(fā)。
三、系統(tǒng)設(shè)計(jì)
1.功能模塊描述
1.1登錄模塊
將用戶輸入的用戶名和密碼帶入數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中進(jìn)行匹配,驗(yàn)證賬號(hào)和密碼,
1.2主頁(yè)面模塊
在此模塊中列舉本系統(tǒng)所包含的所有子功能模塊以及一些推薦信息。
1.3近期活動(dòng)模塊
發(fā)布內(nèi)容來(lái)自學(xué)校社團(tuán)等活動(dòng)主辦方,并根據(jù)實(shí)時(shí)情況更改發(fā)布內(nèi)容。
1.4生活服務(wù)模塊
學(xué)生成功登錄后,可以自行發(fā)布信息,該信息經(jīng)過(guò)排版發(fā)布于子功能模塊中,并可被其他登陸用戶看到。
1.5自助查詢模塊
用戶成功登錄后,可以根據(jù)需要發(fā)起搜索,后臺(tái)服務(wù)器根據(jù)搜索記錄進(jìn)行智能匹配,并在子功能模塊中反饋給用戶。
四、信息檢索關(guān)鍵技術(shù)及系統(tǒng)實(shí)現(xiàn)
1.基于網(wǎng)絡(luò)爬蟲的網(wǎng)頁(yè)信息提取
本系統(tǒng)采用Java和MySQL數(shù)據(jù)庫(kù)聯(lián)動(dòng)的方式,在每一次抽取新的URL時(shí),通過(guò)Jsoup類庫(kù)解析出document實(shí)例對(duì)象,在此實(shí)例對(duì)象中抽取需要的元素(如文章內(nèi)容等),同時(shí)將URL和該網(wǎng)頁(yè)的標(biāo)題加入數(shù)據(jù)庫(kù),形成標(biāo)題與URL一一對(duì)應(yīng)的表結(jié)構(gòu)。
由于互聯(lián)網(wǎng)上的信息總是實(shí)時(shí)更新的,存儲(chǔ)在數(shù)據(jù)庫(kù)中作為信息儲(chǔ)備的所有信息也必須配合互聯(lián)網(wǎng)得到時(shí)效性,實(shí)現(xiàn)實(shí)時(shí)更新。本系統(tǒng)通過(guò)調(diào)用Mycrawler類中的refresh方法來(lái)實(shí)現(xiàn)定時(shí)更新,利用多線程來(lái)監(jiān)督更新并計(jì)時(shí)。
2.提取信息的分詞實(shí)現(xiàn)
在分詞部分,核心要點(diǎn)是 1.詞典樹(shù)的構(gòu)建 2.中文詞匯的匹配,即對(duì)一句話中詞語(yǔ)切割的位置。為此,本系統(tǒng)采用了IKAnalyzer分詞技術(shù)。IKAnalyzer是一個(gè)開(kāi)源的,基于java語(yǔ)言開(kāi)發(fā)的輕量級(jí)的中文分詞工具包。
在詞語(yǔ)的匹配過(guò)程當(dāng)中,IK中默認(rèn)用到三個(gè)子分詞器,分別是LetterSegmenter(字母分詞器),CN_QuantifierSegment(量詞分詞器),CJKSegmenter(中日韓分詞器)。分詞會(huì)先后經(jīng)過(guò)這三個(gè)分詞器,首先要對(duì)輸入的字符串進(jìn)行處理,將字符串轉(zhuǎn)換為char型進(jìn)行匹配輸入字符串以char的形式進(jìn)行匹配,一個(gè)char如果能取到hitList,那么會(huì)鎖定hitList,循環(huán)到第二個(gè)char,如果能在hitList里與上一個(gè)char匹配成詞,則保存當(dāng)前的newLexeme,并加入到輸出結(jié)果集。isEnd()判斷是否結(jié)束,如果是,則context.currCursor偏移1位,繼續(xù)取詞。以此類推,直到整個(gè)字符串遍歷完畢。
3.智能化方法及實(shí)現(xiàn)
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,智能化以其良好的用戶體驗(yàn)一躍成為今后軟件設(shè)計(jì)的一個(gè)必然趨勢(shì)。本系統(tǒng)的智能化主要體現(xiàn)在:根據(jù)同義詞、近義詞詞庫(kù),實(shí)現(xiàn)同義詞匹配搜索。即,根據(jù)用戶輸入的關(guān)鍵字,通過(guò)同義詞匹配,將與用戶搜索內(nèi)容詞義相近的搜索結(jié)果按照其不同的匹配度降序排列,同樣也反饋給用戶。
在獲取了用戶的搜索指令之后,本系統(tǒng)對(duì)關(guān)鍵詞進(jìn)行同義詞查詢,使用戶搜索內(nèi)容得到一定擴(kuò)充。同義詞部分在Lucene4.6中通過(guò)SynonymFilterFactory實(shí)現(xiàn)查詢。
Lucene是Apache軟件基金會(huì)Jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開(kāi)放源代碼的全文搜索引擎工具包,但它不是一個(gè)完整的全文搜索引擎,而是一個(gè)全文搜索引擎架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。
本系統(tǒng)首先通過(guò)新建Hashmap儲(chǔ)存相關(guān)版本信息和同義詞詞典信息,并載入相關(guān)內(nèi)容。而后將已提取到的多個(gè)關(guān)鍵詞進(jìn)行stream化以供索引。最后借助SynonymFilterFactory類,根據(jù)同義詞詞庫(kù),以自然語(yǔ)言中的意群作為標(biāo)準(zhǔn),實(shí)現(xiàn)同義詞查詢。
五、總結(jié)與展望
本系統(tǒng)從用戶的角度出發(fā),發(fā)現(xiàn)了現(xiàn)代信息社會(huì)特定群體獲取信息時(shí)存在的一些弊端,并根據(jù)這些弊端提出了一種更優(yōu)的實(shí)現(xiàn)方法,該方法不同于當(dāng)今較通用的智能匹配,同時(shí)兼顧了用戶群體和自然語(yǔ)言特征兩個(gè)方面,將用戶需求進(jìn)一步細(xì)分,仿真方法證明了該方法在數(shù)據(jù)量很大的情況下依然有效。
參考文獻(xiàn)
[1](美)西爾伯沙茨(Silberschatz.A.)等著.數(shù)據(jù)庫(kù)系統(tǒng)概念:Database System Concepts[M].楊冬青,李紅燕,唐世渭等譯.原書第六版.北京:機(jī)械工業(yè)出版社,2012年:41-42.
[2]李剛.瘋狂Java講義(精粹)[M].第二版.北京:電子工業(yè)出版社,2014,236-242.