本方法是基于文本密度的方法,最初的想法來(lái)源于哈工大的《基于行塊分布函數(shù)的通用網(wǎng)頁(yè)正文抽取算法》,本文基于此進(jìn)行一些小修改。
約定:
本文基于網(wǎng)頁(yè)的不同行來(lái)進(jìn)行統(tǒng)計(jì),因此,假設(shè)網(wǎng)頁(yè)內(nèi)容是沒(méi)有經(jīng)過(guò)壓縮的,就是網(wǎng)頁(yè)有正常的換行的。
有些新聞網(wǎng)頁(yè),可能新聞的文本內(nèi)容比較短,但其中嵌入一個(gè)視頻文件,因此,我會(huì)給予視頻較高的權(quán)重;這同樣適用于圖片,這里有一個(gè)不足,應(yīng)該是要根據(jù)圖片顯示的大小來(lái)決定權(quán)重的,但本文的方法未能實(shí)現(xiàn)這一點(diǎn)。
由于廣告,導(dǎo)航這些非正文內(nèi)容通常以超鏈接的方式出現(xiàn),因此文本將給予超鏈接的文本權(quán)重為零。
這里假設(shè)正文的內(nèi)容是連續(xù)的,中間不包含非正文的內(nèi)容,因此實(shí)際上,提取正文內(nèi)容,就是找出正文內(nèi)容的開(kāi)始和結(jié)束的位置。
步驟:
首先清除網(wǎng)頁(yè)中CSS,Javascript,注釋,Meta,Ins這些標(biāo)簽里面的內(nèi)容,清除空白行。
計(jì)算每一個(gè)行的經(jīng)過(guò)處理的數(shù)值(1)
計(jì)算上面得出的每行文本數(shù)的最大正子串的開(kāi)始結(jié)束位置
其中第二步需要說(shuō)明一下:
對(duì)于每一行,我們需要計(jì)算一個(gè)數(shù)值,這個(gè)數(shù)值的計(jì)算如下:
一個(gè)圖片標(biāo)簽img,相當(dāng)于出現(xiàn)長(zhǎng)度為50字符的文本 (給予的權(quán)重),x1,
一個(gè)視頻標(biāo)簽embed,相當(dāng)于出現(xiàn)長(zhǎng)度為1000字符的文本, x2
一行內(nèi)所有鏈接的標(biāo)簽 a 的文本長(zhǎng)度 x3 ,
其他標(biāo)簽的文本長(zhǎng)度 x4
每行的數(shù)值 = 50 * x1其出現(xiàn)次數(shù) + 1000 * x2其出現(xiàn)次數(shù) + x4 主站蜘蛛池模板: 巴塘县| 林州市| 腾冲县| 渝中区| 武安市| 桑植县| 开化县| 香河县| 甘洛县| 香格里拉县| 宜兰县| 东至县| 南漳县| 林州市| 铜山县| 德清县| 静乐县| 南汇区| 平谷区| 自贡市| 双鸭山市| 沂源县| 密云县| 寿光市| 临桂县| 文化| 临海市| 沂源县| 武隆县| 旬阳县| 阳泉市| 高雄县| 三原县| 台北县| 石棉县| 余姚市| 城市| 揭阳市| 灌云县| 神木县| 盐津县|