一種基于蟻群算法的網(wǎng)頁類特征向量提取方法
【專利摘要】本發(fā)明涉及一種利用改進的蟻群算法提取特征詞,具體過程:在預處理時,將所有信息存取到hash表中,其中coco_prepare存取每篇文章的信息,包括文章的id和每個詞及其出現(xiàn)的次數(shù);readhdfs_prepare存取每個類的訓練集的統(tǒng)計信息,包括每個詞的詞頻,文檔數(shù),和類名共現(xiàn)的次數(shù);設置蟻群算法的參數(shù):螞蟻個數(shù)M;迭代次數(shù)N;螞蟻走的步數(shù)即特征詞個數(shù)K;初始化路徑信息素矩陣adMatrixs;局部更新衰減速率p1和全局更新衰減速率p2;螞蟻釋放信息素量m;本發(fā)明首次引入蟻群算法解決在沒有準確樣本集的情況下為類提取準確的特征向量的問題。
【專利說明】—種基于蟻群算法的網(wǎng)頁類特征向量提取方法
【技術領域】
[0001 ] 本發(fā)明涉及文本挖掘,應用于網(wǎng)頁分類。
【背景技術】
[0002]Web文本挖掘就是從海量的Web網(wǎng)頁中提取出有用信息的一種方法和工具,其中,網(wǎng)頁分類是其主要的一個方面。眾所周知,在機器學習領域訓練自己的分類器的前提是,要有能夠準確代表該類的樣本集,用來做訓練集和測試集。樣本集獲取的途徑主要有三個:
(I)利用現(xiàn)有的公開的語料庫;(2)人工根據(jù)類名收集對應的樣本集;(3)利用網(wǎng)絡爬蟲。根據(jù)實際需求,類名是根據(jù)不同需求定義的,方法(I)語料庫少不足以滿足實際的需要,方法(2)耗時耗力,所以現(xiàn)實中會采用方法(3)來獲取訓練集。但互聯(lián)網(wǎng)信息復雜冗余,如何從獲取的不是很準確的樣本集中提煉出精確的信息作為類的特征值并獲得每個特征詞的權重值,又不至于過于復雜使學習算法無法處理。這是我們主要解決的問題。
[0003]蟻群算法,是一種用來在圖中尋找最優(yōu)路徑的幾率型算法,是一種模擬進化算法。蟻群優(yōu)化算法已應用于許多組合優(yōu)化問題,在實際情況中,由于候選特征集中的特征詞很多,而需要的最能夠代表一個類的特征詞個數(shù)較少而且準確,所以,這一問題正好是蟻群算法可以解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明在沒有標準的文本訓練集的情況下,通過網(wǎng)絡爬蟲獲取樣本集,顯然這樣的樣本集包含很多廣告等噪音信息,這些信息的存在利用普通的文本向量提取算法并不能獲得準確的類的特征向量。為了解決這一問題,我們使用四個度量值的加權值來確定螞蟻選擇該詞的可能性,分別是詞頻、文檔頻率、特征詞與類名的共現(xiàn)率以及特征詞與特征詞之間的共現(xiàn)率四個方面。以此來設計蟻群算法在可接受的復雜度范圍內(nèi)提取出精確的類的特征向量。構建出來的特征向量作為分類器的重要部分,用作網(wǎng)頁分類。
[0005]本發(fā)明給出的技術方案為:
一種利用改進的蟻群算法提取特征詞,其特征在于,具體過程:
在預處理時,將所有信息存取到hash表中,其中coco_prepare存取每篇文章的信息,包括文章的id和每個詞及其出現(xiàn)的次數(shù);readhdfs_prepare存取每個類的訓練集的統(tǒng)計信息,包括每個詞的詞頻,文檔數(shù),和類名共現(xiàn)的次數(shù)。設置蟻群算法的參數(shù):螞蟻個數(shù)M ;迭代次數(shù)N ;螞蟻走的步數(shù)即特征詞個數(shù)K ;初始化路徑信息素矩陣adMatrixs ;局部更新衰減速率Pl和全局更新衰減速率P2 ;螞蟻釋放信息素量m。
[0006]第一步,將M只螞蟻隨機放到第一個詞上,由于候選集合大,人為的限制螞蟻的隨機范圍,具體做法為:計算每個特征詞的tf*Idf值,取出值最大的前20-30個作為螞蟻第一條路徑的隨機范圍。
[0007]第二步,對每個螞蟻,維護一張禁忌表result,該表中存有螞蟻走過的詞,在下一步的候選集candidate中排除該表中的所有詞。在選擇的過程中,按照以下步驟計算被選擇的可能性:
(1)從表readhdfs_prepare中取出該詞的詞頻tf,并獲得所有詞中最大的詞頻tf_max和最小的詞頻 tf_min,進行歸一化處理:tf=(tf_tf_min)/ (tf_max-tf_min);
(2)從表readhdfs_prepare中取出該詞的文檔數(shù)df,并獲得所有詞中最大的詞頻df_max 和最小的詞頻 df_min,進行歸一化處理:df = (df_df_min) / (df_max-df_min);
(3)從表readhdfs_prepare中取出該詞同類名的共現(xiàn)數(shù)co,并獲得所有詞中最大的詞頻 co_max 和最小的詞頻 co_min,進行歸一化處理:co= (co_co_min) / (co_max-co_min);
(4)從表coco_prepare中獲得result表中所有的詞和該詞的共現(xiàn)次數(shù)之和coco,并計算得出所有的詞中共現(xiàn)的最大值coco_max和最小值coco_min,并進行歸一化處理:coco=(coco_coco_min)/(coco_max_coco_min);
(5)獲得對應路徑上的信息素值r;
(6)根據(jù)四部分所占的比例tf_per,df_per, co_per, coco_per計算被選擇的可能性p=tf_per氺tf+df_per氺df+co_per氺co+coco_per氺coco+r;
第三步,在所有候選詞計算完成之后,選擇P值最大的那個詞作為螞蟻此次所選的詞,并記錄下該詞的權重值,將該詞加進該螞蟻的禁忌表result中,從該螞蟻的候選集中刪除該詞,繼續(xù)走下一步。
[0008]第四步,當所有螞蟻完成K步之后,獲得M條路徑更新路徑的信息素含量,更新公式為:r=(l_pl)*r+pl*m;
第五步,從M條路徑中選取最優(yōu)的一條路徑并記錄最優(yōu)路徑的適應度值為fit_best進行全局更新,更新該路徑上沒個特征詞的信息素含量為:r= (l-p2)*r+p2*(l/fit_best);
第六步,判斷迭代次數(shù)是否小于N,如果是,繼續(xù)下一次迭代,重復第一到第五步,完成局部特征值提取。如果等于N,則最后一次迭代的最優(yōu)路徑中的詞即為實際所要的能夠代表該類的特征詞。
[0009]本發(fā)明技術方案的創(chuàng)新點及其有益效果:
1、首次引入蟻群算法解決在沒有準確樣本集的情況下為類提取準確的特征向量的問題。在實際訓練分類器的時候,就不會苦于沒有很準確的訓練集或者耗費大量的時間和人力去人工收集樣本集或者是選擇在分類的精確度上讓步。
[0010]2、在考慮選擇特征詞時,首次提出將特征詞和類名的共現(xiàn)率和特征詞與特征詞的共現(xiàn)率作為選擇一個詞作為特征詞的判斷依據(jù)。
[0011]3、限制螞蟻第一次選擇的范圍,采用值作為考量一個詞對類的代表度,將螞蟻的第一步隨機范圍限制在tf*1 df值較大的范圍內(nèi),使得準確率更高。
【專利附圖】
【附圖說明】
[0012]下面結合附圖和實施方式對本發(fā)明作進一步的詳細說明:
圖1為類的結構圖。
[0013]圖2為類的特征詞提取過程。
[0014]圖3為改進的蟻群算法提取特征詞。
【具體實施方式】[0015]本發(fā)明是建立在傳統(tǒng)的搜索引擎的基礎之上,根據(jù)DMOZ的人工分類目錄,提取出類,然后利用網(wǎng)絡爬蟲根據(jù)類名爬取全文搜索引擎搜索結果的前200條結果,排除網(wǎng)頁標簽、廣告等噪音信息后提取出網(wǎng)頁正文作為樣本集。然后利用分詞器對訓練集進行分詞,去除停用詞和低頻詞,統(tǒng)計出每篇文章每個詞的詞頻、該詞出現(xiàn)的文檔總數(shù)、該詞和類名共現(xiàn)的次數(shù)、總的文章數(shù)。最后利用改進的蟻群算法提取特征詞并獲得其權重值,達到獲得類及其特征詞的目的。類的具體結構如圖1所示。如此構建好了分類器。用分類器,對爬取的信息進行分類整理,然后根據(jù)索引網(wǎng)構建器對分好類的網(wǎng)頁進行構建索引網(wǎng),方便對于用戶服務流程的推薦,然后將構建的結果存入數(shù)據(jù)庫。
[0016]本發(fā)明基于改進的蟻群算法實現(xiàn)類特征詞的提取是通過利用能夠?qū)崿F(xiàn)組合優(yōu)化的蟻群算法對于想要獲得精確的分類器但是卻沒有準確的樣本集的前提下,從高維的特征詞候選集合中提取出能夠代表特定類的特征詞,為獲取一個準確的分類器打下基礎。
[0017]本發(fā)明類特征詞的提取的具體實現(xiàn)步驟如圖2所示:
I)將類名作為現(xiàn)有搜索引擎的關鍵詞,利用網(wǎng)絡爬蟲爬取搜索結果的前200條信息及網(wǎng)頁內(nèi)容。
[0018]2)排除網(wǎng)頁標簽,廣告等噪音信息提取出網(wǎng)頁正文作為該類的樣本集。
[0019]3)利用分詞器對訓練集進行分詞,去除停用詞和低頻詞。
[0020]4)統(tǒng)計每篇文章每個詞的詞頻,該詞出現(xiàn)的文檔總數(shù),該詞和類名共現(xiàn)的次數(shù),總的文章數(shù)。
[0021]5)利用改進的蟻群算法提取特征詞。
[0022]具體的說,所述利用改進的蟻群算法提取特征詞,其具體過程如圖3所示:
在預處理時,將所有信息存取到hash表中,其中coco_prepare存取每篇文章的信息,包括文章的id和每個詞及其出現(xiàn)的次數(shù);readhdfs_prepare存取每個類的訓練集的統(tǒng)計信息,包括每個詞的詞頻,文檔數(shù),和類名共現(xiàn)的次數(shù)。設置蟻群算法的參數(shù):螞蟻個數(shù)M ;迭代次數(shù)N ;螞蟻走的步數(shù)即特征詞個數(shù)K ;初始化路徑信息素矩陣adMatrixs ;局部更新衰減速率Pl和全局更新衰減速率P2 ;螞蟻釋放信息素量m。
[0023]第一步,將M只螞蟻隨機放到第一個詞上,由于候選集合大,人為的限制螞蟻的隨機范圍,具體做法為:計算每個特征詞的tf*Idf值,取出值最大的前20個作為螞蟻第一條路徑的隨機范圍。
[0024]第二步,對每個螞蟻,維護一張禁忌表result,該表中存有螞蟻走過的詞,在下一步的候選集candidate中排除該表中的所有詞。在選擇的過程中,按照以下步驟計算被選擇的可能性:
(1)從表readhdfs_prepare中取出該詞的詞頻tf,并獲得所有詞中最大的詞頻tf_max和最小的詞頻 tf_min,進行歸一化處理:tf=(tf_tf_min)/ (tf_max-tf_min);
(2)從表readhdfs_prepare中取出該詞的文檔數(shù)df,并獲得所有詞中最大的詞頻df_max 和最小的詞頻 df_min,進行歸一化處理:df= (df_df_min) / (df_max-df_min);
(3)從表readhdfs_prepare中取出該詞同類名的共現(xiàn)數(shù)co,并獲得所有詞中最大的詞頻 co_max 和最小的詞頻 co_min,進行歸一化處理:co= (co_co_min) / (co_max-co_min);
(4)從表coco_prepare中獲得result表中所有的詞和該詞的共現(xiàn)次數(shù)之和coco,并計算得出所有的詞中共現(xiàn)的最大值coco_max和最小值coco_min,并進行歸一化處理:coco=(coco_coco_min)/(coco_max_coco_min);
(5)獲得對應路徑上的信息素值r;
(6)根據(jù)四部分所占的比例tf_per,df_per, co_per, coco_per計算被選擇的可能性p=tf_per氺tf+df_per氺df+co_per氺co+coco_per氺coco+r;
第三步,在所有候選詞計算完成之后,選擇P值最大的那個詞作為螞蟻此次所選的詞,并記錄下該詞的權重值,將該詞加進該螞蟻的禁忌表result中,從該螞蟻的候選集中刪除該詞,繼續(xù)走下一步。
[0025]第四步,當所有螞蟻完成K步之后,獲得M條路徑更新路徑的信息素含量,更新公式為:r=(l_pl)*r+pl*m;
第五步,從M條路徑中選取最優(yōu)的一條路徑并記錄最優(yōu)路徑的適應度值為fit_best進行全局更新,更新該路徑上沒個特征詞的信息素含量為:r= (l-p2)*r+p2*(l/fit_best);
第六步,繼續(xù)下一次迭代,重復第一到第五步,完成特征值提取,最后一次迭代的最優(yōu)路徑中的詞即為實際所要的能夠代表該類的特征詞。
【權利要求】
1.一種利用改進的蟻群算法提取特征詞,其特征在于,具體過程: 在預處理時,將所有信息存取到hash表中,其中coco_prepare存取每篇文章的信息,包括文章的id和每個詞及其出現(xiàn)的次數(shù);readhdfs_prepare存取每個類的訓練集的統(tǒng)計信息,包括每個詞的詞頻,文檔數(shù),和類名共現(xiàn)的次數(shù);設置蟻群算法的參數(shù):螞蟻個數(shù)M ;迭代次數(shù)N ;螞蟻走的步數(shù)即特征詞個數(shù)K ;初始化路徑信息素矩陣adMatrixs ;局部更新衰減速率Pl和全局更新衰減速率P2 ;螞蟻釋放信息素量m ; 第一步,將M只螞蟻隨機放到第一個詞上,由于候選集合大,人為的限制螞蟻的隨機范圍,具體做法為:計算每個特征詞的tf*Idf值,取出值最大的前20-30個作為螞蟻第一條路徑的隨機范圍; 第二步,對每個螞蟻,維護一張禁忌表result,該表中存有螞蟻走過的詞,在下一步的候選集candidate中排除該表中的所有詞;在選擇的過程中,按照以下步驟計算被選擇的可能性: (1)從表readhdfs_prepare中取出該詞的詞頻tf,并獲得所有詞中最大的詞頻tf_max和最小的詞頻 tf_min,進行歸一化處理:tf=(tf_tf_min)/ (tf_max-tf_min); (2)從表readhdfs_prepare中取出該詞的文檔數(shù)df,并獲得所有詞中最大的詞頻df_max 和最小的詞頻 df_min,進行歸一化處理:df= (df_df_min) / (df_max-df_min); (3)從表readhdfs_prepare中取出該詞同類名的共現(xiàn)數(shù)co,并獲得所有詞中最大的詞頻 co_max 和最小的詞頻 co_min,進行歸一化處理:co= (co_co_min) / (co_max-co_min); (4)從表coco_prepare中獲得result表中所有的詞和該詞的共現(xiàn)次數(shù)之和coco,并計算得出所有的詞中共現(xiàn)的最大值coco_max和最小值coco_min,并進行歸一化處理:coco=(coco_coco_min)/(coco_max_coco_min); (5)獲得對應路徑上的信息素值r; (6)根據(jù)四部分所占的比例tf_per,df_per, co_per, coco_per計算被選擇的可能性p=tf_per氺tf+df_per氺df+co_per氺co+coco_per氺coco+r; 第三步,在所有候選詞計算完成之后,選擇P值最大的那個詞作為螞蟻此次所選的詞,并記錄下該詞的權重值,將該詞加進該螞蟻的禁忌表result中,從該螞蟻的候選集中刪除該詞,繼續(xù)走下一步; 第四步,當所有螞蟻完成K步之后,獲得M條路徑更新路徑的信息素含量,更新公式為:r=(l-pl)*r+pl*m; 第五步,從M條路徑中選取最優(yōu)的一條路徑并記錄最優(yōu)路徑的適應度值為fit_best進行全局更新,更新該路徑上沒個特征詞的信息素含量為:r= (l-p2)*r+p2*(l/fit_best); 第六步,判斷迭代次數(shù)是否小于N,如果是,繼續(xù)下一次迭代,重復第一到第五步,完成局部特征值提取;如果等于N,則最后一次迭代的最優(yōu)路徑中的詞即為實際所要的能夠代表該類的特征詞。
【文檔編號】G06F17/30GK103744959SQ201410004815
【公開日】2014年4月23日 申請日期:2014年1月6日 優(yōu)先權日:2014年1月6日
【發(fā)明者】蔣昌俊, 陳閎中, 閆春鋼, 丁志軍, 王鵬偉, 孫海春, 鄧曉棟, 劉俊俊 申請人:同濟大學