两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于MPI和Adaboost.MH的中文文本分類方法與流程

文檔序號:11458639閱讀:216來源:國知局
一種基于MPI和Adaboost.MH的中文文本分類方法與流程

本發(fā)明涉及文本挖掘技術(shù)領(lǐng)域,特別涉及一種基于mpi和adaboost.mh的中文文本分類方法。



背景技術(shù):

文本分類是在文本的類別體系已知的情況下,根據(jù)信息內(nèi)容將文本劃分到與其相關(guān)的類別中去的過程。隨著科學(xué)技術(shù)的進(jìn)步、社會的發(fā)展、計算機(jī)的普及和網(wǎng)絡(luò)時代的來臨,網(wǎng)絡(luò)文本的數(shù)量在急劇增長中,文本分類任務(wù)呈現(xiàn)了新的特點:一、每天都會產(chǎn)生大量的需要進(jìn)行分類的新文本,這些數(shù)據(jù)通常是tb級以上。二、文本的類別呈現(xiàn)出多樣性,即一個文本可以屬于多種類別,比如同一文本既可以屬于歷史,又可以屬于政治,還可以屬于科技等。

傳統(tǒng)的單標(biāo)簽分類方法如決策樹方法、k近鄰方法、神經(jīng)網(wǎng)絡(luò)方法、遺傳算法、貝葉斯分類、支持向量機(jī)等已經(jīng)不能滿足人們的需要。因此現(xiàn)今出現(xiàn)了許多多標(biāo)簽分類方法,主要有br、ecc、adaboost.mh、mlknn、cml、ml-dt、rank-svm等。

adaboost.mh算法是一種對單標(biāo)簽分類算法adaboost的改進(jìn)處理多標(biāo)簽的迭代算法,其核心思想是對同一個訓(xùn)練集訓(xùn)練不同的弱分類器,然后將這些弱分類器結(jié)合起來構(gòu)成一個強(qiáng)分類器。本文中adaboost.mh算法選擇的弱分類器是一級決策樹,該算法思想簡單、易于實現(xiàn)。但由于現(xiàn)在需要分類的文本數(shù)量太大,adaboost.mh算法為了保證分類效果需要進(jìn)行多次的迭代學(xué)習(xí),因此需要大量的訓(xùn)練時間。

為了提高adaboost.mh算法的效率,減少訓(xùn)練時間,現(xiàn)有的解決方法主要是對算法進(jìn)行并行實現(xiàn)。并行的方法主要有openmp、hadoop、spark、mpi。其中openmp可以在單機(jī)上對算法進(jìn)行多線程并行實現(xiàn),不能用于集群。但當(dāng)數(shù)據(jù)量過大時,對機(jī)器內(nèi)存的要求將過高,openmp將不適用。hadoop根據(jù)mapreduce框架通過集群對算法實現(xiàn)并行,但hadoop不擅長處理迭代算法。spark同樣可以使用集群來并行實現(xiàn)算法,但與mpi相比較,速度較慢。



技術(shù)實現(xiàn)要素:

針對海量數(shù)據(jù)構(gòu)建訓(xùn)練集時間較長和使用adaboost.mh算法進(jìn)行分類模型訓(xùn)練需要大量時間的問題,本發(fā)明利用mpi和adaboost.mh相結(jié)合,提出了一種基于mpi和adaboost.mh的并行文本分類方法。

本發(fā)明解決中文文本分類耗時問題的技術(shù)方案是:將預(yù)處理后的文本平均分成p份,每個進(jìn)程處理其中的一份,進(jìn)程依靠mpi實現(xiàn)進(jìn)程間相互通信作為輔助完成對訓(xùn)練集中文文本進(jìn)行特征選擇、構(gòu)建權(quán)值向量、訓(xùn)練分類模型、對待分類文本進(jìn)行分類等工作,從而實現(xiàn)了中文文本分類的并行化,能夠極大程度的提高中文文本分類的時間效率。

