亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法及系統(tǒng)的制作方法

文檔序號(hào):6625109閱讀:498來(lái)源:國(guó)知局
一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法及系統(tǒng)。該方法包括創(chuàng)建文件對(duì)象模型樹(shù),清除文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽;根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間信息;遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)關(guān)鍵字列表或正則式列表,對(duì)網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找;若網(wǎng)頁(yè)地址包含關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,文本信息為所述單樓頁(yè)面的用戶名信息。
【專(zhuān)利說(shuō)明】—種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法及系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)信息抽取方法,特別是一種基于時(shí)間串的論壇帖子自動(dòng)抽取方法及系統(tǒng)。

【背景技術(shù)】
[0002]互聯(lián)網(wǎng)成為了許多人生活中不可或缺的一部分,而且內(nèi)容越來(lái)越豐富,然而,隨著內(nèi)容的豐富、規(guī)模的擴(kuò)大、用戶數(shù)量的急劇增長(zhǎng),信息爆炸給人們也帶來(lái)了相當(dāng)大的困擾一人們無(wú)法快速、準(zhǔn)確地獲取自己想要得到的信息,這一方面是由于數(shù)據(jù)量大,找到想要的信息猶如大海撈針;另一方面,還因?yàn)楦鞣N網(wǎng)頁(yè)噪音(廣告等)、垃圾網(wǎng)頁(yè)等一些用戶不想看到的信息在泛濫,針對(duì)前者,目前比較好的解決方式是搜索引擎和個(gè)性化推薦引擎,搜索引擎可以讓用戶自定義的去查找用戶自己想要的信息,而個(gè)性化推薦引擎試圖自動(dòng)尋找用戶大概想要的內(nèi)容,對(duì)用戶進(jìn)行推送。目前通常的搜索引擎、個(gè)性化推薦引擎采用的是對(duì)網(wǎng)頁(yè)文本進(jìn)行處理、分析(分詞、建索引、排序等),而如果不對(duì)網(wǎng)頁(yè)中的噪音信息進(jìn)行處理,最終系統(tǒng)搜索或推薦出的內(nèi)容質(zhì)量也會(huì)大打折扣。
[0003]為了解決上面這些問(wèn)題,網(wǎng)絡(luò)信息抽取技術(shù)應(yīng)需求而生。該技術(shù)的目標(biāo)是將網(wǎng)頁(yè)中的信息提取并表示為結(jié)構(gòu)化的、計(jì)算機(jī)可以存儲(chǔ)和理解的格式。信息抽取的質(zhì)量直接影響系統(tǒng)的效果,因此,網(wǎng)絡(luò)信息抽取研究具有重大的應(yīng)用價(jià)值。
[0004]目前,按照是否需要模板,可以將信息抽取方法分為模板相關(guān)與模板無(wú)關(guān)的方法。模板相關(guān)的方法是指通過(guò)人工標(biāo)注或者自動(dòng)算法尋找到網(wǎng)頁(yè)中關(guān)鍵信息的位置,并記錄為模板,以便用來(lái)抽取結(jié)構(gòu)相似的頁(yè)面,這種方式在抽取時(shí)速度快,缺點(diǎn)是如果采用人工標(biāo)注的話會(huì)耗費(fèi)大量的人力,模板的維護(hù)代價(jià)高,可擴(kuò)展性差;模板無(wú)關(guān)的方法是指對(duì)于每個(gè)待處理的頁(yè)面,通過(guò)自動(dòng)化的抽取方法獲取網(wǎng)頁(yè)的關(guān)鍵信息,一般是基于網(wǎng)頁(yè)的結(jié)構(gòu)特征或者文本特征,這種方法的優(yōu)點(diǎn)是全自動(dòng)化,無(wú)需人工標(biāo)注,也沒(méi)有模板維護(hù)的代價(jià),但是抽取效率以及準(zhǔn)確率偏低。
[0005]對(duì)于論壇類(lèi)頁(yè)面,目前模板無(wú)關(guān)的方法一般是基于頁(yè)面結(jié)構(gòu)的相似性,尋找重復(fù)結(jié)構(gòu),從而找到頁(yè)面中記錄所在的位置。但是對(duì)于主樓與跟貼結(jié)構(gòu)不同的論壇頁(yè)面(比如天涯論壇),會(huì)導(dǎo)致主樓信息很容易丟失;對(duì)于單樓頁(yè)面(只有一個(gè)帖子),由于不符合算法中關(guān)于頁(yè)面存在相似、重復(fù)結(jié)構(gòu)的假設(shè),導(dǎo)致抽取效果很差。
[0006]自動(dòng)化抽取方法在對(duì)自動(dòng)化要求較高的應(yīng)用場(chǎng)合中發(fā)揮著重要作用,在實(shí)時(shí)信息采集系統(tǒng)中,單樓頁(yè)面的比例較高,導(dǎo)致自動(dòng)抽取方式抽取效果較差。
[0007]發(fā)明專(zhuān)利“一種多記錄網(wǎng)頁(yè)的信息抽取系統(tǒng)及方法”,該發(fā)明涉及一種多記錄網(wǎng)頁(yè)的信息抽取系統(tǒng)及方法,該系統(tǒng)包括:一個(gè)網(wǎng)頁(yè)預(yù)處理模塊,用于將HTML網(wǎng)頁(yè)轉(zhuǎn)換為XHTML網(wǎng)頁(yè),并過(guò)濾網(wǎng)頁(yè)中用來(lái)渲染顯示效果的標(biāo)簽,然后根據(jù)標(biāo)簽的嵌套結(jié)構(gòu),構(gòu)建文檔次序樹(shù);一個(gè)記錄區(qū)域定位模塊,用于接收文檔次序樹(shù),并利用橫向?qū)哟畏治龇ㄔ谖臋n次序樹(shù)中定位出記錄區(qū)域的位置;一個(gè)記錄分隔符識(shí)別模塊,用于從記錄區(qū)域中找到記錄之間的分隔符并進(jìn)行存儲(chǔ);以及一個(gè)記錄輸出模塊,用于將記錄區(qū)域里所有文本節(jié)點(diǎn)按層次順序遍歷輸出,在碰到分隔符時(shí)輸出分隔線,得到最終的抽取結(jié)果。該系統(tǒng)及方法能夠高效、準(zhǔn)確地對(duì)傳統(tǒng)和新式多記錄網(wǎng)頁(yè)進(jìn)行信息抽取,抽取速度快、準(zhǔn)確度高,通用性強(qiáng),適用范圍廣。該發(fā)明通過(guò)建立文檔次序樹(shù)、并結(jié)合分隔符來(lái)抽取多記錄內(nèi)容,與本發(fā)明基于時(shí)間串尋找記錄的方式完全不同。
[0008]發(fā)明專(zhuān)利“一種Web論壇信息抽取系統(tǒng)”,該發(fā)明公開(kāi)了一種Web論壇信息抽取系統(tǒng),該系統(tǒng)包括如下模塊:網(wǎng)頁(yè)采集模塊,用于根據(jù)用戶指定的論壇站點(diǎn)和相應(yīng)的版塊自動(dòng)下載論壇網(wǎng)頁(yè);網(wǎng)頁(yè)解析模塊,用于對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行清洗,形成網(wǎng)頁(yè)的文檔對(duì)象模型(DOM)以便信息抽取算法的實(shí)施;在線抽取模塊,用于根據(jù)論壇網(wǎng)頁(yè)的布局結(jié)構(gòu)特點(diǎn)對(duì)網(wǎng)頁(yè)中的指定信息進(jìn)行抽??;數(shù)據(jù)庫(kù)存儲(chǔ)模塊,用于將所抽取的內(nèi)容存儲(chǔ)在數(shù)據(jù)庫(kù)系統(tǒng)中以便進(jìn)行其它的應(yīng)用;該發(fā)明的能對(duì)互聯(lián)網(wǎng)上多種論壇的指定信息進(jìn)行自動(dòng)抽取,且有很高的準(zhǔn)確率。但該發(fā)明通過(guò)計(jì)算結(jié)構(gòu)相似性,并通過(guò)閾值來(lái)尋找記錄,與本發(fā)明基于時(shí)間串的方式差別很大。
[0009]發(fā)明專(zhuān)利“ 一種自動(dòng)抽取論壇數(shù)據(jù)的方法”,該發(fā)明公開(kāi)了一種從論壇帖子中抽取數(shù)據(jù)的方法,按照如下步驟:a根據(jù)論壇網(wǎng)頁(yè)結(jié)構(gòu)的特點(diǎn),用網(wǎng)頁(yè)結(jié)構(gòu)聚類(lèi)的方法,識(shí)別網(wǎng)頁(yè)帖子頁(yè)面;b根據(jù)網(wǎng)頁(yè)帖子的簇的相似子樹(shù)的數(shù)量變化,計(jì)算該簇內(nèi)所有同路徑下的相似子樹(shù)的熵,來(lái)定位條目信息;c構(gòu)建帖子頁(yè)面可視字串的特征集,利用統(tǒng)計(jì)特征對(duì)特征集進(jìn)行劃分,然后利用先驗(yàn)知識(shí)對(duì)具體的可視字串代表的含義,并生成模板;d利用模板解析網(wǎng)頁(yè),完成最終的提取。但該發(fā)明通過(guò)計(jì)算網(wǎng)頁(yè)帖子的簇的相似子樹(shù)的數(shù)量變化來(lái)定位記錄,并生成相應(yīng)模板,與本發(fā)明基于時(shí)間串的方式差別很大。


