網(wǎng)站制作NEWS
百科知識(shí)圖譜構(gòu)建(一)百科類知識(shí)抽取
構(gòu)建百科類知識(shí)圖譜旨在擴(kuò)大知識(shí)圖譜的規(guī)模與領(lǐng)域覆蓋。依據(jù)前人的研究,我們嘗試構(gòu)建一個(gè)包含百度百科、互動(dòng)百科及中文wiki百科知識(shí)的百科類知識(shí)圖譜。
目標(biāo)是構(gòu)建一個(gè)包含千萬(wàn)級(jí)實(shí)體數(shù)量和億級(jí)別的關(guān)系數(shù)目的中文百科類知識(shí)圖譜,目前已完成百度百科和互動(dòng)百科部分的構(gòu)建。百度百科的4,190,390個(gè)詞條在Neo4j數(shù)據(jù)庫(kù)中生成了10,416,647個(gè)節(jié)點(diǎn),37,317,167條關(guān)系和45,049,533個(gè)屬性;互動(dòng)百科的3,677,150個(gè)詞條生成了6,081,723個(gè)節(jié)點(diǎn),19,054,289條關(guān)系和16,917,984個(gè)屬性。合計(jì),節(jié)點(diǎn)數(shù)為16,498,370,關(guān)系數(shù)為56,371,456,屬性數(shù)為61,967,517。
為達(dá)成數(shù)據(jù)獲取目標(biāo),我們采用了scrapy框架,通過多個(gè)爬蟲并行操作來加速數(shù)據(jù)爬取。每個(gè)詞條內(nèi)抽取的關(guān)鍵信息遵循zhishi.me的方法,包括目標(biāo)內(nèi)容、爬蟲介紹、數(shù)據(jù)處理邏輯以及并行爬蟲實(shí)現(xiàn)等。
在items.py中定義了爬取內(nèi)容的命名規(guī)則,與目標(biāo)內(nèi)容對(duì)應(yīng)。pipelines.py模塊負(fù)責(zé)存儲(chǔ)和管理爬取數(shù)據(jù),它在爬蟲分析完一個(gè)網(wǎng)頁(yè)返回內(nèi)容后,查詢當(dāng)前表中title_id的最大值,并將當(dāng)前詞條以title_id+1的方式存儲(chǔ)。在處理異常時(shí),采用none作為默認(rèn)值。多個(gè)爬蟲的并行運(yùn)行通過在commands目錄下的crawlall.py文件實(shí)現(xiàn),該文件支持在設(shè)置目錄中執(zhí)行爬蟲。同時(shí),通過在命令中添加參數(shù),實(shí)現(xiàn)爬蟲的斷點(diǎn)續(xù)爬和控制日志輸出。
多重隨機(jī)標(biāo)簽