鑒于此,本發(fā)明采用的技術(shù)方案是:一種基于mpi和adaboost.mh的中文文本分類方法,包括以下步驟:

(1)文本預(yù)處理:搜集不同領(lǐng)域的中文文本文件,對搜集到的中文文本進(jìn)行中文分詞,然后將標(biāo)點符號及停用詞去除,將分詞后的詞條用空格符分隔保存到訓(xùn)練集數(shù)據(jù)中,作為初步特征。

(2)特征詞選擇:通過使用互信息方法對預(yù)處理文本的初步特征進(jìn)行選擇。

(3)構(gòu)建權(quán)值向量:對每個進(jìn)程的每一篇中文文本文件,掃描判斷挑選的特征詞是否在該中文文本文件中,如果文件中存在該特征詞,這該特征詞對應(yīng)的權(quán)值為1,否則該特征詞對應(yīng)的權(quán)值為0,構(gòu)建中文文本文件權(quán)值向量。

(4)構(gòu)建文本分類模型:利用adaboost.mh算法構(gòu)建分類模型。

(5)對待分類文本進(jìn)行分類:根據(jù)步驟(4)構(gòu)建的分類模型對待分類文本進(jìn)行分類。

進(jìn)一步,步驟(2)所述特征詞選擇的具體步驟為:

首先將訓(xùn)練集數(shù)據(jù)平均分為p份,每個進(jìn)程依次讀取其中的一份;然后分別統(tǒng)計各進(jìn)程的a、b、c、n值,a為在類別c中特征詞t出現(xiàn)的中文文本分?jǐn)?shù);b為在除了類別c的其他類別中特征詞t出現(xiàn)的中文文本分?jǐn)?shù);c為在類別c中特征詞t未出現(xiàn)的中文文本分?jǐn)?shù);n為所有類別中中文文本分?jǐn)?shù)的總和;接著所有進(jìn)程通過mpi中的mpi_reduce函數(shù)對a、b、c、n進(jìn)行歸約求和,結(jié)果保存到進(jìn)程0中,進(jìn)程0根據(jù)歸約求和的結(jié)果計算特征詞t和類別c之間的相似度i;最后通過快速排序算法對特征詞的相似度i進(jìn)行排序,將相似度i較大的n個特征詞保留,并將選擇的結(jié)果廣播給所有的進(jìn)程,所有進(jìn)程根據(jù)收到的廣播信息挑選特征詞。其中相似度i的計算公式為:

上述步驟(4)中分類模型的構(gòu)建過程如下:

步驟一、根據(jù)訓(xùn)練集數(shù)據(jù),每個進(jìn)程對自身所包含樣本標(biāo)簽賦予權(quán)值1/(mk),m為訓(xùn)練集樣本數(shù),即中文文本數(shù),k為樣本的類別總數(shù),即中文文本可能的所屬類別數(shù),類別如科技類、政治類等。

步驟二、每個進(jìn)程根據(jù)公式統(tǒng)計自身所包含樣本的所有特征詞的權(quán)值然后對使用mpi_reduce歸約函數(shù)對求得的權(quán)值進(jìn)行歸約求和,獲得真正的存入進(jìn)程0中,其中j表示特征詞是否存在,表示第個標(biāo)簽,b為-1或1,-1表示樣本不包含該標(biāo)簽,1表示樣本包含該標(biāo)簽,m表示訓(xùn)練集的樣本數(shù),表示在第t次迭代時第i個樣本的第個標(biāo)簽的權(quán)值,xi表示第i個訓(xùn)練樣本,xj表示特征詞存在(j=1)或不存在(j=0)的情況下的所有訓(xùn)練樣本的集合,yi表示第i個樣本的標(biāo)簽。