【發(fā)明內(nèi)容】

[0010]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于時(shí)間串的論壇帖子自動(dòng)抽取方法及系統(tǒng)。
[0011]本發(fā)明提出一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,包括:
[0012]步驟1,對(duì)所述論壇頁(yè)面進(jìn)行文件對(duì)象模型解析,并創(chuàng)建文件對(duì)象模型樹(shù),清除所述文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽,其中將所述無(wú)用標(biāo)簽和所述空標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn),標(biāo)記為非關(guān)鍵節(jié)點(diǎn),以完成清除;
[0013]步驟2,根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間信息;
[0014]步驟3,初始化關(guān)鍵字列表和正則式列表,遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)所述關(guān)鍵字列表或所述正則式列表,對(duì)所述網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找;
[0015]步驟4,若所述網(wǎng)頁(yè)地址包含所述關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取所述新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,所述文本信息為所述單樓頁(yè)面的用戶名信息。
[0016]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,所述步驟I和所述步驟2之間還包括:
[0017]通過(guò)正則式獲取所述文件對(duì)象模型樹(shù)的所述時(shí)間串。
[0018]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,還包括:
[0019]步驟5,對(duì)所述單獨(dú)節(jié)點(diǎn)和所述新節(jié)點(diǎn)在所述文件對(duì)象模型樹(shù)中的父節(jié)點(diǎn)進(jìn)行標(biāo)記;
[0020]步驟6,查找所述文件對(duì)象模型樹(shù)中的標(biāo)題節(jié)點(diǎn),提取每個(gè)標(biāo)題節(jié)點(diǎn)的標(biāo)題文本信息;
[0021]步驟7,根據(jù)所述標(biāo)題文本信息,查找所述單樓頁(yè)面的主樓的標(biāo)題文本信息,并查找所述主樓的所述標(biāo)題文本信息在所述文件對(duì)象模型樹(shù)中對(duì)應(yīng)的主樓標(biāo)題節(jié)點(diǎn);
[0022]步驟8,若找到所述主樓標(biāo)題節(jié)點(diǎn),則遍歷所述主樓標(biāo)題節(jié)點(diǎn)及其子節(jié)點(diǎn),否則遍歷所述文件對(duì)象模型樹(shù),在除被標(biāo)記的所述父節(jié)點(diǎn)和所述非關(guān)鍵節(jié)點(diǎn)之外的節(jié)點(diǎn)中,查找文本密度最大的節(jié)點(diǎn),并獲取文本信息作為所述單樓頁(yè)面的正文信息。
[0023]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,所述步驟2還包括:
[0024]步驟21,若所述最大簇只包含兩個(gè)節(jié)點(diǎn),且所述兩個(gè)節(jié)點(diǎn)沒(méi)有公共父節(jié)點(diǎn),則所述論壇頁(yè)面為主樓與跟帖結(jié)構(gòu)不同的兩樓頁(yè)面;
[0025]步驟22,獲取所述兩樓頁(yè)面的每樓時(shí)間串對(duì)應(yīng)節(jié)點(diǎn)的最低公共父節(jié)點(diǎn),獲取所述最低公共父節(jié)點(diǎn)的兒子節(jié)點(diǎn),查找所述兒子節(jié)點(diǎn)中所述每樓時(shí)間串的祖先節(jié)點(diǎn),并將所述祖先節(jié)點(diǎn)作為根節(jié)點(diǎn),生成兩顆文件對(duì)象模型樹(shù);
[0026]步驟23,根據(jù)所述兩顆文件對(duì)象模型樹(shù),通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取所述兩樓頁(yè)面每樓帖子的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
[0027]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,所述步驟2還包括:
[0028]步驟24,獲取所述最大簇包含的節(jié)點(diǎn),并獲取所述節(jié)點(diǎn)的公共父節(jié)點(diǎn),查找所述公共父節(jié)點(diǎn)中出現(xiàn)頻率最高的公共父節(jié)點(diǎn)作為統(tǒng)領(lǐng)節(jié)點(diǎn),并記錄所述統(tǒng)領(lǐng)節(jié)點(diǎn)對(duì)應(yīng)時(shí)間串的節(jié)點(diǎn);
[0029]步驟25,將所述公共父節(jié)點(diǎn)對(duì)應(yīng)時(shí)間串的祖先節(jié)點(diǎn)進(jìn)行標(biāo)記,查找所述公共父節(jié)點(diǎn)的直接子節(jié)點(diǎn),獲取第一個(gè)被標(biāo)記的祖先節(jié)點(diǎn)作為第一樓節(jié)點(diǎn);
[0030]步驟26,獲取與所述最大簇對(duì)應(yīng)的時(shí)間串的正則式,根據(jù)所述正則式查找與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串。
[0031]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,還包括:
[0032]步驟27,若未找到與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串,則所述論壇頁(yè)面為普通多樓頁(yè)面;
[0033]步驟28,對(duì)所述統(tǒng)領(lǐng)節(jié)點(diǎn)的子節(jié)點(diǎn)進(jìn)行聚類(lèi),將包含時(shí)間串最多的一簇作為每樓帖子的統(tǒng)領(lǐng)節(jié)點(diǎn);
[0034]步驟29,以所述每樓帖子的統(tǒng)領(lǐng)節(jié)點(diǎn)作為根,生成每樓帖子的文件對(duì)象模型樹(shù),通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息的方法,獲取每樓帖子的發(fā)帖時(shí)間信息、用戶名信息;
[0035]步驟30,獲取每樓帖子的最大文本密度節(jié)點(diǎn),并根據(jù)所述最大文本密度節(jié)點(diǎn)的信息,對(duì)每樓帖子的節(jié)點(diǎn)進(jìn)行聚類(lèi),并根據(jù)每個(gè)節(jié)點(diǎn)包含的文本長(zhǎng)度,將所述每樓帖子的節(jié)點(diǎn)進(jìn)行賦權(quán)值,將同一簇的每個(gè)節(jié)點(diǎn)進(jìn)行權(quán)值求和,獲取權(quán)值和最大一簇的信息;
[0036]步驟31,根據(jù)所述權(quán)值和最大一簇的信息,查找每樓帖子中滿足所述信息且具有最大文本密度的節(jié)點(diǎn),將所述節(jié)點(diǎn)及其祖先節(jié)點(diǎn)標(biāo)記為關(guān)鍵節(jié)點(diǎn);
[0037]步驟32,獲取每樓帖子中文本密度最大的關(guān)鍵節(jié)點(diǎn),通過(guò)所述步驟29,獲取所述文本密度最大的關(guān)鍵節(jié)點(diǎn)中權(quán)值和最大一簇的信息;
[0038]步驟33,查找每樓帖子中包含所述步驟31中的信息,且文本密度最大的節(jié)點(diǎn),將所述節(jié)點(diǎn)包含的文本信息進(jìn)行拼接,以獲取正文信息。
[0039]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,還包括:
[0040]步驟34,若找到與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串,則所述論壇頁(yè)面為主樓與跟帖結(jié)構(gòu)不同的多樓頁(yè)面;
[0041]步驟35,通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取所述第一樓節(jié)點(diǎn)的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
[0042]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,還包括:
[0043]步驟36,通過(guò)所述普通多樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取除所述第一樓節(jié)點(diǎn)之外的節(jié)點(diǎn)的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
[0044]本發(fā)明還提出一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取系統(tǒng),包括:
[0045]解析模塊,用于對(duì)所述論壇頁(yè)面進(jìn)行文件對(duì)象模型解析,并創(chuàng)建文件對(duì)象模型樹(shù),清除所述文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽,其中將所述無(wú)用標(biāo)簽和所述空標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn),標(biāo)記為非關(guān)鍵節(jié)點(diǎn),以完成清除;
[0046]獲取單樓頁(yè)面發(fā)帖時(shí)間信息模塊,根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間?目息;
[0047]查找模塊,初始化關(guān)鍵字列表和正則式列表,遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)所述初始化關(guān)鍵字列表或所述正則式列表,對(duì)所述網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找;
[0048]獲取單樓頁(yè)面用戶名信息模塊,若所述網(wǎng)頁(yè)地址包含所述關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取所述新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,所述文本信息為所述單樓頁(yè)面的用戶名信息。
[0049]所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取系統(tǒng),還包括:獲取時(shí)間串模塊,用于通過(guò)正則式獲取所述文件對(duì)象模型樹(shù)的所述時(shí)間串。
[0050]由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0051]與以往的論壇帖子頁(yè)面自動(dòng)抽取方法相比,本發(fā)明中提及的方法及系統(tǒng)由于對(duì)帖子頁(yè)面進(jìn)行了分類(lèi),分而治之,利用對(duì)論壇這類(lèi)用戶自產(chǎn)生數(shù)據(jù)的頁(yè)面最為明顯的特征-發(fā)布時(shí)間(絕大多數(shù)論壇頁(yè)面的樓層信息中都有發(fā)表時(shí)間這一關(guān)鍵信息),將以往論壇類(lèi)頁(yè)面自動(dòng)抽取算法中很難處理的單樓頁(yè)面以及主樓跟貼結(jié)構(gòu)不一致的頁(yè)面做了單獨(dú)處理,取得了良好的效果,在完全自動(dòng)化的條件下,達(dá)到了 93%的抽取正確率。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0052]圖1A為帖子頁(yè)面分類(lèi)算法圖;
[0053]圖1B為帖子頁(yè)面分類(lèi)算法圖;
[0054]圖2A為單樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息算法圖;
[0055]圖2B為單樓頁(yè)面提取發(fā)帖正文信息算法圖;
[0056]圖3為主樓與跟帖結(jié)構(gòu)不同的兩樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息和發(fā)帖正文?目息的算法圖;
[0057]圖4Α為普通多樓頁(yè)面提取發(fā)帖人用戶名信息和發(fā)帖時(shí)間的算法圖;
[0058]圖4Β為普通多樓頁(yè)面提取發(fā)帖正文信息的算法圖;
[0059]圖5為主樓與跟貼結(jié)構(gòu)不同的多樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息和發(fā)帖正文?目息的算法圖。
[0060]以下為附圖標(biāo)記:
[0061]步驟100為帖子頁(yè)面分類(lèi)步驟,包括:
[0062]步驟101/102/103/104/105/106/107/108/109/110/111/112/113/114/200/400/500/600 ;
[0063]步驟200為單樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息步驟,包括:
[0064]步驟201/202/203/204/205/206/207/208/209/210/211 ;
[0065]步驟300為單樓頁(yè)面提取發(fā)帖正文信息步驟,包括:
[0066]步驟301/302/303/304/305/306/307/308 ;
[0067]步驟400為主樓與跟帖結(jié)構(gòu)不同的兩樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息和發(fā)帖正文信息步驟,包括:
[0068]步驟401/402/403/404 ;
[0069]步驟500為普通多樓頁(yè)面提取發(fā)帖人用戶名信息和發(fā)帖時(shí)間和發(fā)帖正文信息步驟,包括:
[0070]步驟501/502/503/504/505/506/507/508/509/510 ;
[0071]步驟600為主樓與跟貼結(jié)構(gòu)不同的多樓頁(yè)面提取發(fā)帖時(shí)間和發(fā)帖人用戶名信息和發(fā)帖正文信息步驟,包括:步驟601/602/603。

