本發(fā)明涉及網(wǎng)絡(luò)信息處理
技術(shù)領(lǐng)域:
,尤其涉及一種基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的發(fā)展,給人們帶來(lái)豐富的信息資源的同時(shí)也給傳統(tǒng)的搜索引擎帶來(lái)了威脅,資源的覆蓋率,搜索結(jié)果的準(zhǔn)確性和相關(guān)性均有所下降,用戶的搜索難度日益增大。因此,主題爬蟲(chóng)型搜索引擎應(yīng)運(yùn)而生,近幾年得到了快速的發(fā)展。網(wǎng)絡(luò)爬蟲(chóng)是一種自動(dòng)抓取網(wǎng)頁(yè)并提取網(wǎng)頁(yè)內(nèi)容的程序,其目的是從互聯(lián)網(wǎng)中獲取信息資源。網(wǎng)絡(luò)爬蟲(chóng)主要分為兩大類:通用爬蟲(chóng)和主題爬蟲(chóng)。通用網(wǎng)絡(luò)爬蟲(chóng)是一般的網(wǎng)絡(luò)爬蟲(chóng),它是根據(jù)初始URL種子集采取一定的爬取策略,如廣度優(yōu)先策略或深度優(yōu)先策略進(jìn)行網(wǎng)頁(yè)爬取的過(guò)程。通用網(wǎng)絡(luò)爬蟲(chóng)的URL種子集可以是任意的門(mén)戶網(wǎng)站,不加過(guò)濾的收集全部網(wǎng)頁(yè)。主題爬蟲(chóng)是按照預(yù)先定義的爬取主題,在給定初始URL種子集合后,根據(jù)一定的分析算法,對(duì)待爬取網(wǎng)頁(yè)進(jìn)行主題相關(guān)分析,過(guò)濾與主題不相關(guān)的網(wǎng)頁(yè),將與主題相關(guān)的鏈接放入待爬取隊(duì)列中,重復(fù)這個(gè)過(guò)程,直到滿足一定條件為止。主題爬蟲(chóng)的URL種子集則必須是事先定義的與主題高度相關(guān)的頁(yè)面,它只關(guān)注與主題相關(guān)的網(wǎng)頁(yè)鏈接,在爬行過(guò)程中盡可能多地發(fā)現(xiàn)與主題相關(guān)的網(wǎng)頁(yè),減少無(wú)關(guān)網(wǎng)頁(yè)的下載。在爬蟲(chóng)系統(tǒng)中,待爬取URL隊(duì)列是最重要的一部分。待爬取URL隊(duì)列以什么樣的順序排列,然后進(jìn)行抓取是一個(gè)很重要的問(wèn)題。而決定這些URL排列順序的方法,叫做抓取策略。常見(jiàn)的抓取策略有深度優(yōu)先遍歷策略、廣度優(yōu)先遍歷策略、反向鏈接數(shù)策略、PartialPageRank策略、OPIC策略、大戰(zhàn)優(yōu)先策略。主題爬蟲(chóng)需要對(duì)抓取的頁(yè)面進(jìn)行主題相關(guān)性分析,過(guò)濾相關(guān)性弱的網(wǎng)頁(yè),只保留主題相關(guān)性強(qiáng)的網(wǎng)頁(yè),主題相關(guān)性算法主要?dú)w納為三種:基于文字內(nèi)容的啟發(fā)式方法、基于Web超鏈接圖評(píng)價(jià)的方法和基于分類器預(yù)測(cè)的方法?;谖淖謨?nèi)容的啟發(fā)方法主要利用了Web網(wǎng)頁(yè)文本內(nèi)容、URL字符串、錨文字等文字內(nèi)容信息,算法主要包括:Bestfirstsearch方法、Fishsearch方法以及Sharksearch方法。基于Web超鏈接圖評(píng)價(jià)的方法的基本思想來(lái)自于文獻(xiàn)計(jì)量學(xué)的引文分析理論,算法主要包括:BackLink方法、PageRank方法。而基于分類器預(yù)測(cè)的方法可以基于分類模型來(lái)描述用戶感興趣的主題和預(yù)測(cè)網(wǎng)頁(yè)的主題相關(guān)度。通過(guò)以上研究分析發(fā)現(xiàn),目前已經(jīng)有很多關(guān)于主題爬蟲(chóng)的研究,但是如何合理地利用海量的資源信息,如何提高爬取網(wǎng)頁(yè)的主題相關(guān)度,過(guò)濾掉相關(guān)度弱的網(wǎng)頁(yè)還有待進(jìn)一步研究。技術(shù)實(shí)現(xiàn)要素:發(fā)明的目的在于解決上述現(xiàn)有技術(shù)存在的缺陷,提供一種高效快速的爬取特定主題網(wǎng)絡(luò)資源的主題網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)方法,包括:一種基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法,包括以下步驟:(1)配置主題關(guān)鍵詞的搜索URL,形成初始種子超鏈接originalURL,其形式為“搜索引擎域名+主題關(guān)鍵詞+搜索結(jié)果起始頁(yè)”;(2)根據(jù)originalURL,在搜索引擎中進(jìn)行檢索并下載網(wǎng)頁(yè),根據(jù)網(wǎng)頁(yè)內(nèi)容獲取初步字段,所述初步字段包括:標(biāo)題、概要、URL和下一頁(yè)超鏈接nextPageURL;其中,標(biāo)題、概要和URL為抓取關(guān)鍵詞;(3)根據(jù)主題相關(guān)性算法,利用所述標(biāo)題和概要,進(jìn)行主題相關(guān)性計(jì)算,得到每篇新聞與主題的相似性,將與主題相關(guān)的新聞字段(URL、標(biāo)題、概要等)保留下來(lái)放入公共隊(duì)列newsQueue中,過(guò)濾掉與主題不相關(guān)的新聞;(4)根據(jù)nextPageURL下載下一頁(yè)的網(wǎng)頁(yè)內(nèi)容,抽取出步驟(2)所述的抓取關(guān)鍵詞以及nextPageURL,將與主題相關(guān)的抓取關(guān)鍵詞放入公共隊(duì)列newsQueue中,不斷重復(fù)步驟(4),直到?jīng)]有下一頁(yè)超鏈接(提取出的nextPageURL字段為空)為止;(5)從newsQueue中取出URL交給爬蟲(chóng)處理線程,即消費(fèi)者線程;所述主題相關(guān)性算法包括以下步驟:(I)選取主題詞集,獲取訓(xùn)練集選定主題關(guān)鍵詞,在搜索引擎中搜索得到相應(yīng)關(guān)鍵詞的Web文件和文本文件,作為word2vector的訓(xùn)練集;(II)利用word2vector工具將主題關(guān)鍵詞轉(zhuǎn)換為向量用word2vector工具對(duì)上一步得到的訓(xùn)練集進(jìn)行訓(xùn)練,訓(xùn)練后,得到一個(gè)vectors.bin的二進(jìn)制文件,利用該文件,將主題關(guān)鍵詞轉(zhuǎn)換為向量,得到向量集其中表示主題詞j的向量,一共有n個(gè)主題詞,得到n個(gè)主題向量;(III)選取m個(gè)待處理Web文檔的特征詞,并獲取其特征向量采用分詞方法對(duì)文檔進(jìn)行分詞,并計(jì)算每個(gè)詞的詞頻,在每個(gè)詞的詞頻上相應(yīng)乘以一個(gè)權(quán)重,即可得到每個(gè)詞的最終權(quán)重w,最后,選取權(quán)重w排名前m位的詞作為特征詞,通過(guò)vectors.bin文件,將這m個(gè)特征詞轉(zhuǎn)換為向量,得到向量集其中表示特征詞i的向量;(IV)計(jì)算向量集s和向量集d的相似性將d中向量與s中每個(gè)向量求余相似性得到其中,表示d中第i個(gè)向量的第k個(gè)維度上的數(shù)值,k從1取到向量的維數(shù)。同理表示s中第j個(gè)向量的第k維上的數(shù)值,k從1取到向量的維數(shù)。取余弦相似性最大值即為該向量與主題詞的相似性,這樣計(jì)算完d中每個(gè)向量與s中每個(gè)向量的相似性以后得到一個(gè)m維向量,將每一維值相加,并進(jìn)行歸一化(除以m)后得到待處理文檔最終的主題相似性sim(s,d)(VI)設(shè)定閾值,URL入庫(kù)設(shè)定一個(gè)閾值K,如果sim(s,d)>K,則將URL標(biāo)題、摘要存入U(xiǎn)RL庫(kù),Web文本存入原始網(wǎng)頁(yè)庫(kù),以便后期分析處理。進(jìn)一步地,在上述步驟(1)之前還包括以下步驟:(1)配置領(lǐng)域本體的描述信息并作為主題爬蟲(chóng)的模板,所述描述信息包括:主題關(guān)鍵詞、抓取關(guān)鍵詞;其中,主題關(guān)鍵詞是指根據(jù)主題確定的關(guān)鍵詞并且需要提交給搜索引擎進(jìn)行資源檢索的關(guān)鍵詞;抓取關(guān)鍵詞是指最終要爬取的有效信息所對(duì)應(yīng)的關(guān)鍵詞;(2)確定主題關(guān)鍵詞集合。進(jìn)一步地,確定主題關(guān)鍵詞集合的方法包括以下步驟:(I)人工挑選主題關(guān)鍵詞,即在搜索引擎中檢索有關(guān)主題的內(nèi)容,在內(nèi)容中抽取與主題相關(guān)的關(guān)鍵詞,存儲(chǔ)在數(shù)據(jù)庫(kù)表中;(II)把(I)中人工挑選出的關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行檢索,檢索出的內(nèi)容存儲(chǔ)在文本文件中;(III)對(duì)該文本文件進(jìn)行分詞和采用TF-IDF算法進(jìn)行詞頻排序后,取排名靠前的關(guān)鍵詞作為主題關(guān)鍵詞存儲(chǔ)數(shù)據(jù)庫(kù)中。TF-IDF算法具體如下:對(duì)文本文件進(jìn)行分詞,并計(jì)算每個(gè)詞的詞頻,在每個(gè)詞的詞頻上相應(yīng)乘以一個(gè)權(quán)重,這個(gè)權(quán)重根據(jù)這個(gè)詞的標(biāo)簽的重要性來(lái)定,如果這個(gè)詞出現(xiàn)在標(biāo)題中,那么它的權(quán)重就設(shè)定高一點(diǎn),如果這個(gè)詞出現(xiàn)在內(nèi)容中,權(quán)重就低一點(diǎn),計(jì)算每個(gè)詞的詞頻和權(quán)重的乘積得到每個(gè)詞的最終權(quán)重,根據(jù)最終權(quán)重值的大小,選擇權(quán)重高的前若干個(gè)關(guān)鍵詞作為主題關(guān)鍵詞即可,關(guān)鍵詞最終權(quán)重wf計(jì)算公式如下:其中,i表示不同的標(biāo)簽,wi表示不同標(biāo)簽下關(guān)鍵詞的權(quán)重系數(shù),fi表示關(guān)鍵詞在該文本文件中該標(biāo)簽下出現(xiàn)的次數(shù);(IV)再重新把數(shù)據(jù)庫(kù)表中的關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行搜索,重復(fù)這樣的檢索和詞頻排序動(dòng)作,以不斷地添加新的關(guān)鍵詞存入數(shù)據(jù)庫(kù)表中,最后數(shù)據(jù)庫(kù)表中的所有關(guān)鍵詞即為主題關(guān)鍵詞。進(jìn)一步地,步驟(5)所述從newsQueue中取出URL交給爬蟲(chóng)處理線程,即消費(fèi)者線程具體包括以下步驟:下載URL對(duì)應(yīng)網(wǎng)頁(yè),解析出正文和步驟(2)中獲得的對(duì)應(yīng)新聞的抓取關(guān)鍵詞形成新聞的完整信息保存到數(shù)據(jù)庫(kù)中,不斷重復(fù),直到待抓取newsQueue隊(duì)列庫(kù)中沒(méi)有可以取出的URL為止。有益效果:本發(fā)明提供的基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法,通過(guò)搜索引擎全網(wǎng)爬取與主題相關(guān)的內(nèi)容,而非針對(duì)特定網(wǎng)站,大大提高了爬取的廣泛性,增加了URL資源的數(shù)量;針對(duì)爬取結(jié)果與主題相關(guān)性弱的問(wèn)題,通過(guò)主題詞集與網(wǎng)頁(yè)內(nèi)容的相似性算法對(duì)爬行網(wǎng)頁(yè)進(jìn)行主題相關(guān)分析,過(guò)濾與主題不相關(guān)的URL,保留與主題相關(guān)的URL,在爬行過(guò)程中盡可能多地發(fā)現(xiàn)與主題相關(guān)的網(wǎng)頁(yè),減少無(wú)關(guān)網(wǎng)頁(yè)的下載。這樣,大大提高了主題網(wǎng)絡(luò)爬蟲(chóng)的爬取效率,增強(qiáng)了爬取出的URL資源的有效性。附圖說(shuō)明圖1是本發(fā)明基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法的生產(chǎn)者線程的具體實(shí)施流程圖;圖2是本發(fā)明基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法的消費(fèi)者線程的具體實(shí)施流程圖;圖3是本發(fā)明基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法的生產(chǎn)者消費(fèi)者模型圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明提供一種基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法,包括以下步驟:(1)配置主題關(guān)鍵詞的搜索URL,形成初始種子超鏈接originalURL,其形式為“搜索引擎域名+主題關(guān)鍵詞+搜索結(jié)果起始頁(yè)”;(2)根據(jù)originalURL,在搜索引擎中進(jìn)行檢索并下載網(wǎng)頁(yè),根據(jù)網(wǎng)頁(yè)內(nèi)容獲取初步字段,所述初步字段包括:標(biāo)題、概要、URL和下一頁(yè)超鏈接nextPageURL;其中,標(biāo)題、概要和URL為抓取關(guān)鍵詞;(3)根據(jù)主題相關(guān)性算法,利用所述標(biāo)題和概要,進(jìn)行主題相關(guān)性計(jì)算,得到每篇新聞與主題的相似性,將與主題相關(guān)的新聞字段(URL、標(biāo)題、概要等)保留下來(lái)放入公共隊(duì)列newsQueue中,過(guò)濾掉與主題不相關(guān)的新聞;(4)根據(jù)nextPageURL下載下一頁(yè)的網(wǎng)頁(yè)內(nèi)容,抽取出步驟(2)所述的抓取關(guān)鍵詞以及nextPageURL,將與主題相關(guān)的抓取關(guān)鍵詞放入公共隊(duì)列newsQueue中,不斷重復(fù)步驟(4),直到?jīng)]有下一頁(yè)超鏈接(提取出的nextPageURL字段為空)為止;(5)從newsQueue中取出URL交給爬蟲(chóng)處理線程,即消費(fèi)者線程;所述主題相關(guān)性算法包括以下步驟:(I)選取主題詞集,獲取訓(xùn)練集選定主題關(guān)鍵詞,在搜索引擎中搜索得到相應(yīng)關(guān)鍵詞的Web文件和文本文件,作為word2vector的訓(xùn)練集;(II)利用word2vector工具將主題關(guān)鍵詞轉(zhuǎn)換為向量用word2vector工具對(duì)上一步得到的訓(xùn)練集進(jìn)行訓(xùn)練,訓(xùn)練后,得到一個(gè)vectors.bin的二進(jìn)制文件,利用該文件,將主題關(guān)鍵詞轉(zhuǎn)換為向量,得到向量集其中表示主題詞j的向量,一共有n個(gè)主題詞,得到n個(gè)主題向量;(III)選取m個(gè)待處理Web文檔的特征詞,并獲取其特征向量采用分詞方法對(duì)文檔進(jìn)行分詞,并計(jì)算每個(gè)詞的詞頻,在每個(gè)詞的詞頻上相應(yīng)乘以一個(gè)權(quán)重,即可得到每個(gè)詞的最終權(quán)重w,最后,選取權(quán)重w排名前m位的詞作為特征詞,通過(guò)vectors.bin文件,將這m個(gè)特征詞轉(zhuǎn)換為向量,得到向量集其中表示特征詞i的向量;(IV)計(jì)算向量集s和向量集d的相似性將d中向量與s中每個(gè)向量求余相似性得到其中,表示d中第i個(gè)向量的第k個(gè)維度上的數(shù)值,k從1取到向量的維數(shù)。同理表示s中第j個(gè)向量的第k維上的數(shù)值,k從1取到向量的維數(shù)。取余弦相似性最大值即為該向量與主題詞的相似性,這樣計(jì)算完d中每個(gè)向量與s中每個(gè)向量的相似性以后得到一個(gè)m維向量,將每一維值相加,并進(jìn)行歸一化(除以m)后得到待處理文檔最終的主題相似性sim(s,d)(VI)設(shè)定閾值,URL入庫(kù)設(shè)定一個(gè)閾值K,如果sim(s,d)>K,則將URL標(biāo)題、摘要存入U(xiǎn)RL庫(kù),Web文本存入原始網(wǎng)頁(yè)庫(kù),以便后期分析處理。本發(fā)明基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)方法,通過(guò)主題關(guān)鍵詞在搜索引擎中全網(wǎng)爬取網(wǎng)頁(yè),計(jì)算主題詞集與網(wǎng)頁(yè)內(nèi)容的相似性對(duì)爬行網(wǎng)頁(yè)進(jìn)行主題相關(guān)分析,過(guò)濾與主題不相關(guān)的URL,將與主題相關(guān)的URL放入待爬取隊(duì)列中。在爬行過(guò)程中盡可能多地發(fā)現(xiàn)與主題相關(guān)的網(wǎng)頁(yè),減少無(wú)關(guān)網(wǎng)頁(yè)的下載。這樣,大大提高了主題爬蟲(chóng)的爬取效率,增強(qiáng)爬取出的URL的有效性。對(duì)于主題爬蟲(chóng)性能的評(píng)價(jià),重復(fù)率、覆蓋率和準(zhǔn)確率是常用的判斷指標(biāo)。覆蓋率和準(zhǔn)確率可以定量化的判斷主題爬蟲(chóng)的過(guò)濾能力,保留有效內(nèi)容的能力。重復(fù)率是指一定量的文章中內(nèi)容相同的文章數(shù)目占總文章數(shù)百分比;覆蓋率是抓取的主題相關(guān)網(wǎng)頁(yè)數(shù)量與Web中主題相關(guān)網(wǎng)頁(yè)數(shù)量的百分比;準(zhǔn)確率是指抓取到的主題相關(guān)網(wǎng)頁(yè)的數(shù)量與所有抓取網(wǎng)頁(yè)數(shù)量的百分比。由于很難估計(jì)Web中主題相關(guān)網(wǎng)頁(yè)數(shù)量,所以使用重復(fù)率和準(zhǔn)確率作為評(píng)估指標(biāo)。顯然,重復(fù)率越高,爬蟲(chóng)爬取網(wǎng)頁(yè)效果越差,準(zhǔn)確率越高表示爬蟲(chóng)將更多的時(shí)間花在了抓取主題相關(guān)頁(yè)面上,忽略了那些與主題無(wú)關(guān)的網(wǎng)頁(yè),說(shuō)明其抓取主題能力越強(qiáng)。下面是具體的實(shí)驗(yàn)結(jié)果:(1)文章去重結(jié)果表1:主題爬蟲(chóng)的去重結(jié)果文章數(shù)(篇)重復(fù)數(shù)(篇)重復(fù)率1000636.3%50003747.48%100008488.48%(2)通過(guò)對(duì)種子URL的分析和計(jì)算主題相關(guān)性對(duì)種子URL進(jìn)行過(guò)濾,得到與主題相關(guān)的URL的過(guò)程,分析得到過(guò)濾策略的準(zhǔn)確率:表2:主題爬蟲(chóng)的準(zhǔn)確率結(jié)果通過(guò)上述表1和表2的實(shí)驗(yàn)結(jié)果,我們可以看出,在去重效果上,文章的重復(fù)率基本維持在10%以內(nèi),重復(fù)率較低,說(shuō)明本文提出的主題爬蟲(chóng)方法性能較好。而準(zhǔn)確率能達(dá)到75%,說(shuō)明爬蟲(chóng)花費(fèi)了更多的時(shí)間在抓取主題相關(guān)頁(yè)面上,說(shuō)明本發(fā)明提出的主題相關(guān)性算法有較好的效果,提高了與主題相關(guān)網(wǎng)頁(yè)的爬取效率。另外,在涉及主題相關(guān)性計(jì)算時(shí),本發(fā)明只將文章的標(biāo)題和摘要納入了主題相關(guān)性計(jì)算的范圍,相比于將全文進(jìn)行主題相關(guān)性計(jì)算的方法,本發(fā)明提出的方法在計(jì)算主題相關(guān)性方面,用時(shí)更短,能夠更快速地爬取網(wǎng)頁(yè)。優(yōu)選地,在上述步驟(1)之前,還包括以下步驟:(1)配置領(lǐng)域本體的描述信息并作為主題爬蟲(chóng)的模板,所述描述信息包括:主題關(guān)鍵詞、抓取關(guān)鍵詞;其中,主題關(guān)鍵詞是指根據(jù)主題確定的關(guān)鍵詞并且需要提交給搜索引擎進(jìn)行資源檢索的關(guān)鍵詞;抓取關(guān)鍵詞是指最終要爬取的有效信息所對(duì)應(yīng)的關(guān)鍵詞;(2)確定主題關(guān)鍵詞集合。本步驟是基于關(guān)鍵詞的主題網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)方法的關(guān)鍵一步——怎樣確定主題關(guān)鍵詞集合。本步驟用關(guān)鍵詞集合來(lái)描述我們的主題,關(guān)鍵詞集合的準(zhǔn)確度直接決定主題的準(zhǔn)確度,我們必須要挑選出與主題關(guān)聯(lián)性最強(qiáng)的一些詞語(yǔ),如在“食品安全”這個(gè)主題下,我們可以找到以下與主題相關(guān)的詞語(yǔ),如“食品添加劑”,“食品檢測(cè)”,“食品原料”等等。因此,本發(fā)明選擇了人工加自動(dòng)提取主題的方法,首先人工地挑選出與主題相關(guān)的詞語(yǔ),然后通過(guò)這些詞語(yǔ)在搜索引擎中搜索內(nèi)容,根據(jù)內(nèi)容中詞語(yǔ)的排名,自動(dòng)地確定其他關(guān)鍵詞,最終形成我們的主題關(guān)鍵詞集合。優(yōu)選地,步驟(2)確定主題關(guān)鍵詞集合的方法包括以下步驟:(I)人工挑選主題關(guān)鍵詞,即在搜索引擎中檢索有關(guān)主題的內(nèi)容,在內(nèi)容中抽取與主題相關(guān)的關(guān)鍵詞,存儲(chǔ)在數(shù)據(jù)庫(kù)表中;(II)把(I)中人工挑選出的關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行檢索,檢索出的內(nèi)容存儲(chǔ)在文本文件中;(III)對(duì)該文本文件進(jìn)行分詞和TF-IDF算法詞頻排序后,取排名靠前的關(guān)鍵詞作為主題關(guān)鍵詞存儲(chǔ)在數(shù)據(jù)庫(kù)中。TF-IDF算法具體如下:對(duì)文本文件進(jìn)行分詞,并計(jì)算每個(gè)詞的詞頻,在每個(gè)詞的詞頻上相應(yīng)乘以一個(gè)權(quán)重,這個(gè)權(quán)重根據(jù)這個(gè)詞的標(biāo)簽的重要性來(lái)定,如果這個(gè)詞出現(xiàn)在標(biāo)題中,那么它的權(quán)重就設(shè)定高一點(diǎn),如果這個(gè)詞出現(xiàn)在內(nèi)容中,權(quán)重就低一點(diǎn),計(jì)算每個(gè)詞的詞頻和權(quán)重的乘積得到每個(gè)詞的最終權(quán)重,根據(jù)最終權(quán)重值的大小,選擇權(quán)重高的前若干個(gè)關(guān)鍵詞作為主題關(guān)鍵詞即可,關(guān)鍵詞最終權(quán)重wf計(jì)算公式如下:其中,i表示不同的標(biāo)簽,wi表示不同標(biāo)簽下關(guān)鍵詞的權(quán)重系數(shù),fi表示關(guān)鍵詞在該文本文件中該標(biāo)簽下出現(xiàn)的次數(shù);(IV)再重新把數(shù)據(jù)庫(kù)表中的關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行搜索,重復(fù)這樣的檢索和詞頻排序動(dòng)作,以不斷地添加新的關(guān)鍵詞存入數(shù)據(jù)庫(kù)表中,最后數(shù)據(jù)庫(kù)表中的所有關(guān)鍵詞即為主題關(guān)鍵詞。通過(guò)人工與自動(dòng)提取主題關(guān)鍵詞相結(jié)合的方法,可以提高被描述的主題的準(zhǔn)確性。如果單靠人工挑選,不同的人對(duì)于主題的理解的側(cè)重點(diǎn)不同,可能挑選出與主題不同關(guān)聯(lián)度的詞語(yǔ),并且人工挑選相對(duì)較慢,效率低下,而簡(jiǎn)單地自動(dòng)獲取關(guān)鍵詞也不能達(dá)到很好的效果。因此采用人工加自動(dòng)提取主題的方式,可以揚(yáng)長(zhǎng)避短,互相補(bǔ)充,既能提高提取主題關(guān)鍵詞的準(zhǔn)確率也能獲取更多與主題相關(guān)的關(guān)鍵詞集合。優(yōu)選地,步驟(5)所述從newsQueue中取出URL交給爬蟲(chóng)處理線程,即消費(fèi)者線程具體包括以下步驟:下載URL對(duì)應(yīng)網(wǎng)頁(yè),解析出正文和步驟(3)中對(duì)應(yīng)URL的抓取關(guān)鍵詞形成新聞的完整信息保存到數(shù)據(jù)庫(kù)中,不斷重復(fù),直到待抓取news隊(duì)列庫(kù)中沒(méi)有可以取出的URL為止。實(shí)施例:圖1是關(guān)于生產(chǎn)者線程的具體實(shí)施流程圖,具體步驟如下:(1)配置領(lǐng)域本體的描述信息并作為主題爬蟲(chóng)的模板,這些描述信息包括:主題關(guān)鍵詞、抓取關(guān)鍵詞。(2)確定“食品安全”主題關(guān)鍵詞集合,得到食品安全主題關(guān)鍵詞表foodsecureWord。在本實(shí)施中,采用百度、google、bing和360作為搜索引擎,設(shè)置主題為“食品安全”,首先在搜索引擎中檢索有關(guān)食品安全的內(nèi)容,在內(nèi)容中抽取如“食品安全法”,“食品生產(chǎn)安全標(biāo)準(zhǔn)”,“食品超標(biāo)”,“食品添加劑”等與食品安全相關(guān)的關(guān)鍵詞,存儲(chǔ)在數(shù)據(jù)庫(kù)表foodsecureWord中,這就是所謂的人工挑選主題關(guān)鍵詞的過(guò)程。然后再把這些關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行檢索,檢索出的內(nèi)容存儲(chǔ)在文本文件中,最后,對(duì)該文本文件進(jìn)行分詞和詞頻排序(如采用TF-IDF算法)后,取前10或20名的關(guān)鍵詞作為主題關(guān)鍵詞存儲(chǔ)在foodsecureWord中,再重新把foodsecureWord中的關(guān)鍵詞作為搜索關(guān)鍵詞在搜索引擎中進(jìn)行搜索,重復(fù)這樣的檢索和詞頻排序動(dòng)作,這樣就可以不斷地添加新的關(guān)鍵詞存入foodsecureWord中,最后foodsecureWord表中的所有關(guān)鍵詞即為主題關(guān)鍵詞。(3)形成初始種子超鏈接originalURL。根據(jù)表foodsecureWord中的主題關(guān)鍵詞在搜索引擎中進(jìn)行檢索,配置搜索URL信息,形成初始種子超鏈接originalURL,其一般形式為:搜索引擎域名+搜索關(guān)鍵詞+搜索結(jié)果起始頁(yè)碼,如360搜索“食品超標(biāo)”的originalURL形式為:http://news.haosou.com/ns?q=%E9%A3%9F%E5%93%81%E8%B6%85%E6%A0%87%20&pn=1,其中“q=”的后面為主題關(guān)鍵詞的16進(jìn)制編碼,“&pn=1”表示當(dāng)前結(jié)果從第一頁(yè)開(kāi)始。要獲取下一頁(yè)URL可通過(guò)上一頁(yè)網(wǎng)頁(yè)正則匹配出下一頁(yè)URL。(4)根據(jù)主題相關(guān)性,將與主題相關(guān)的抓取關(guān)鍵詞放入隊(duì)列newsQueue中。根據(jù)originalURL,在搜索引擎中進(jìn)行檢索并下載網(wǎng)頁(yè),根據(jù)網(wǎng)頁(yè)內(nèi)容,抓取相關(guān)字段包括:“標(biāo)題(title)”、“URL”、“概要(summary)”、“圖片(img_src)”、“網(wǎng)站(siteName)”、“新聞時(shí)間(newsTime)”、“源網(wǎng)站(sourceURL)”、“下一頁(yè)鏈接(nextPageURL)”。其中除下一頁(yè)鏈接外,其他關(guān)鍵詞均為抓取關(guān)鍵詞,根據(jù)主題相關(guān)性算法,將與主題相關(guān)的抓取關(guān)鍵詞對(duì)應(yīng)地放入待抓取新聞隊(duì)列newsQueue中。以上所有關(guān)鍵詞均可通過(guò)分析網(wǎng)頁(yè)內(nèi)容,設(shè)定正則表達(dá)式對(duì)相關(guān)內(nèi)容進(jìn)行抽取。4.1)生產(chǎn)者線程通過(guò)OriginalURL,下載網(wǎng)頁(yè),用Jsoup工具或者正則表達(dá)式可以抽取出其中的數(shù)據(jù)字段包括:“標(biāo)題(title)”、“標(biāo)題鏈接(URL)”、“內(nèi)容概要(summary)”、“新聞來(lái)源(stieName)”、“圖片(img_src)”、“新聞時(shí)間(newsTime)。獲取到的URL信息如表3所示:表3:URL信息4.2)獲取網(wǎng)頁(yè)階段,網(wǎng)頁(yè)編碼均統(tǒng)一為UTF-8格式,根據(jù)服務(wù)器返回網(wǎng)頁(yè)html中的head區(qū)域中的charset標(biāo)簽后的內(nèi)容得到網(wǎng)頁(yè)的編碼,若該編碼為UTF-8,則直接返回網(wǎng)頁(yè),若為其他編碼,則轉(zhuǎn)碼為UTF-8之后再返回html網(wǎng)頁(yè)。4.3)根據(jù)主題相關(guān)性算法,由于生產(chǎn)者線程目前獲取到的數(shù)據(jù)字段中的標(biāo)題和概要是與主題最相關(guān)的信息,因此取URL的標(biāo)題和概要進(jìn)行主題相關(guān)性計(jì)算,得到該URL和主題的相似度α,將主題相關(guān)的種子URL,即主題相似度α>0.6的URL的新聞信息,包括title、URL、summary、siteName、img_src和newsTime放入newsQueue中。主題相關(guān)性算法步驟如下:(I)選取主題詞集,獲取訓(xùn)練集選定主題關(guān)鍵詞,在搜索引擎中搜索得到相應(yīng)關(guān)鍵詞的Web文件和文本文件,作為word2vector的訓(xùn)練集;(II)利用word2vector工具將主題關(guān)鍵詞轉(zhuǎn)換為向量用word2vector工具對(duì)上一步得到的訓(xùn)練集進(jìn)行訓(xùn)練,訓(xùn)練后,得到一個(gè)vectors.bin的二進(jìn)制文件,利用該文件,將主題關(guān)鍵詞轉(zhuǎn)換為向量,得到向量集其中表示主題詞j的向量,一共有n個(gè)主題詞,得到n個(gè)主題向量;(III)選取m個(gè)待處理Web文檔的特征詞,并獲取其特征向量采用分詞方法對(duì)文檔進(jìn)行分詞,并計(jì)算每個(gè)詞的詞頻,在每個(gè)詞的詞頻上相應(yīng)乘以一個(gè)權(quán)重,即可得到每個(gè)詞的最終權(quán)重w,最后,選取權(quán)重w排名前m位的詞作為特征詞,通過(guò)vectors.bin文件,將這m個(gè)特征詞轉(zhuǎn)換為向量,得到向量集其中表示特征詞i的向量;(IV)計(jì)算向量集s和向量集d的相似性將d中向量與s中每個(gè)向量求余相似性得到其中,表示d中第i個(gè)向量的第k個(gè)維度上的數(shù)值,k從1取到向量的維數(shù)。同理表示s中第j個(gè)向量的第k維上的數(shù)值,k從1取到向量的維數(shù)。取余弦相似性最大值即為該向量與主題詞的相似性,這樣計(jì)算完d中每個(gè)向量與s中每個(gè)向量的相似性以后得到一個(gè)m維向量,將每一維值相加,并進(jìn)行歸一化(除以m)后得到待處理文檔最終的主題相似性sim(s,d)(VI)設(shè)定閾值,URL入庫(kù)設(shè)定一個(gè)閾值K=0.6,如果sim(s,d)>K,則將URL標(biāo)題、摘要存入U(xiǎn)RL庫(kù),Web文本存入原始網(wǎng)頁(yè)庫(kù),以便后期分析處理。(5)根據(jù)nextPageURL下載網(wǎng)頁(yè)內(nèi)容,抽取出步驟(3)所述的相關(guān)字段,用步驟4.3)的方法計(jì)算主題相關(guān)性,將與主題相關(guān)的抓取關(guān)鍵詞放入newsQueue中,不斷重復(fù)步驟(5),直到?jīng)]有nextPageURL為止;(6)從newsQueue中取出URL交給爬蟲(chóng)處理線程,即消費(fèi)者線程。圖2是消費(fèi)者線程具體實(shí)施流程圖,具體步驟如下:如圖2所示,消費(fèi)者線程取出隊(duì)列newsQueue中的URL,對(duì)URL下載相應(yīng)的網(wǎng)頁(yè),利用正文提取算法,提取出URL的正文內(nèi)容,和生產(chǎn)者線程抓取的關(guān)鍵詞形成新聞的完整信息包括“標(biāo)題(title)”、“標(biāo)題鏈接(URL)”、“內(nèi)容概要(summary)”、“新聞來(lái)源(stieName)”、“圖片(img_src)”、“新聞時(shí)間(newsTime)”和“正文(content)”,最后,將完整的信息字段全部放入mysql數(shù)據(jù)庫(kù)中。圖3是生產(chǎn)者消費(fèi)者模型,用于調(diào)度和消費(fèi)者線程,具體步驟如下:如圖3所示,當(dāng)隊(duì)列newsQueue為空時(shí),就通知生產(chǎn)者進(jìn)行生產(chǎn)URL,當(dāng)隊(duì)列中的URL過(guò)多或者已滿時(shí),生產(chǎn)者線程就通知消費(fèi)者線程取出URL,這時(shí)候生產(chǎn)者自我阻塞,具體實(shí)現(xiàn)中調(diào)用了java多線程中的wait()和notify()機(jī)制。最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。當(dāng)前第1頁(yè)1 2 3