步驟三、在進(jìn)程0中根據(jù)公式計算所有特征的zt,其中zt表示歸一化因子,表示特征詞存在(j=1)或特征詞不存在(j=0)的第個標(biāo)簽為1的訓(xùn)練樣本在分布中的權(quán)值和,表示特征詞存在(j=1)或特征詞不存在(j=0)的第個標(biāo)簽為-1的訓(xùn)練樣本在分布中的權(quán)值和。選擇zt值最小的特征詞w作為要選取的特征詞;然后根據(jù)特征詞w計算標(biāo)簽概率表示標(biāo)簽為1的概率,表示標(biāo)簽不為1的概率,通過mpi_bcast函數(shù)將zt、w、廣播給所有進(jìn)程,所有進(jìn)程將其存入結(jié)構(gòu)體rule中;標(biāo)簽概率通過以下公式計算,ε表示平滑系數(shù),為1/mk,其中m為訓(xùn)練樣本數(shù),k為訓(xùn)練集標(biāo)簽數(shù),即文本類別數(shù)。

步驟四、每一個進(jìn)程根據(jù)權(quán)值分布更新公式對標(biāo)簽權(quán)值分布進(jìn)行更新,其中αt=1,當(dāng)w∈x,則當(dāng)w為特征詞,表示第i個訓(xùn)練樣本的第個標(biāo)簽為1的置信度。

步驟五、重復(fù)步驟二至四t次,第t次迭代時步驟四不操作,獲得t個一級決策樹分類器。對于待分類的中文文本文件,將其平均分成p份讀入p個進(jìn)程,每個進(jìn)程利用所有類別全部的特征詞對其進(jìn)行特征詞的掃描,根據(jù)特征詞是否在中文文本文件中出現(xiàn)對該特征詞賦予權(quán)值,從而得到待分類文本的權(quán)值向量,獲得測試集。然后將測試集平均分成p份,每個進(jìn)程讀取其中的一份,

所述對待分類文本進(jìn)行分類為:將待分類的中文文本文件進(jìn)行上述步驟(1)、(2)和(3)的處理后,獲得權(quán)值向量,即測試集。然后將測試集平均分成p份,每個進(jìn)程讀取其中的一份,根據(jù)t個一級決策樹分類器對各自所包含的樣本分類,最后根據(jù)公式將分類結(jié)果進(jìn)行整合得出最后的預(yù)測類別。

本發(fā)明具有益效果:本發(fā)明將mpi和adaboost.mh算法相結(jié)合,實現(xiàn)了并行的文本分類算法,解決了當(dāng)數(shù)據(jù)集過大,迭代次數(shù)過多引起的訓(xùn)練時間過長的問題,極大地縮短了中文文本分類的時間。

附圖說明

圖1表示基于mpi和adaboost.mh算法的中文文本分類方法的流程圖;

圖2表示特征詞選擇流程圖,假設(shè)進(jìn)程數(shù)p為4;

圖3表示分類器模型的訓(xùn)練流程圖,假設(shè)進(jìn)程數(shù)p為4。

具體實施方式

下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明。

如圖1所示,本發(fā)明包括以下5個步驟。

1、文本預(yù)處理:通過網(wǎng)絡(luò)爬蟲和搜索網(wǎng)絡(luò)信息等方式搜集不同領(lǐng)域的中文文本文件,對搜集到的中文文本文件進(jìn)行分詞處理??墒褂胕k、ictclas等開源分詞包,對搜集到的文本進(jìn)行中文分詞,然后將標(biāo)點符號及停用詞去除,停用詞為出現(xiàn)頻率非常高但沒有實際意義的詞,如“了”、“的”、“與”等。將分詞后的詞條用空格符分割保存到本地的訓(xùn)練集數(shù)據(jù)中,作為初步特征。