【具體實(shí)施方式】
[0072]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明的從論壇帖子內(nèi)容頁(yè)面中抽取帖子關(guān)鍵數(shù)據(jù)的方法進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0073]本發(fā)明的從論壇帖子內(nèi)容頁(yè)面抽取關(guān)鍵信息(發(fā)布時(shí)間、發(fā)帖人、發(fā)帖內(nèi)容)的方法,利用論壇數(shù)據(jù)基本由用戶自產(chǎn)生數(shù)據(jù)構(gòu)成,而用戶自產(chǎn)生數(shù)據(jù)又都包含數(shù)據(jù)產(chǎn)生時(shí)間(發(fā)帖時(shí)間)這一特點(diǎn),主要基于時(shí)間串,對(duì)頁(yè)面進(jìn)行分類(lèi)、抽取,很好地解決了之前論壇類(lèi)頁(yè)面自動(dòng)信息抽取方法在處理單樓頁(yè)面以及主樓跟貼結(jié)構(gòu)不一致頁(yè)面時(shí)表現(xiàn)較差地問(wèn)題,在實(shí)際應(yīng)用中表現(xiàn)良好,滿足了系統(tǒng)的需求。
[0074]本發(fā)明利用時(shí)間串的特性,對(duì)頁(yè)面中的時(shí)間串進(jìn)行聚類(lèi),找出最有可能是帖子發(fā)布時(shí)間的時(shí)間串。通過(guò)分析找到的時(shí)間串的特點(diǎn),對(duì)網(wǎng)頁(yè)進(jìn)行分類(lèi)。具體流程如圖1A和圖1B所示,具體步驟如下:
[0075]步驟101讀取網(wǎng)頁(yè),倉(cāng)ij建D0M(文檔對(duì)象模型,Document Object Model)樹(shù)。為了準(zhǔn)確的獲取時(shí)間串所在節(jié)點(diǎn)的相關(guān)信息、以便于后面的聚類(lèi),本發(fā)明對(duì)網(wǎng)頁(yè)進(jìn)行了 DOM解析;
[0076]步驟102清除無(wú)用標(biāo)簽。一些標(biāo)簽明顯不屬于時(shí)間所在的節(jié)點(diǎn)集,比如input、noembed、noscript等等,本發(fā)明先將這些標(biāo)簽通過(guò)標(biāo)記的方式去掉(標(biāo)記為Ν0Τ_C0NTENT_N0DE 節(jié)點(diǎn));
[0077]步驟103清除空標(biāo)簽。主要是一些空節(jié)點(diǎn)(D0M樹(shù)解析時(shí)會(huì)生成一些空文本節(jié)點(diǎn),可能會(huì)影響到后面的文本密度計(jì)算),為之后的正文抽取服務(wù),同樣是通過(guò)標(biāo)記的方式去除(標(biāo)記為N0T_C0NTENT_N0DE節(jié)點(diǎn)),避免了對(duì)DOM樹(shù)直接進(jìn)行刪減操作可能帶來(lái)的程序崩潰;
[0078]步驟104通過(guò)正則式獲取頁(yè)面中所有的時(shí)間串。正則式主要有兩種形式:一種是我們經(jīng)??吹降挠脕?lái)匹配“2013-12-1511:33:52”或者“May 5th2014 11:53”等類(lèi)型時(shí)間串的正則式,比如“ (\d{2,4}) (\D) (\d{l,2}) (\D) (\d{l,2}) (\s) (\d{l,2}) (\D) (\d{l,2})(\s) *$ ” ;還有一種是用于匹配一些類(lèi)似于“ 3天前”、“昨天11:23:15 ”這種類(lèi)型時(shí)間串的正則式,比如“~ (\s)*(((\d{l, 2}) (\s)*(秒前I分鐘前I小時(shí)前I天前I日前I年前))(\s) * ((\d {I, 2}) (\D) (\d {I, 2}) ((\D) (\d {I, 2})) ? ) ? I (昨天 I 前天)(\s) * (\d {1,2})(\D) (\d{l, 2}) ((\D) (\d{l, 2})) ? ) (\s)*$”,前者可以比較明確的區(qū)分時(shí)間串形式的不同,而后者則很困難,因?yàn)楹笳哂锌赡芘c前者任何一種正則式對(duì)應(yīng)的時(shí)間串共同存在于同一個(gè)網(wǎng)頁(yè)中,這里需要對(duì)兩者分別進(jìn)行處理,原則是:前者分門(mén)別類(lèi)地統(tǒng)計(jì),而后者匹配出的時(shí)間串作為公共的時(shí)間串集合加入到前者里面;
[0079]步驟105根據(jù)時(shí)間模式串進(jìn)行聚類(lèi),由時(shí)間串所在的節(jié)點(diǎn)兩兩求公共父節(jié)點(diǎn)。對(duì)于由步驟S4中前者正則表達(dá)式匹配出來(lái)的每一類(lèi)時(shí)間串集合,分別加上后者的公共時(shí)間串集合,然后每一類(lèi)分別進(jìn)行聚類(lèi)。聚類(lèi)的主要依據(jù)是時(shí)間串所處節(jié)點(diǎn)的相關(guān)信息,主要包括父節(jié)點(diǎn)的標(biāo)簽名稱(chēng)、class屬性,以及其父節(jié)點(diǎn)的父節(jié)點(diǎn)(the parent node of theparent node)的相關(guān)屬性,將完全一致的聚為一簇,請(qǐng)注意,由于“幾天前”這種類(lèi)型的時(shí)間串所處的節(jié)點(diǎn)深度一般會(huì)比普通時(shí)間串深一層,一般位于同普通時(shí)間串在一層的〈span〉標(biāo)簽里,所以在統(tǒng)計(jì)“幾天前”這種類(lèi)型的節(jié)點(diǎn)特征時(shí)是取該節(jié)點(diǎn)的父節(jié)點(diǎn)的父節(jié)點(diǎn)(假設(shè)為node_x)的相關(guān)特征,以及node_x的父節(jié)點(diǎn)的相關(guān)特征;
[0080]步驟106取最大簇。遍歷相關(guān)集合(包括步驟S4中前者正則表達(dá)式匹配出來(lái)的每一類(lèi)時(shí)間串集合和公共時(shí)間串集合),取得最大簇,并記錄其對(duì)應(yīng)的時(shí)間模式串的正則表達(dá)式,為后續(xù)的尋找主樓發(fā)帖時(shí)間做儲(chǔ)備;
[0081]步驟107判斷是否為單樓頁(yè)面。獲取了最大簇所對(duì)應(yīng)的所有節(jié)點(diǎn),如果最大簇中只包含一個(gè)節(jié)點(diǎn),則認(rèn)為文章是單樓頁(yè)面,則轉(zhuǎn)到步驟200,否則執(zhí)行步驟109 ;
[0082]步驟109取“最頻繁”公共父節(jié)點(diǎn)。在步驟107中,獲取了最大簇所對(duì)應(yīng)的所有節(jié)點(diǎn),對(duì)這些節(jié)點(diǎn)進(jìn)行兩兩求公共父節(jié)點(diǎn),在得到的所有公共父節(jié)點(diǎn)中,找到出現(xiàn)頻率最大的一個(gè),這就是本發(fā)明所需要尋找的幾乎所有帖子的統(tǒng)領(lǐng)節(jié)點(diǎn)(如果有的話)并記錄該公共父節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串所在的節(jié)點(diǎn),這樣做的主要依據(jù)是:假設(shè)各樓層的發(fā)帖時(shí)間都位于同一層,它們的公共父節(jié)點(diǎn)就是不同樓層的統(tǒng)領(lǐng)節(jié)點(diǎn),就算有引用,不同樓層之間引用所在的節(jié)點(diǎn)的公共父節(jié)點(diǎn)還是所有樓層的統(tǒng)領(lǐng)節(jié)點(diǎn);
[0083]步驟110如果最大簇中只有兩個(gè)節(jié)點(diǎn),而且沒(méi)有找到公共父節(jié)點(diǎn),執(zhí)行步驟400此頁(yè)面為主樓不同(即主樓與跟帖結(jié)構(gòu)不一致)的兩樓頁(yè)面,否則執(zhí)行步驟111 ;
[0084]步驟111將公共節(jié)點(diǎn)所對(duì)應(yīng)的所有時(shí)間串節(jié)點(diǎn)的祖先節(jié)點(diǎn)們標(biāo)記為FATHER_N0DE節(jié)點(diǎn)或祖先節(jié)點(diǎn),尋找該公共節(jié)點(diǎn)的所有直接子節(jié)點(diǎn);
[0085]步驟112找到第一個(gè)標(biāo)記為祖先的節(jié)點(diǎn),作為“第一樓”所在的節(jié)點(diǎn)(不一定是第一樓,因?yàn)橛锌赡苤鳂枪?jié)點(diǎn)特征與跟帖不同,可能主樓還在“第一樓”的前面);
[0086]步驟113從DOM樹(shù)的頭部開(kāi)始遍歷,先序遍歷到“第一樓”為止;
[0087]步驟114根據(jù)之前記錄的最大簇所對(duì)應(yīng)的正則表達(dá)式,尋找是否有相應(yīng)的時(shí)間模式串,如果有,執(zhí)行步驟600,否則執(zhí)行步驟500 ;
[0088]步驟600表明主樓還在前面,且與跟帖不同,頁(yè)面是主樓與跟帖結(jié)構(gòu)不同的多樓頁(yè)面;
[0089]步驟500表明當(dāng)前的第一樓就是主樓,與跟帖并列,頁(yè)面就是普通的多樓頁(yè)面;
[0090]通過(guò)以上分類(lèi)算法,將待抽取頁(yè)面分為四類(lèi),下面分別對(duì)四種頁(yè)面進(jìn)行關(guān)鍵信息抽取:首先,對(duì)單樓頁(yè)面進(jìn)行發(fā)帖時(shí)間和發(fā)帖人的用戶名信息進(jìn)行抽取,如圖2A所示,步驟如下:
[0091]步驟201通過(guò)上述分類(lèi)算法,得到單樓論壇類(lèi)頁(yè)面后,如果發(fā)帖時(shí)間為普通時(shí)間串(比如”2014-3-1012:13”),執(zhí)行步驟203,否則執(zhí)行步驟202 ;
[0092]步驟202如果發(fā)帖時(shí)間類(lèi)似于“三天前”這一類(lèi)的時(shí)間串,則根據(jù)此時(shí)間節(jié)點(diǎn)的子結(jié)點(diǎn)中的em節(jié)點(diǎn)中的屬性進(jìn)行查找,尋找真正的發(fā)帖時(shí)間串;
[0093]步驟203根據(jù)發(fā)帖時(shí)間串所處的節(jié)點(diǎn)直接獲取到發(fā)帖時(shí)間;
[0094]通過(guò)以下方式獲取em節(jié)點(diǎn)中的屬性:
[0095]通常發(fā)帖人的昵稱(chēng)、ID等不為空,并且該昵稱(chēng)、ID通常為一個(gè)超鏈接,鏈接到該用戶所對(duì)應(yīng)的個(gè)人空間或者個(gè)人資料等,因此,本發(fā)明通過(guò)通過(guò)兩種方式來(lái)確定以上超鏈接是否為發(fā)帖人名字所對(duì)應(yīng)的超鏈接,一種是通過(guò)關(guān)鍵字:
[0096],,&uid = ,,&amp ;uid = ,,space-uid-,,,[uid,,,” ? uid = ” ? amp ;uid
_ // // n.I _ // // n.I _ // // 0.I _ // // 0.I _ ” ” I.I _
=,&userid = , &amp ;userid = , I userid = , I amp ;userid = , /uid =","/userid = ",^showuserinfomenu^, "/user/index",” ? user = ",” ? amp ;user =〃,〃&amp ;showuser = 〃, 〃uname〃。
[0097]另外一種是正則表達(dá)式:〃/u\\d+/〃,〃user_\\d+〃,"&u= \\d+〃,"&amp ;u =\\d+"。
[0098]以下為對(duì)單樓頁(yè)面抽取發(fā)帖時(shí)間的具體算法流程:
[0099]步驟204初始化關(guān)鍵字列表-vecAuthorKey ;
[0100]步驟205初始化正則式列表-vecAuthorRegex ;
[0101]步驟206先序遍歷DOM樹(shù)。對(duì)每一個(gè)獲取到的a標(biāo)簽(注意,由于html標(biāo)簽不區(qū)分大小寫(xiě),所以在處理標(biāo)簽名時(shí),一般將標(biāo)簽名轉(zhuǎn)換為小寫(xiě)后再做處理);
[0102]步驟207對(duì)于a標(biāo)簽節(jié)點(diǎn),首先,解析后獲得href屬性?xún)?nèi)的url,然后,對(duì)url進(jìn)行關(guān)鍵字查找,如果包含vecAuthorKey中的某個(gè)關(guān)鍵字,則執(zhí)行步驟209,否則執(zhí)行步驟208 ;
[0103]步驟208通過(guò)vecAuthorRegex中的正則表達(dá)式進(jìn)行查找,如果找到,則執(zhí)行步驟209和步驟210,否則執(zhí)行步驟211 ;
[0104]步驟209需要對(duì)標(biāo)簽進(jìn)行驗(yàn)證,主要是驗(yàn)證以該a標(biāo)簽作為根節(jié)點(diǎn)的子樹(shù)下是否包含文本信息(假設(shè)每個(gè)發(fā)帖人的ID或者昵稱(chēng)不為空),如果包含文本信息,則執(zhí)行步驟210,否則執(zhí)行步驟211 ;
[0105]步驟210獲取文本信息,即發(fā)帖人的用戶名信息;
[0106]步驟211返回判別失敗。
[0107]通過(guò)以上發(fā)帖人抽取算法,獲得了發(fā)帖時(shí)間和發(fā)帖人的昵稱(chēng)(或者用戶名信息)。
[0108]對(duì)于單樓頁(yè)面,很難通過(guò)已經(jīng)找到的時(shí)間串對(duì)全體樓層的統(tǒng)領(lǐng)節(jié)點(diǎn)進(jìn)行直接定位,因?yàn)闆](méi)有其它處于同層的并且結(jié)構(gòu)相同的時(shí)間節(jié)點(diǎn),無(wú)法通過(guò)求解時(shí)間節(jié)點(diǎn)的公共父節(jié)點(diǎn)來(lái)尋找統(tǒng)領(lǐng)節(jié)點(diǎn),而單樓頁(yè)面的內(nèi)容長(zhǎng)度可長(zhǎng)可短,當(dāng)作單記錄頁(yè)面抽取,抽取到噪音信息的可能性很大,因此,本發(fā)明做了一些處理來(lái)盡量避免抽取到噪音信息,以下是具體的算法流程,如圖2B所示,包括:
[0109]步驟301將發(fā)帖時(shí)間的父節(jié)點(diǎn)全部標(biāo)記為FATHER_N0DE節(jié)點(diǎn),假設(shè)發(fā)帖時(shí)間不會(huì)位于正文中,也就是說(shuō)發(fā)帖時(shí)間的父節(jié)點(diǎn)以及所有祖先節(jié)點(diǎn)都不是正文的統(tǒng)領(lǐng)節(jié)點(diǎn),標(biāo)記為FATHER_N0DE的節(jié)點(diǎn)說(shuō)明這些節(jié)點(diǎn)底下包含發(fā)帖時(shí)間或者發(fā)帖人,在計(jì)算正文統(tǒng)領(lǐng)節(jié)點(diǎn)時(shí)會(huì)忽略這類(lèi)節(jié)點(diǎn);
[0110]步驟302將發(fā)帖人的父節(jié)點(diǎn)全部標(biāo)記為FATHER_N0DE節(jié)點(diǎn),理由同步驟301 ;
[0111]步驟303找到title中的文本,作為原始標(biāo)題(這里可以做一些處理,通過(guò)取出經(jīng)由一些分隔符分割的字串,比如”等,去掉“某某版塊”、“某某論壇” 一類(lèi)的噪音信息);
[0112]步驟304 找到疑似標(biāo)題的標(biāo)簽(“hl”、“h2”、“h3”、“h4”、“b”、“Strong”),取出文本,作為候選標(biāo)題;
[0113]步驟305通過(guò)基于字符串最長(zhǎng)公共子序列的相似度算法來(lái)計(jì)算候選標(biāo)題與原始標(biāo)題的相似性;
[0114]步驟306查找到文中的真正標(biāo)題,并記錄標(biāo)題所在的節(jié)點(diǎn),如果找到,執(zhí)行步驟308,否則執(zhí)行步驟307 ;
[0115]步驟307如果找到了標(biāo)題所在的標(biāo)簽,就從標(biāo)題之后的節(jié)點(diǎn)開(kāi)始,依次向后遍歷,在合理的正文可以出現(xiàn)的位置區(qū)間內(nèi),從非N0T_C0NTENT_N0DE節(jié)點(diǎn)(步驟S2和S3中的無(wú)用標(biāo)簽和空標(biāo)簽)以及非FATHER_N0DE節(jié)點(diǎn)中尋找文本密度最大的節(jié)點(diǎn)包含的文本信息,將其作為正文;
[0116]步驟308否則從DOM樹(shù)的根節(jié)點(diǎn)開(kāi)始,依次向后遍歷,在合理的正文可以出現(xiàn)的位置區(qū)間內(nèi),從非N0T_C0NTENT_N0DE節(jié)點(diǎn)(步驟S2和S3中的無(wú)用標(biāo)簽和空標(biāo)簽)以及非FATHER_N0DE節(jié)點(diǎn)中尋找文本密度最大的節(jié)點(diǎn)包含的文本信息,將其作為正文。
[0117]通過(guò)以上算法,將單樓頁(yè)面的關(guān)鍵信息都抽取完畢,然后,開(kāi)始處理主樓與跟貼結(jié)構(gòu)不同且只有兩樓的帖子頁(yè)面,只有兩樓并且兩樓的結(jié)構(gòu)還不一樣,這樣的頁(yè)面比較特殊。既不能被當(dāng)作單記錄頁(yè)面進(jìn)行抽取,又無(wú)法利用跟帖相似性來(lái)抽取跟帖的內(nèi)容,針對(duì)主樓與跟貼結(jié)構(gòu)不同且只有兩樓的帖子頁(yè)面,本發(fā)明專(zhuān)門(mén)設(shè)計(jì)了一種方法,來(lái)將網(wǎng)頁(yè)分成兩塊,如圖3所示,具體步驟如下:
[0118]步驟401對(duì)于兩樓頁(yè)面,尋找兩個(gè)時(shí)間串所在節(jié)點(diǎn)(假設(shè)為A節(jié)點(diǎn)和B節(jié)點(diǎn))的最低公共父節(jié)點(diǎn),此公共父節(jié)點(diǎn)的所有兒子節(jié)點(diǎn)中,有兩個(gè)節(jié)點(diǎn)(假設(shè)為C節(jié)點(diǎn)和D節(jié)點(diǎn))分別是之前兩個(gè)時(shí)間串所在節(jié)點(diǎn)的祖先節(jié)點(diǎn),也就是說(shuō)C節(jié)點(diǎn)是A節(jié)點(diǎn)的祖先節(jié)點(diǎn),D節(jié)點(diǎn)是B節(jié)點(diǎn)的祖先節(jié)點(diǎn)。取C節(jié)點(diǎn)和D節(jié)點(diǎn)分別作為第一樓和第二樓的統(tǒng)領(lǐng)節(jié)點(diǎn)(即根節(jié)點(diǎn))。
[0119]步驟402根據(jù)所述兩個(gè)根節(jié)點(diǎn),生成兩個(gè)子樹(shù),對(duì)于以?xún)蓚€(gè)樓層的根節(jié)點(diǎn)為根的兩個(gè)子樹(shù),看作為兩棵獨(dú)立DOM樹(shù),對(duì)于兩個(gè)DOM樹(shù)分別按照步驟200抽取發(fā)帖人、發(fā)帖時(shí)間以及通過(guò)步驟300抽取發(fā)帖內(nèi)容(正文信息)。
[0120]通過(guò)以上算法,將兩樓頁(yè)面的關(guān)鍵信息抽取完畢,再然后,開(kāi)始處理普通多樓頁(yè)面,如圖4A所示,首先獲取發(fā)帖人的用戶名信息和發(fā)帖時(shí)間,具體步驟如下:
[0121]步驟501在步驟109中獲取所有樓層的根節(jié)點(diǎn)之后,對(duì)統(tǒng)領(lǐng)節(jié)點(diǎn)下的子結(jié)點(diǎn)進(jìn)行聚類(lèi),將包含時(shí)間串并且個(gè)數(shù)最多的一簇作為各個(gè)樓層的統(tǒng)領(lǐng)節(jié)點(diǎn);
[0122]步驟502將各個(gè)樓層看作為以其統(tǒng)領(lǐng)節(jié)點(diǎn)為根的DOM樹(shù),通過(guò)步驟200,獲取各樓層的發(fā)帖時(shí)間、發(fā)帖人。
[0123]針對(duì)多樓頁(yè)面的帖子正文抽取,需要統(tǒng)計(jì)各個(gè)樓層的文本密度,并對(duì)找到的節(jié)點(diǎn)進(jìn)行聚類(lèi),找到最有可能是帖子正文所在位置的統(tǒng)領(lǐng)節(jié)點(diǎn),具體步驟如下,如圖4B所示:
[0124]步驟503首先需要分別找到各樓層自身的統(tǒng)領(lǐng)節(jié)點(diǎn)。在之前的頁(yè)面分類(lèi)算法中,已經(jīng)獲取了公共父節(jié)點(diǎn),也就是所有樓層共同的統(tǒng)領(lǐng)節(jié)點(diǎn)(假設(shè)為ConNode),并對(duì)各個(gè)相應(yīng)時(shí)間串所在節(jié)點(diǎn)的祖先節(jié)點(diǎn)進(jìn)行了標(biāo)記,取出ConNode的所有兒子節(jié)點(diǎn),如果節(jié)點(diǎn)已經(jīng)被標(biāo)記為時(shí)間串的祖先節(jié)點(diǎn),則說(shuō)明此兒子節(jié)點(diǎn)下面包含時(shí)間串,也就是說(shuō),此兒子節(jié)點(diǎn)是某一樓層的統(tǒng)領(lǐng)節(jié)點(diǎn),取出所有的樓層統(tǒng)領(lǐng)節(jié)點(diǎn);
[0125]步驟504抽取第一樓。首先取出第一樓,是因?yàn)楸M管通過(guò)之前的分類(lèi),認(rèn)為主樓與跟帖結(jié)構(gòu)一致,但在現(xiàn)實(shí)中,通過(guò)之前的分類(lèi)算法只能保證主樓的所有信息均與跟帖位于同一統(tǒng)領(lǐng)節(jié)點(diǎn)之下,并不能保證主樓與跟帖結(jié)構(gòu)特征完全一致,如果每個(gè)樓層分別抽取,主樓與跟帖結(jié)構(gòu)是否一致也就無(wú)關(guān)緊要了,但是需要對(duì)各樓層找到的結(jié)果進(jìn)行匯總,并根據(jù)節(jié)點(diǎn)特征確定各個(gè)樓層統(tǒng)一的正文統(tǒng)領(lǐng)節(jié)點(diǎn),而主樓與跟帖結(jié)構(gòu)不一致可能會(huì)對(duì)之后計(jì)算正文的統(tǒng)領(lǐng)節(jié)點(diǎn)帶來(lái)嚴(yán)重的影響,因?yàn)橹饕峭ㄟ^(guò)每樓層找到的正文統(tǒng)領(lǐng)節(jié)點(diǎn)下的文本長(zhǎng)度來(lái)為每個(gè)特征的節(jié)點(diǎn)加權(quán),主樓不一致并且主樓內(nèi)容很長(zhǎng)可能會(huì)對(duì)最終正文統(tǒng)領(lǐng)節(jié)點(diǎn)的確定帶來(lái)毀滅性的打擊,因此,本發(fā)明將第一樓特殊處理;
[0126]步驟505計(jì)算各樓層的最大文本密度節(jié)點(diǎn)。這主要是為了讓每一層樓中各個(gè)最佳文本得到“出現(xiàn)”的機(jī)會(huì),總體來(lái)說(shuō),在論壇類(lèi)網(wǎng)頁(yè)里面,純文本越長(zhǎng)的節(jié)點(diǎn)越有可能是正文的一部分;
[0127]步驟506分別取出各樓層的最大文本密度節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)信息(父節(jié)點(diǎn)及其“爺爺”節(jié)點(diǎn)的標(biāo)簽名加class屬性名)對(duì)各個(gè)節(jié)點(diǎn)進(jìn)行聚類(lèi),然后根據(jù)每個(gè)節(jié)點(diǎn)所帶的文本長(zhǎng)度為節(jié)點(diǎn)賦權(quán)值,同一簇的各個(gè)節(jié)點(diǎn)權(quán)值求和,最后,找到權(quán)值和最大的一簇,并記錄其特征或信息。這主要是為了防止部分樓層正文很短,導(dǎo)致噪音信息“上位”,通過(guò)多樓合作,能夠共同將噪音信息排除在外;
[0128]步驟507根據(jù)上一步找到的特征,在各個(gè)樓層里面尋找滿足這個(gè)信息的且具有最大文本密度的節(jié)點(diǎn),并將它以及它的各祖先節(jié)點(diǎn)標(biāo)記為C0NTENT_N0DE節(jié)點(diǎn)(顧名思義,是說(shuō)此節(jié)點(diǎn)以及其祖先節(jié)點(diǎn)可能是要找的正文統(tǒng)領(lǐng)節(jié)點(diǎn))。這樣做是為了給之后使用文本密度和查找正文的統(tǒng)領(lǐng)節(jié)點(diǎn)時(shí)不至于找偏,現(xiàn)在找到的節(jié)點(diǎn)是正文的統(tǒng)領(lǐng)節(jié)點(diǎn),或者是正文的一部分。也就是說(shuō),正文統(tǒng)領(lǐng)節(jié)點(diǎn)統(tǒng)領(lǐng)的子樹(shù)必須包含此節(jié)點(diǎn);
[0129]步驟508分別取出各樓層擁有最文本大密度且標(biāo)記為C0NTENT_N0DE (關(guān)鍵節(jié)點(diǎn))的節(jié)點(diǎn),并像步驟506 —樣對(duì)各個(gè)節(jié)點(diǎn)進(jìn)行聚類(lèi),然后根據(jù)每個(gè)節(jié)點(diǎn)所帶的文本長(zhǎng)度為節(jié)點(diǎn)賦權(quán)值,同一簇的各個(gè)節(jié)點(diǎn)權(quán)值求和,最后,找到權(quán)值和最大的一簇,并記錄其特征或信息,統(tǒng)計(jì)節(jié)點(diǎn),找到最大可能是正文的統(tǒng)領(lǐng)節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0130]步驟509根據(jù)步驟508中取到的節(jié)點(diǎn)特征,尋找各樓層擁有該節(jié)點(diǎn)特征并且文本密度和最大的節(jié)點(diǎn),如果找不到相應(yīng)的節(jié)點(diǎn),則按普通的方式遍歷尋找擁有最大文本密度的節(jié)點(diǎn);
[0131]步驟510將各個(gè)樓層找到的節(jié)點(diǎn)統(tǒng)領(lǐng)的子樹(shù)分別拼接成文本,這樣,各樓層的正文就抽取完成了。
[0132]最后,處理主樓與跟貼結(jié)構(gòu)不同的多樓頁(yè)面,如圖5所示,具體步驟如下:
[0133]步驟601找到多樓頁(yè)面的“第一樓”。(此處第一樓可能是頁(yè)面中的第二樓,這里的“第一”是指各樓層統(tǒng)領(lǐng)節(jié)點(diǎn)之下的第一樓,如果第一樓結(jié)構(gòu)不同的話,有可能真正的第一樓在此統(tǒng)領(lǐng)節(jié)點(diǎn)之前);
[0134]步驟602在多樓頁(yè)面之前尋找第一樓的關(guān)鍵信息,通過(guò)步驟200和步驟300獲取發(fā)帖時(shí)間、發(fā)帖人用戶名信息和正文信息;
[0135]步驟603抽取除第一樓之外的樓層的關(guān)鍵信息,通過(guò)步驟500獲取發(fā)帖時(shí)間、發(fā)帖人用戶名信息和正文信息。
[0136]至此,所有流程均結(jié)束。
[0137]本發(fā)明的系統(tǒng)包括如下模塊:
[0138]解析模塊,用于對(duì)所述論壇頁(yè)面進(jìn)行文件對(duì)象模型解析,并創(chuàng)建文件對(duì)象模型樹(shù),清除所述文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽,其中將所述無(wú)用標(biāo)簽和所述空標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn),標(biāo)記為非關(guān)鍵節(jié)點(diǎn),以完成清除。
[0139]獲取單樓頁(yè)面發(fā)帖時(shí)間信息模塊,根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間信息。
[0140]查找模塊,初始化關(guān)鍵字列表和正則式列表,遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)所述初始化關(guān)鍵字列表或所述正則式列表,對(duì)所述網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找。
[0141]獲取單樓頁(yè)面用戶名信息模塊,若所述網(wǎng)頁(yè)地址包含所述關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取所述新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,所述文本信息為所述單樓頁(yè)面的用戶名信息。
[0142]獲取時(shí)間串模塊,用于通過(guò)正則式獲取所述文件對(duì)象模型樹(shù)的所述時(shí)間串。
【權(quán)利要求】
1.一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,包括: 步驟1,對(duì)所述論壇頁(yè)面進(jìn)行文件對(duì)象模型解析,并創(chuàng)建文件對(duì)象模型樹(shù),清除所述文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽,其中將所述無(wú)用標(biāo)簽和所述空標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn),標(biāo)記為非關(guān)鍵節(jié)點(diǎn),以完成清除; 步驟2,根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間信息; 步驟3,初始化關(guān)鍵字列表和正則式列表,遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)所述關(guān)鍵字列表或所述正則式列表,對(duì)所述網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找; 步驟4,若所述網(wǎng)頁(yè)地址包含所述關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取所述新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,所述文本信息為所述單樓頁(yè)面的用戶名信息。
2.如權(quán)利要求1所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,所述步驟I和所述步驟2之間還包括: 通過(guò)正則式獲取所述文件對(duì)象模型樹(shù)的所述時(shí)間串。
3.如權(quán)利要求1所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,還包括: 步驟5,對(duì)所述單獨(dú)節(jié)點(diǎn)和所述新節(jié)點(diǎn)在所述文件對(duì)象模型樹(shù)中的父節(jié)點(diǎn)進(jìn)行標(biāo)記;步驟6,查找所述文件對(duì)象模型樹(shù)中的標(biāo)題節(jié)點(diǎn),提取每個(gè)標(biāo)題節(jié)點(diǎn)的標(biāo)題文本信息;步驟7,根據(jù)所述標(biāo)題文本信息,查找所述單樓頁(yè)面的主樓的標(biāo)題文本信息,并查找所述主樓的所述標(biāo)題文本信息在所述文件對(duì)象模型樹(shù)中對(duì)應(yīng)的主樓標(biāo)題節(jié)點(diǎn); 步驟8,若找到所述主樓標(biāo)題節(jié)點(diǎn),則遍歷所述主樓標(biāo)題節(jié)點(diǎn)及其子節(jié)點(diǎn),否則遍歷所述文件對(duì)象模型樹(shù),在除被標(biāo)記的所述父節(jié)點(diǎn)和所述非關(guān)鍵節(jié)點(diǎn)之外的節(jié)點(diǎn)中,查找文本密度最大的節(jié)點(diǎn),并獲取文本信息作為所述單樓頁(yè)面的正文信息。
4.如權(quán)利要求1或3所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,所述步驟2還包括: 步驟21,若所述最大簇只包含兩個(gè)節(jié)點(diǎn),且所述兩個(gè)節(jié)點(diǎn)沒(méi)有公共父節(jié)點(diǎn),則所述論壇頁(yè)面為主樓與跟帖結(jié)構(gòu)不同的兩樓頁(yè)面; 步驟22,獲取所述兩樓頁(yè)面的每樓時(shí)間串對(duì)應(yīng)節(jié)點(diǎn)的最低公共父節(jié)點(diǎn),獲取所述最低公共父節(jié)點(diǎn)的兒子節(jié)點(diǎn),查找所述兒子節(jié)點(diǎn)中所述每樓時(shí)間串的祖先節(jié)點(diǎn),并將所述祖先節(jié)點(diǎn)作為根節(jié)點(diǎn),生成兩顆文件對(duì)象模型樹(shù); 步驟23,根據(jù)所述兩顆文件對(duì)象模型樹(shù),通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取所述兩樓頁(yè)面每樓帖子的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
5.如權(quán)利要求1所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,所述步驟2還包括: 步驟24,獲取所述最大簇包含的節(jié)點(diǎn),并獲取所述節(jié)點(diǎn)的公共父節(jié)點(diǎn),查找所述公共父節(jié)點(diǎn)中出現(xiàn)頻率最高的公共父節(jié)點(diǎn)作為統(tǒng)領(lǐng)節(jié)點(diǎn),并記錄所述統(tǒng)領(lǐng)節(jié)點(diǎn)對(duì)應(yīng)時(shí)間串的節(jié)占.^ \\\ ? 步驟25,將所述公共父節(jié)點(diǎn)對(duì)應(yīng)時(shí)間串的祖先節(jié)點(diǎn)進(jìn)行標(biāo)記,查找所述公共父節(jié)點(diǎn)的直接子節(jié)點(diǎn),獲取第一個(gè)被標(biāo)記的祖先節(jié)點(diǎn)作為第一樓節(jié)點(diǎn); 步驟26,獲取與所述最大簇對(duì)應(yīng)的時(shí)間串的正則式,根據(jù)所述正則式查找與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串。
6.如權(quán)利要求1或3或5所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,還包括: 步驟27,若未找到與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串,則所述論壇頁(yè)面為普通多樓頁(yè)面; 步驟28,對(duì)所述統(tǒng)領(lǐng)節(jié)點(diǎn)的子節(jié)點(diǎn)進(jìn)行聚類(lèi),將包含時(shí)間串最多的一簇作為每樓帖子的統(tǒng)領(lǐng)節(jié)點(diǎn); 步驟29,以所述每樓帖子的統(tǒng)領(lǐng)節(jié)點(diǎn)作為根,生成每樓帖子的文件對(duì)象模型樹(shù),通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息的方法,獲取每樓帖子的發(fā)帖時(shí)間信息、用戶名信息; 步驟30,獲取每樓帖子的最大文本密度節(jié)點(diǎn),并根據(jù)所述最大文本密度節(jié)點(diǎn)的信息,對(duì)每樓帖子的節(jié)點(diǎn)進(jìn)行聚類(lèi),并根據(jù)每個(gè)節(jié)點(diǎn)包含的文本長(zhǎng)度,將所述每樓帖子的節(jié)點(diǎn)進(jìn)行賦權(quán)值,將同一簇的每個(gè)節(jié)點(diǎn)進(jìn)行權(quán)值求和,獲取權(quán)值和最大一簇的信息; 步驟31,根據(jù)所述權(quán)值和最大一簇的信息,查找每樓帖子中滿足所述信息且具有最大文本密度的節(jié)點(diǎn),將所述節(jié)點(diǎn)及其祖先節(jié)點(diǎn)標(biāo)記為關(guān)鍵節(jié)點(diǎn); 步驟32,獲取每樓帖子中文本密度最大的關(guān)鍵節(jié)點(diǎn),通過(guò)所述步驟29,獲取所述文本密度最大的關(guān)鍵節(jié)點(diǎn)中權(quán)值和最大一簇的信息; 步驟33,查找每樓帖子中包含所述步驟31中的信息,且文本密度最大的節(jié)點(diǎn),將所述節(jié)點(diǎn)包含的文本信息進(jìn)行拼接,以獲取正文信息。
7.如權(quán)利要求1或3或5所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,還包括: 步驟34,若找到與所述第一樓節(jié)點(diǎn)對(duì)應(yīng)的時(shí)間串,則所述論壇頁(yè)面為主樓與跟帖結(jié)構(gòu)不同的多樓頁(yè)面; 步驟35,通過(guò)所述單樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取所述第一樓節(jié)點(diǎn)的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
8.如權(quán)利要求6所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取方法,其特征在于,還包括: 步驟36,通過(guò)所述普通多樓頁(yè)面的獲取發(fā)帖時(shí)間信息、用戶名信息、正文信息的方法,獲取除所述第一樓節(jié)點(diǎn)之外的節(jié)點(diǎn)的發(fā)帖時(shí)間信息、用戶名信息、正文信息。
9.一種基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取系統(tǒng),其特征在于,包括: 解析模塊,用于對(duì)所述論壇頁(yè)面進(jìn)行文件對(duì)象模型解析,并創(chuàng)建文件對(duì)象模型樹(shù),清除所述文件對(duì)象模型樹(shù)中的無(wú)用標(biāo)簽和空標(biāo)簽,其中將所述無(wú)用標(biāo)簽和所述空標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn),標(biāo)記為非關(guān)鍵節(jié)點(diǎn),以完成清除; 獲取單樓頁(yè)面發(fā)帖時(shí)間信息模塊,根據(jù)所述時(shí)間串,對(duì)所述文件對(duì)象模型樹(shù)進(jìn)行聚類(lèi),生成多個(gè)聚類(lèi)集合,遍歷所述聚類(lèi)集合,獲取最大簇,若所述最大簇只包含一個(gè)單獨(dú)節(jié)點(diǎn),則所述論壇頁(yè)面為單樓頁(yè)面,根據(jù)所述單獨(dú)節(jié)點(diǎn)的時(shí)間串,獲取所述單樓頁(yè)面的發(fā)帖時(shí)間信息; 查找模塊,初始化關(guān)鍵字列表和正則式列表,遍歷所述文件對(duì)象模型樹(shù),獲取包含網(wǎng)頁(yè)地址的新節(jié)點(diǎn),通過(guò)所述初始化關(guān)鍵字列表或所述正則式列表,對(duì)所述網(wǎng)頁(yè)地址進(jìn)行關(guān)鍵字查找或正則式查找; 獲取單樓頁(yè)面用戶名信息模塊,若所述網(wǎng)頁(yè)地址包含所述關(guān)鍵字列表中的關(guān)鍵字或所述正則式列表中的正則式,則獲取所述新節(jié)點(diǎn)及其子節(jié)點(diǎn)包含的文本信息,所述文本信息為所述單樓頁(yè)面的用戶名信息。
10.如權(quán)利要求9所述的基于時(shí)間串的論壇頁(yè)面信息自動(dòng)抽取系統(tǒng),其特征在于,還包括:獲取時(shí)間串模塊,用于通過(guò)正則式獲取所述文件對(duì)象模型樹(shù)的所述時(shí)間串。
【文檔編號(hào)】G06F17/30GK104268148SQ201410429698
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】程學(xué)旗, 郗家貞, 郭巖, 劉悅, 俞曉明, 趙嶺 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1