基于機器學(xué)習(xí)的自適應(yīng)網(wǎng)絡(luò)爬蟲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種計算機技術(shù),主要利用數(shù)據(jù)挖掘與機器學(xué)習(xí)方法來解決網(wǎng)絡(luò)爬蟲在電子商務(wù)領(lǐng)域的自適應(yīng)匹配問題,屬于計算機技術(shù)、數(shù)據(jù)挖掘、機器學(xué)習(xí)及網(wǎng)絡(luò)爬蟲交叉技術(shù)應(yīng)用領(lǐng)域。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)信息量的爆炸式增長,以及電商網(wǎng)站的不斷興起,越來越多的人開始關(guān)注如何在大數(shù)據(jù)量的電商網(wǎng)絡(luò)中找到自己喜歡的商品,對于軟件行業(yè)專業(yè)人員也越來越傾向于在大數(shù)據(jù)量中做自動化的處理,以提高信息檢索效率并達到針對性推薦信息的目的。爬蟲作為網(wǎng)頁信息獲取的主要途徑也為更多人所熟知。然而,現(xiàn)階段的網(wǎng)絡(luò)爬蟲程序的編寫通常需要專業(yè)的軟件開發(fā)人員通過查詢頁面代碼、研究其對應(yīng)的規(guī)則,并且對于不同的網(wǎng)站、頁面也需要編寫不同的爬蟲程序,并沒有一個能夠具有自適應(yīng)功能的程序來自動引導(dǎo)爬蟲爬取同構(gòu)信息。同時,隨著各大電商相繼崛起,現(xiàn)代社會的人們已經(jīng)更傾向于在線購物,這也成為越來越無法阻擋的趨勢,用戶如何在大數(shù)據(jù)量的電商網(wǎng)站中找到需要的信息是一個很嚴(yán)峻的挑戰(zhàn)。因此,本發(fā)明進行的是將爬蟲程序自動化輸出和電商領(lǐng)域相結(jié)合,進行了針對于電商的自適應(yīng)爬蟲方法研究,用于自動輸出某一電商網(wǎng)站上特定信息的爬蟲程序,而不需要人工進行有針對性地編寫爬蟲程序。
[0003]爬蟲程序,能夠自動化瀏覽網(wǎng)絡(luò)并且能夠自動采集所有可以訪問到的頁面信息。根據(jù)研究,目前業(yè)界對爬蟲技術(shù)及自適應(yīng)爬蟲的分析研究大多局限在某些爬蟲算法的改進,如性能方面、解決頁面和統(tǒng)一資源定位符(URL)的主題相關(guān)性判別的問題等;或是專門使用特制爬蟲爬取某一領(lǐng)域內(nèi)的信息和特定數(shù)據(jù),如地理位置信息、網(wǎng)絡(luò)社交信息等;或是在爬取過程中提高搜索引擎的緩存效率等。其中絕大多數(shù)是基于搜索引擎的爬蟲。因此本發(fā)明使用機器學(xué)習(xí)引導(dǎo)爬蟲程序具有自適應(yīng)功能,從而爬取不同頁面。
[0004]機器學(xué)習(xí)是一門結(jié)合多領(lǐng)域?qū)W科的交叉技術(shù),涉及到統(tǒng)計學(xué)、數(shù)學(xué)、哲學(xué)、信息論等方面。機器學(xué)習(xí)能夠引導(dǎo)計算機模擬和實現(xiàn)人的思想過程或行為,不斷改善其自身已有的結(jié)構(gòu),最終能夠獲取到新的知識、擁有新的行為。
【發(fā)明內(nèi)容】
[0005]技術(shù)問題:本發(fā)明提出一種基于機器學(xué)習(xí)的自適應(yīng)網(wǎng)絡(luò)爬蟲方法,將網(wǎng)絡(luò)爬蟲在數(shù)據(jù)挖掘與機器學(xué)習(xí)技術(shù)下進行自適應(yīng)訓(xùn)練,能夠自動輸出爬蟲程序需要的模式(pattern),從而實現(xiàn)網(wǎng)絡(luò)爬蟲的自適應(yīng)性。
[0006]技術(shù)方案:本發(fā)明具體用到的機器學(xué)習(xí)方法為K鄰近分類算法(IBk)13K鄰近分類算法可以根據(jù)每個測試樣本的樣本信息來學(xué)習(xí)模型,可以更好地擬合局部的樣本特性。經(jīng)過實踐證明,1(鄰近分類算法較為合適,準(zhǔn)確率較高。
[0007]本發(fā)明所述的基于機器學(xué)習(xí)的自適應(yīng)網(wǎng)絡(luò)爬蟲方法,實現(xiàn)了一個可以自動引導(dǎo)爬蟲,使其具有自適應(yīng)功能,爬取不同頁面的自適應(yīng)程序。我們通過對不同電商網(wǎng)站的研究,使用機器學(xué)習(xí)和數(shù)據(jù)挖掘方法輸入京東商城和一號店網(wǎng)站的筆記本電腦價格信息,最終實現(xiàn)的效果是:通過機器學(xué)習(xí)過程對輸入數(shù)據(jù)的分析,使得爬蟲程序?qū)ε廊〉牟煌W(wǎng)站具有自適應(yīng)性。
[0008]本發(fā)明所述的基于機器學(xué)習(xí)的自適應(yīng)網(wǎng)絡(luò)爬蟲方法流程如下:
[0009]步驟1.獲取數(shù)據(jù):獲取到瀏覽器插件提供的整個頁面代碼和需要爬取的部分代碼在整個頁面的位置,位置表示為數(shù)組形式,數(shù)組中的每一個數(shù)字表示該行代碼在整個頁面代碼中的第幾個標(biāo)簽下的第幾個;其中,位置數(shù)組[1,2,6,3,1,2,1,3,2,2,1],數(shù)組中第一位的I表示為整個頁面代碼中最外面的第一層標(biāo)簽,即為html;第二位的2表示在上一層的html標(biāo)簽下的第二個標(biāo)簽body;第三位的6表示在上一層body標(biāo)簽下的第6個標(biāo)簽,即為div,以此類推;
[0010]步驟2.特征提取:使用頁面代碼中每一個標(biāo)簽的美國信息交換標(biāo)準(zhǔn)代碼(ASCII碼)值來作為一個特征,用于該頁面在數(shù)據(jù)集中的表示方法,以滿足輸入要求;使用標(biāo)準(zhǔn)代碼提取模塊將獲取到整個頁面的所有標(biāo)簽標(biāo)準(zhǔn)代碼的和值并輸出,同時統(tǒng)計整個頁面的標(biāo)簽數(shù)量;
[0011 ]步驟3.異構(gòu)數(shù)據(jù)的歸一化過程:由于每個頁面的結(jié)構(gòu)和書寫方式不同,因此其頁面代碼的標(biāo)簽數(shù)量也不同,表現(xiàn)出了數(shù)據(jù)的異構(gòu)性;由于在機器學(xué)習(xí)與數(shù)據(jù)挖掘方法中需要整齊的數(shù)據(jù)進行自適應(yīng)的構(gòu)建,因此將標(biāo)簽數(shù)量歸一化;經(jīng)過大部分的統(tǒng)計結(jié)果,認為1500個標(biāo)簽是個合理的值,因此統(tǒng)一將1500作為一個標(biāo)準(zhǔn),如果某一頁面的標(biāo)簽數(shù)量恰好為1500,則直接進入步驟5進行訓(xùn)練數(shù)據(jù)的構(gòu)建;如果標(biāo)簽數(shù)量少于1500,則進入步驟4補齊數(shù)據(jù),以滿足數(shù)據(jù)挖掘和機器學(xué)習(xí)方法的要求;如果標(biāo)簽數(shù)量多余1500,則只截取前1500個,舍棄多余的;
[0012]步驟4.模糊數(shù)據(jù)補充:對于標(biāo)簽數(shù)量少于1500的頁面,使用稀疏數(shù)據(jù)表示方法,SP用問號“?”補齊到1500;當(dāng)文件格式滿足要求后,進入到步驟5;
[0013]步驟5.訓(xùn)練數(shù)據(jù)構(gòu)建:數(shù)據(jù)挖掘和機器學(xué)習(xí)方法中唯一識別的文件由兩部分組成,分別為文件頭和數(shù)據(jù),文件頭包括關(guān)系聲明(Orelat1n)和屬性聲明(Oattribute),屬性聲明部分聲明屬性名稱和類型,數(shù)據(jù)部分由數(shù)據(jù)聲明(Odata)引導(dǎo),數(shù)據(jù)部分中的每一行為一個實例,數(shù)據(jù)內(nèi)容分別對應(yīng)各個聲明的屬性;創(chuàng)建訓(xùn)練數(shù)據(jù)集時,聲明關(guān)系,屬性和數(shù)據(jù),在這里,有1501個屬性,分別為設(shè)定的1500個標(biāo)簽的標(biāo)準(zhǔn)代碼和值以及某一位的位置值,也就是說,根據(jù)已知的11位位置信息,需要創(chuàng)建11個訓(xùn)練集對應(yīng)于11個輸入文件分別進行訓(xùn)練,每個訓(xùn)練集中有1500個標(biāo)簽和一位位置信息,進行11次訓(xùn)練和測試,最終輸出11位的位置值;
[0014]例如,經(jīng)過歸一化和訓(xùn)練數(shù)據(jù)構(gòu)建后,某一行訓(xùn)練數(shù)據(jù)即為:
[0015]437,402,423,423,546,423,……I
[0016]表示某一網(wǎng)頁中的所有標(biāo)簽標(biāo)準(zhǔn)代碼和值,數(shù)量不足1500的使用問號補充,最后的數(shù)字I即為位置數(shù)組中的第一位。
[0017]同時,也要創(chuàng)建測試集的文件,文件中只有一個測試實例,同樣有1501個屬性,其中未知、需要最終輸出的位置用問號表示,對應(yīng)于最終輸出結(jié)果中的預(yù)測值。
[0018]步驟6.自適應(yīng)訓(xùn)練:載入訓(xùn)練集,選擇IBk分類算法進行訓(xùn)練,訓(xùn)練后保存模型;經(jīng)過實踐證明,該方法較為合適,準(zhǔn)確率較高。
[0019]步驟7.學(xué)習(xí)方法驗證:在訓(xùn)練結(jié)果的基礎(chǔ)上(或載入已保存的模型),接著載入測試集文件,運行后在輸出結(jié)果中提取測試集中未知目標(biāo)數(shù)據(jù)對應(yīng)的預(yù)測值;
[0020]步驟8.自適應(yīng)模式生成:根據(jù)訓(xùn)練生成的位置數(shù)組,還原到整個頁面中對應(yīng)于該位置的部分代碼,根據(jù)爬蟲程序規(guī)則提取程序中需要補充的模式,代入到爬蟲代碼中,即可生成自適應(yīng)爬蟲程序。
[0021]有益效果:本發(fā)明所述的基于機器學(xué)習(xí)的自適應(yīng)網(wǎng)絡(luò)爬蟲方法,將網(wǎng)絡(luò)爬蟲與機器學(xué)習(xí)技術(shù)相結(jié)合,應(yīng)用于電子商務(wù)領(lǐng)域,通過提取網(wǎng)頁特征,對其在機器學(xué)習(xí)及數(shù)據(jù)挖掘分析過程下進行自適應(yīng)訓(xùn)練,使得網(wǎng)絡(luò)爬蟲程序?qū)ε廊〉牟煌W(wǎng)站具有一定的自適應(yīng)性。
[0022]具體來說,本發(fā)明所述的方法具有如下的有益效果:
[0023](I)本發(fā)明所述方法通過機器學(xué)習(xí)過程對輸入數(shù)據(jù)的分析,使得爬蟲程序?qū)ε廊〉牟煌W(wǎng)站具有自適應(yīng)性。
[0024](2)本發(fā)明所述方法能夠在大數(shù)據(jù)量的電商網(wǎng)絡(luò)中自適應(yīng)爬取所需數(shù)據(jù),提高了信息檢索效率,降低了專業(yè)爬蟲開發(fā)人員的時間成本。
[0025](3)本發(fā)明所述方法通過對用戶在網(wǎng)站上所關(guān)注的數(shù)據(jù)的分析,直接得到其他未瀏覽網(wǎng)站上的相關(guān)數(shù)據(jù)呈現(xiàn)給用戶,具有一定的易用性。
【附圖說明】
[0026]圖1是基于機器學(xué)習(xí)自適應(yīng)網(wǎng)絡(luò)爬蟲方法的流程圖。
[0027]圖2是以K鄰近分類算法為例的訓(xùn)練結(jié)果圖。
[0028]圖3是以K鄰近分類算法為例的測試結(jié)果圖。
【具體實施方式】
[0029]下面對本發(fā)明附圖的某些實施方式作更詳細的描述。在本例中:已知A、B網(wǎng)頁HTML代碼,自適應(yīng)輸出C網(wǎng)頁中的爬蟲模式。
[0030]根據(jù)圖1,本發(fā)明建立在數(shù)據(jù)挖掘及機器學(xué)習(xí)技術(shù)的基礎(chǔ)上,【具體實施方式】有:
[0031]1.獲取數(shù)據(jù):
[0032]獲取到瀏覽器插件提供的整個頁面代