2、特征選擇:通過使用互信息方法對初步特征進(jìn)行選擇。首先使用mpi_init函數(shù)啟動p個進(jìn)程,根據(jù)mpi_comm_rank獲得每個進(jìn)程的進(jìn)程號,利用mpi_comm_size函數(shù)獲得總的進(jìn)程數(shù)p,將所有的訓(xùn)練集數(shù)據(jù)平均分成p份,每個進(jìn)程依次讀取其中的一份,然后每個進(jìn)程分別統(tǒng)計各自的a、b、c、n,然后執(zhí)行mpi_barrier函數(shù)是進(jìn)程間同步,a為在類別c中特征詞t出現(xiàn)的文檔數(shù);b為在除了類別c的其他類別中特征詞t出現(xiàn)的文檔數(shù);c為在類別c中特征詞t未出現(xiàn)的文檔數(shù);n為所有類別中文檔數(shù)的總和。然后根據(jù)mpi_reduce函數(shù)對所有的進(jìn)程中a、b、c、n進(jìn)行歸約求和,獲得相對于整個訓(xùn)練集數(shù)據(jù)的a、b、c、n,結(jié)果存入進(jìn)程0中,進(jìn)程0根據(jù)公式計算特征詞t和類別c之間的相似度i(t,c),假設(shè)共有k個類別,每個特征詞將計算出與k個類別的相似度,那么每個特征詞的權(quán)值為得到的k個相似度的和的平均值,由于快速排序算法相對于其他排序算法有較好的時間性能,因此進(jìn)程0對所有特征詞的權(quán)值通過快速排序算法進(jìn)行排序,然后將權(quán)值較大的前n個特征詞保留(計算特征詞與類別之間相似度、相似度排序、選擇特征詞的計算量相對較小,因此這些操作在進(jìn)程0中完成,沒有并行),然后進(jìn)程0將保留的特征詞通過mpi_bcast函數(shù)廣播給所有進(jìn)程,所有進(jìn)程根據(jù)這些信息來保留部分特征詞,刪除其余的特征詞。

3、構(gòu)建權(quán)值向量:對選擇特征詞之后的中文文本進(jìn)行構(gòu)建權(quán)值向量,首先對于每個進(jìn)程的每一篇中文文本文件,掃描判斷挑選的特征詞是否在該文件中,如果文件中存在該特征詞,這該特征詞對應(yīng)的權(quán)值為1,否則該特征詞對應(yīng)的權(quán)值為0,例如:特征詞“政府”出現(xiàn)在一篇文章中,那么就將特征詞“政府”的權(quán)值設(shè)為1,否則設(shè)為0。從而構(gòu)建中文文本文件權(quán)值向量。將所有進(jìn)程的樣本權(quán)值向量依據(jù)進(jìn)程號依次保存到train.csv文件中,然后使用mpi_finalize函數(shù)結(jié)束所有進(jìn)程。

4、構(gòu)建文本分類模型:

步驟一、首先使用mpi_init函數(shù)啟動p個進(jìn)程,根據(jù)mpi_comm_rank獲得每個進(jìn)程的進(jìn)程號,利用mpi_comm_size函數(shù)獲得總的進(jìn)程數(shù)p,打開文件train.csv,根據(jù)開設(shè)的進(jìn)程數(shù)p將訓(xùn)練集train分成p塊,(按行分p塊),進(jìn)程讀取其中的r0、r1、r3.....rp-1行(r0表示進(jìn)程0讀入數(shù)據(jù)的行數(shù),每個進(jìn)程讀取的行數(shù)按平均分得到,至多相差1)。例如:14個元素分給4個進(jìn)程,每個進(jìn)程的元素數(shù)為3、4、3、4等。平均分的公式為:low=id×n÷p,low為每個進(jìn)程中的第一個位置,id表示進(jìn)程號,n表示所有的元素個數(shù),p表示進(jìn)程數(shù),high=(id+1)×n÷p-1,high為每個進(jìn)程中的最后一個位置,size=high-low+1,size為每個進(jìn)程中的元素數(shù)。然后,初始化權(quán)值分布,即每個進(jìn)程對所包含的樣本標(biāo)簽賦予權(quán)值1/(mk),其中m為總的樣本數(shù),k為特征數(shù)。

步驟二、每個進(jìn)程統(tǒng)計自身所包含樣本的所有特征詞的權(quán)值其中j∈{0,1},表示樣本x是否包含該特征詞,包含為1,不包含為0,b∈{-1,+1}表示標(biāo)簽的值,表示第個標(biāo)簽,計算公式為其中m表示訓(xùn)練集的樣本數(shù),表示在第t次迭代時第i個樣本的第個標(biāo)簽的權(quán)值,xi表示第i個訓(xùn)練樣本,xj表示特征詞存在(j=1)或不存在(j=0)的情況下的所有訓(xùn)練樣本的集合,yi表示第i個樣本的標(biāo)簽;

步驟三、通過mpi_reduce函數(shù)對所有的進(jìn)程的進(jìn)行歸約求和,得出真實的其結(jié)果存入進(jìn)程0中,在進(jìn)程0中求出所包含的每個特征的zt,計算公式為其中+表示b=+1,-表示b=-1,t表示迭代次數(shù),最小的zt所對應(yīng)的特征詞即為應(yīng)選取的特征詞w,然后根據(jù)特征詞w計算標(biāo)簽概率計算公式為將求得的標(biāo)簽概率選取的特征詞w通過mpi_bcast函數(shù)廣播給每個進(jìn)程,每個進(jìn)程將存入rule中,rule是一個結(jié)構(gòu)體,成員為和特征詞w。

步驟四、所有進(jìn)程通過求得的zt,每一個訓(xùn)練樣本的每一個標(biāo)簽為1的置信度根據(jù)以下公式更新權(quán)值分布,其中αt=1,當(dāng)w∈x,當(dāng)w為某個特征。

步驟五、重復(fù)步驟二至四t次,第t次迭代時步驟四不操作,獲得t個一級決策樹分類器,由于每個進(jìn)程中保存的規(guī)則相同,所以將進(jìn)程0中保存的規(guī)則rule保存到rule.csv文件中,使用mpi_finalize函數(shù)來關(guān)閉所有進(jìn)程。

5、對待分類文本進(jìn)行分類

對于待分類的中文文本文件,將其平均分成p份讀入p個進(jìn)程,每個進(jìn)程利用所有類別全部的特征詞對其進(jìn)行特征詞的掃描,根據(jù)特征詞是否在中文文本文件中出現(xiàn)對該特征詞賦予權(quán)值,從而得到待分類文本的權(quán)值向量,接著每個進(jìn)程將獲得的權(quán)值向量依據(jù)進(jìn)程號的先后順序依次保存到test.csv文件中。

然后使用mpi_init函數(shù)啟動p個進(jìn)程,根據(jù)mpi_comm_rank獲得每個進(jìn)程的進(jìn)程號,利用mpi_comm_size函數(shù)獲得總得進(jìn)程數(shù)p,打開rule.csv文件,每個進(jìn)程都讀入rule.csv的所有信息。

接著打開test.csv文件,將待分類樣本平分為p份,每個進(jìn)程讀取其中的一份,然后每個進(jìn)程根據(jù)保存的弱分類器的分類規(guī)則rule和以下公式求得待分類文本的類別,最后使用mpi_finalize函數(shù)關(guān)閉所有進(jìn)程。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黄山市| 军事| 视频| 兴义市| 宣汉县| 郴州市| 常德市| 霍城县| 土默特左旗| 田东县| 射阳县| 萨嘎县| 合水县| 安乡县| 安丘市| 吴川市| 措美县| 巩留县| 遂宁市| 社旗县| 临湘市| 休宁县| 吴川市| 东丰县| 长泰县| 巧家县| 石城县| 永吉县| 岚皋县| 古浪县| 云龙县| 德化县| 林州市| 赣州市| 永清县| 融水| 昂仁县| 奉贤区| 逊克县| 南昌县| 自治县|