亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于卡方統(tǒng)計檢驗法對文本特征選擇的技術(shù)實現(xiàn)

        2014-11-19 00:39:30唐勇
        電腦知識與技術(shù) 2014年30期
        關(guān)鍵詞:文本分類特征選擇

        摘要:該文主要探討如何從技術(shù)上實現(xiàn)基于卡方統(tǒng)計檢驗的文本特征選擇,文中提出采用開源的Lucene索引框架對文本分類語料庫進行索引,設(shè)計了在特征值計算的過程中如何借助語料庫索引快速獲取卡方統(tǒng)計檢驗的相關(guān)參數(shù),并使用java多線程技術(shù)從整體上優(yōu)化每個分類下文本特征選擇的計算效率。

        關(guān)鍵詞:特征選擇;卡方統(tǒng)計;文本分類;JAVA實現(xiàn)

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)30-7103-03

        1 文本特征選擇的必要性

        為了能夠有效地對大量文本信息進行自動分類,先要將文本信息模型化表示,典型的文本建模方法就是向量空間模型(VSM),該模型將文本信息抽象表示為若干相互獨立的詞匯所構(gòu)成的向量空間,向量空間中每個分量值使用TF*IDF來度量。其中TF是指詞匯頻率,TF=Nw/N,N表示文本的總詞匯數(shù),Nw表示詞W在文本中出現(xiàn)的次數(shù),TF的值越大,詞W與文本的相關(guān)性就越強;IDF是逆文檔頻率,IDF=log(D/Dw),Dw表示包含詞W的文檔數(shù),D表示語料庫的總文檔數(shù)目,IDF值越大,該詞與文檔的相關(guān)性就越低。假設(shè)有兩個文本doc1和doc2,那么它們在共同詞匯集合所構(gòu)成的向量空間中具有不同的向量,這兩個文本的相關(guān)性可以使用兩個向量的夾角余弦值來表示,夾角余弦值越大說明這兩個本文越相關(guān)。

        由于網(wǎng)頁文本的詞匯相當龐雜,包含大量的口語、廣告等噪聲信息,造成文本向量空間的維數(shù)較為龐大,降低了分本分類的效率。因此有必要降低向量空間的維度,剔除噪聲詞匯,保留與當前主題相關(guān)的詞匯來構(gòu)成向量空間模型。文本特征選擇就是要在構(gòu)建文本的特征向量時從文本的詞匯集中選取與主題相關(guān)的詞匯,盡可能地剔除與主題無關(guān)的詞匯,從而提高文本分類的效率與準確率。

        2 文本特征選擇的主要方法

        文本特征選擇的方法主要包括信息增益法(IG,Information Gain)、互信息(MI,Mutual Information)、卡方統(tǒng)計檢驗法(CHI,Chi-square Statistic)等,文獻[2]和[4]對這幾種方法在中文網(wǎng)頁的分類效果中進行了綜合比較,認為CHI、IG的性能要明顯由于MI。

        信息增益法(IG)是通過衡量某個詞匯在出現(xiàn)和不出現(xiàn)兩種情況下對整個分類系統(tǒng)信息熵的影響程度,影響程度大的詞匯與分類系統(tǒng)的相關(guān)性較大,應(yīng)給予保留;但是信息增益法只能考察特征詞匯對整個系統(tǒng)的貢獻,不能具體到某個類別上,這使得該方法只適合做全局的特征選擇。

        卡方統(tǒng)計檢驗方法(CHI)是基于數(shù)理統(tǒng)計中的聯(lián)列表檢驗理論判斷某個詞匯與特定文本類別的相關(guān)性。它先假設(shè)特征詞匯與特定類別是獨立的,通過計算觀察值與理論值之間的偏差程度來決定原假設(shè)是否成立。在給定詞匯t和分類c的條件下,CHI的公式簡化如下:

        [χ2(t,c=(AD-BC)2(A+B)(C+D)]

        其中,A表示包含詞匯t且屬于分類c的文檔數(shù)目,B表示包含詞匯t但不屬于分類c的文檔數(shù)目,C表示不包含詞匯t且屬于分類c的文檔數(shù)目,D表示不包含詞匯t且不屬于分類c的文檔數(shù)目。

        從CHI的計算公式可以看出它能夠檢驗特定詞匯與特定類別之間的相關(guān)度,但是CHI方法忽略了詞匯出現(xiàn)的頻率,這使得它對低頻詞有所偏袒,比如分類c的所有文檔都包含了詞A,但是在每篇文檔中詞A只出現(xiàn)1次,而分類c的99%文檔都包含了詞B,并且在每篇文檔中詞B都出現(xiàn)了10次以上。相對于詞A,詞B與分類c相關(guān)性更大,但是由于CHI的計算公式忽略了詞匯出現(xiàn)的頻率,導(dǎo)致詞匯A比詞匯B具有更大相關(guān)性。

        3 文本特征選擇的技術(shù)實現(xiàn)

        3.1 文本語料庫及索引庫

        為了進行文本特征的選擇,要預(yù)先準備好中文文本語料庫。搜狗實驗室提供的中文分類語料庫包含環(huán)境、IT、交通、教育、經(jīng)濟、軍事、體育、醫(yī)藥、藝術(shù)、政治共十個分類,每個分類下包含若干相關(guān)文本,共計八萬篇。該文以搜狗實驗室提供的中文語料庫作為文本特征提取的資料庫,基于卡方統(tǒng)計檢驗方法(CHI)來計算語料庫中每個類別所對應(yīng)的特征詞列表,這些不同分類的特征詞列表將作為后續(xù)文本分類的特征向量。

        CHI公式的關(guān)鍵是要針對不同的詞匯t和類別c分別計算出A、B、C、D的值。這里的詞匯需要通過分詞技術(shù)從中文文本中進行提取。該文采用了IKAnalyzer開源分詞器,該分詞器使用了正向迭代最細粒度切分算法,具有60萬字/秒的高速處理能力。文本經(jīng)過分詞器分割后將形成大量的詞匯,直接使用這些詞匯作為CHI的計算對象將極大的降低計算效率。為此應(yīng)定義一個中文停用詞集合,它包含了常用的中文語氣詞、助詞、虛詞等與文本內(nèi)容無關(guān)的詞匯,使用中文停用詞集合對分詞器分割后的詞匯進行過濾,同時過濾掉所有的單字詞匯。

        本文采用Lucene工具對文本語料庫中的所有中文文本預(yù)先進行索引,Lucene是apache軟件基金會提供的開源全文索引工具包,對文本語料庫建立索引后,借助Lucene提供的API接口可以極大的加快查詢諸如“語料庫中包含某詞匯的文檔數(shù)”的速度。建立的索引記錄結(jié)構(gòu)如下表所示,其中filename表示文本路徑名,該字段被作為一個整體保留在索引庫中,但不參與索引;content表示該文本的具體內(nèi)容,該字段不僅需要保留文本內(nèi)容,還需要對其進行分詞并在索引庫中保存分詞后的詞匯向量,classname表示該文本所屬的分類,該字段作為整體保留在索引庫中參與索引但是不對它進行分詞。

        表1 文本語料庫的索引結(jié)構(gòu)

        [字段名\&字段值\&存儲狀態(tài)\&索引狀態(tài)\&詞匯向量\&filename\&文本的具體路徑\&Field.Store.YES\&Field.Index.NO\&\&content\&文本的具體內(nèi)容\&Field.Store.YES\&Field.Index.ANALYZED\&Field.TermVector.YES\&classname\&文本所屬的分類名\&Field.Store.YES\&Field.Index.NOT_ANALYZED\&\&]endprint

        3.2 卡方統(tǒng)計中四個參數(shù)的計算

        本文使用Java語言來實現(xiàn)卡方統(tǒng)計檢驗的計算公式,建立了DataManager類和IndexManager類。DataManager類根據(jù)指定的語料庫存放路徑獲取語料庫的主要狀態(tài)信息,如語料庫的文檔總數(shù)、類別總數(shù)、某個類別下的文檔數(shù)。IndexManager類根據(jù)指定的語料庫來生成對應(yīng)的索引庫,索引庫的結(jié)構(gòu)如表1所示,并且提供一個getIndexReader()方法返回Lucene框架中的IndexReader對象。使用IndexReader對象的方法可以快速的讀取卡方統(tǒng)計檢驗中所需的相關(guān)值。

        計算“整個語料庫中包含詞w的文檔數(shù)”,記作Nw ,可以直接使用IndexReader的docFreq(new term(“content”,word))方法來獲??;計算“類別c中包含單詞w的文檔數(shù)”即卡方統(tǒng)計中的參數(shù)A,可以采用如圖1所示的算法,IndexReader的termDocs方法可以返回包含詞w的文檔集合,該集合的每一項都包含一個文檔編號docId,通過IndexrReader的document(int docId)方法可以獲取當前項所對應(yīng)的文檔。那么卡方統(tǒng)計檢驗中的參數(shù)B=Nw-A。 計算“類別c中不包含單詞w的文檔總數(shù)”,即卡方統(tǒng)計中的參數(shù)C,可直接使用類別c的總文檔數(shù)NC-A,這里NC在給定語料庫路徑情況下可以很方便的獲得。在計算完參數(shù)A、B、C的值之后,D=N-A-B-C,其中N代表整個語料庫的文檔數(shù),在給定的語料庫中N的值是個常量。至此卡方統(tǒng)計檢驗的參數(shù)已經(jīng)計算完畢,可以看出這里的關(guān)鍵是借助事先準備好的索引庫快速計算出Nw和A的值。

        3.3 文本特征選擇計算的優(yōu)化

        當文本的詞匯表較大時采用上述算法其效率依然不能令人滿意。java的多線程技術(shù)可使上述算法獲得更好的效率。首先使用Lucene來獲取類別c下的詞匯表并暫存于LinkedList集合中,這里的詞匯表應(yīng)該是過濾掉了停用詞和單字詞后的詞匯集合。創(chuàng)建一個實現(xiàn)了Runnable接口的CHIWorker類,該類具有實例屬性ThreadPool(線程池),調(diào)用CHIWorker類的start()方法時將對線程池進行初始化。該類的run()方法作為線程體被多個線程調(diào)用。run()方法也是CHIWorker類的核心,決定了文本特征計算的效率,具體算法如圖所示。CHIWorker類擁有一個名為resultMap的HashMap,用于存儲詞匯及其CHI值存儲。采用java的多線程技術(shù)將類別c下所有詞匯的卡方統(tǒng)計檢驗值計算完畢,并存儲在resultMap中,主程序?qū)⒃诙嗑€程運行完畢后獲取到resultMap中存儲的值。

        圖2 CHIWorker類的run方法

        在獲取了存儲于resultMap中的CHI值之后可以進一步按照CHI值的大小進行排序,為CHI值確定一個最低閥值,保留大于閥值的詞匯作為類別c的特征詞匯集合,記為wordList1。借鑒文獻[3]中提出的CHI改進算法,在獲取了詞匯集合wordList1之后,再進一步計算每個詞的頻度、集中度和分散度,其中頻度是用語料索引庫中詞匯w出現(xiàn)的次數(shù)來表示;集中度=A/(A+C);分散度=A/(A+B) 。對wordList1中每個詞匯按照頻度、集中度和分散度的乘積進行計算并降序排序,通過設(shè)定一個閥值來選區(qū)若干詞匯作為類別c的最終特征詞匯集合。至此,完成了對類別c的文本特征選擇,對其他類別也采用相同的計算過程,即可得到每個類別下的特征詞匯向量。

        4 結(jié)束語

        本文分析了文本特征選擇的重要性并比較了文本特征選擇的主要方法,深入探討了卡方統(tǒng)計檢驗法(CHI)的特點,提出了采用Lucene索引工具和Java多線程技術(shù)來優(yōu)化CHI計算方法的思路。

        參考文獻:

        [1] 王光.集合CHI與IG的特征選擇方法[J].計算機應(yīng)用,2012(7).

        [2] 單松巍.幾種典型特征選取方法在中文網(wǎng)頁分類上的效果比較[J].計算機工程與應(yīng)用,2003(22).

        [3] 熊忠陽.基于卡方統(tǒng)計的文本分類特征選擇方法的研究[J].計算機應(yīng)用,2008(2).

        [4] 崔愛國.文本分類中特征提取方法的比較與分析[J].電腦知識與技術(shù),2009(7).

        3.2 卡方統(tǒng)計中四個參數(shù)的計算

        本文使用Java語言來實現(xiàn)卡方統(tǒng)計檢驗的計算公式,建立了DataManager類和IndexManager類。DataManager類根據(jù)指定的語料庫存放路徑獲取語料庫的主要狀態(tài)信息,如語料庫的文檔總數(shù)、類別總數(shù)、某個類別下的文檔數(shù)。IndexManager類根據(jù)指定的語料庫來生成對應(yīng)的索引庫,索引庫的結(jié)構(gòu)如表1所示,并且提供一個getIndexReader()方法返回Lucene框架中的IndexReader對象。使用IndexReader對象的方法可以快速的讀取卡方統(tǒng)計檢驗中所需的相關(guān)值。

        計算“整個語料庫中包含詞w的文檔數(shù)”,記作Nw ,可以直接使用IndexReader的docFreq(new term(“content”,word))方法來獲取;計算“類別c中包含單詞w的文檔數(shù)”即卡方統(tǒng)計中的參數(shù)A,可以采用如圖1所示的算法,IndexReader的termDocs方法可以返回包含詞w的文檔集合,該集合的每一項都包含一個文檔編號docId,通過IndexrReader的document(int docId)方法可以獲取當前項所對應(yīng)的文檔。那么卡方統(tǒng)計檢驗中的參數(shù)B=Nw-A。 計算“類別c中不包含單詞w的文檔總數(shù)”,即卡方統(tǒng)計中的參數(shù)C,可直接使用類別c的總文檔數(shù)NC-A,這里NC在給定語料庫路徑情況下可以很方便的獲得。在計算完參數(shù)A、B、C的值之后,D=N-A-B-C,其中N代表整個語料庫的文檔數(shù),在給定的語料庫中N的值是個常量。至此卡方統(tǒng)計檢驗的參數(shù)已經(jīng)計算完畢,可以看出這里的關(guān)鍵是借助事先準備好的索引庫快速計算出Nw和A的值。

        3.3 文本特征選擇計算的優(yōu)化

        當文本的詞匯表較大時采用上述算法其效率依然不能令人滿意。java的多線程技術(shù)可使上述算法獲得更好的效率。首先使用Lucene來獲取類別c下的詞匯表并暫存于LinkedList集合中,這里的詞匯表應(yīng)該是過濾掉了停用詞和單字詞后的詞匯集合。創(chuàng)建一個實現(xiàn)了Runnable接口的CHIWorker類,該類具有實例屬性ThreadPool(線程池),調(diào)用CHIWorker類的start()方法時將對線程池進行初始化。該類的run()方法作為線程體被多個線程調(diào)用。run()方法也是CHIWorker類的核心,決定了文本特征計算的效率,具體算法如圖所示。CHIWorker類擁有一個名為resultMap的HashMap,用于存儲詞匯及其CHI值存儲。采用java的多線程技術(shù)將類別c下所有詞匯的卡方統(tǒng)計檢驗值計算完畢,并存儲在resultMap中,主程序?qū)⒃诙嗑€程運行完畢后獲取到resultMap中存儲的值。

        圖2 CHIWorker類的run方法

        在獲取了存儲于resultMap中的CHI值之后可以進一步按照CHI值的大小進行排序,為CHI值確定一個最低閥值,保留大于閥值的詞匯作為類別c的特征詞匯集合,記為wordList1。借鑒文獻[3]中提出的CHI改進算法,在獲取了詞匯集合wordList1之后,再進一步計算每個詞的頻度、集中度和分散度,其中頻度是用語料索引庫中詞匯w出現(xiàn)的次數(shù)來表示;集中度=A/(A+C);分散度=A/(A+B) 。對wordList1中每個詞匯按照頻度、集中度和分散度的乘積進行計算并降序排序,通過設(shè)定一個閥值來選區(qū)若干詞匯作為類別c的最終特征詞匯集合。至此,完成了對類別c的文本特征選擇,對其他類別也采用相同的計算過程,即可得到每個類別下的特征詞匯向量。

        4 結(jié)束語

        本文分析了文本特征選擇的重要性并比較了文本特征選擇的主要方法,深入探討了卡方統(tǒng)計檢驗法(CHI)的特點,提出了采用Lucene索引工具和Java多線程技術(shù)來優(yōu)化CHI計算方法的思路。

        參考文獻:

        [1] 王光.集合CHI與IG的特征選擇方法[J].計算機應(yīng)用,2012(7).

        [2] 單松巍.幾種典型特征選取方法在中文網(wǎng)頁分類上的效果比較[J].計算機工程與應(yīng)用,2003(22).

        [3] 熊忠陽.基于卡方統(tǒng)計的文本分類特征選擇方法的研究[J].計算機應(yīng)用,2008(2).

        [4] 崔愛國.文本分類中特征提取方法的比較與分析[J].電腦知識與技術(shù),2009(7).

        3.2 卡方統(tǒng)計中四個參數(shù)的計算

        本文使用Java語言來實現(xiàn)卡方統(tǒng)計檢驗的計算公式,建立了DataManager類和IndexManager類。DataManager類根據(jù)指定的語料庫存放路徑獲取語料庫的主要狀態(tài)信息,如語料庫的文檔總數(shù)、類別總數(shù)、某個類別下的文檔數(shù)。IndexManager類根據(jù)指定的語料庫來生成對應(yīng)的索引庫,索引庫的結(jié)構(gòu)如表1所示,并且提供一個getIndexReader()方法返回Lucene框架中的IndexReader對象。使用IndexReader對象的方法可以快速的讀取卡方統(tǒng)計檢驗中所需的相關(guān)值。

        計算“整個語料庫中包含詞w的文檔數(shù)”,記作Nw ,可以直接使用IndexReader的docFreq(new term(“content”,word))方法來獲??;計算“類別c中包含單詞w的文檔數(shù)”即卡方統(tǒng)計中的參數(shù)A,可以采用如圖1所示的算法,IndexReader的termDocs方法可以返回包含詞w的文檔集合,該集合的每一項都包含一個文檔編號docId,通過IndexrReader的document(int docId)方法可以獲取當前項所對應(yīng)的文檔。那么卡方統(tǒng)計檢驗中的參數(shù)B=Nw-A。 計算“類別c中不包含單詞w的文檔總數(shù)”,即卡方統(tǒng)計中的參數(shù)C,可直接使用類別c的總文檔數(shù)NC-A,這里NC在給定語料庫路徑情況下可以很方便的獲得。在計算完參數(shù)A、B、C的值之后,D=N-A-B-C,其中N代表整個語料庫的文檔數(shù),在給定的語料庫中N的值是個常量。至此卡方統(tǒng)計檢驗的參數(shù)已經(jīng)計算完畢,可以看出這里的關(guān)鍵是借助事先準備好的索引庫快速計算出Nw和A的值。

        3.3 文本特征選擇計算的優(yōu)化

        當文本的詞匯表較大時采用上述算法其效率依然不能令人滿意。java的多線程技術(shù)可使上述算法獲得更好的效率。首先使用Lucene來獲取類別c下的詞匯表并暫存于LinkedList集合中,這里的詞匯表應(yīng)該是過濾掉了停用詞和單字詞后的詞匯集合。創(chuàng)建一個實現(xiàn)了Runnable接口的CHIWorker類,該類具有實例屬性ThreadPool(線程池),調(diào)用CHIWorker類的start()方法時將對線程池進行初始化。該類的run()方法作為線程體被多個線程調(diào)用。run()方法也是CHIWorker類的核心,決定了文本特征計算的效率,具體算法如圖所示。CHIWorker類擁有一個名為resultMap的HashMap,用于存儲詞匯及其CHI值存儲。采用java的多線程技術(shù)將類別c下所有詞匯的卡方統(tǒng)計檢驗值計算完畢,并存儲在resultMap中,主程序?qū)⒃诙嗑€程運行完畢后獲取到resultMap中存儲的值。

        圖2 CHIWorker類的run方法

        在獲取了存儲于resultMap中的CHI值之后可以進一步按照CHI值的大小進行排序,為CHI值確定一個最低閥值,保留大于閥值的詞匯作為類別c的特征詞匯集合,記為wordList1。借鑒文獻[3]中提出的CHI改進算法,在獲取了詞匯集合wordList1之后,再進一步計算每個詞的頻度、集中度和分散度,其中頻度是用語料索引庫中詞匯w出現(xiàn)的次數(shù)來表示;集中度=A/(A+C);分散度=A/(A+B) 。對wordList1中每個詞匯按照頻度、集中度和分散度的乘積進行計算并降序排序,通過設(shè)定一個閥值來選區(qū)若干詞匯作為類別c的最終特征詞匯集合。至此,完成了對類別c的文本特征選擇,對其他類別也采用相同的計算過程,即可得到每個類別下的特征詞匯向量。

        4 結(jié)束語

        本文分析了文本特征選擇的重要性并比較了文本特征選擇的主要方法,深入探討了卡方統(tǒng)計檢驗法(CHI)的特點,提出了采用Lucene索引工具和Java多線程技術(shù)來優(yōu)化CHI計算方法的思路。

        參考文獻:

        [1] 王光.集合CHI與IG的特征選擇方法[J].計算機應(yīng)用,2012(7).

        [2] 單松巍.幾種典型特征選取方法在中文網(wǎng)頁分類上的效果比較[J].計算機工程與應(yīng)用,2003(22).

        [3] 熊忠陽.基于卡方統(tǒng)計的文本分類特征選擇方法的研究[J].計算機應(yīng)用,2008(2).

        [4] 崔愛國.文本分類中特征提取方法的比較與分析[J].電腦知識與技術(shù),2009(7).

        猜你喜歡
        文本分類特征選擇
        Kmeans 應(yīng)用與特征選擇
        電子制作(2017年23期)2017-02-02 07:17:06
        基于組合分類算法的源代碼注釋質(zhì)量評估方法
        基于貝葉斯分類器的中文文本分類
        基于蟻群智能算法的研究文本分類
        基于樸素貝葉斯分類的Java課程網(wǎng)絡(luò)答疑反饋系統(tǒng)
        基于K—means算法的文本分類技術(shù)研究
        文本分類算法在山東女子學(xué)院檔案管理的應(yīng)用
        科技視界(2016年24期)2016-10-11 09:36:57
        基于GA和ELM的電能質(zhì)量擾動識別特征選擇方法
        聯(lián)合互信息水下目標特征選擇算法
        基于特征選擇聚類方法的稀疏TSK模糊系統(tǒng)
        午夜不卡亚洲视频| 亚洲精品无码国产| 一本一道波多野结衣av中文| 国产久热精品无码激情| 国模无码视频专区一区| 久久天堂av综合合色| 亚洲av毛片在线免费看| 中文字幕网伦射乱中文| 亚洲精品乱码久久久久久蜜桃图片| 欧美人与动牲交片免费| 丝袜 亚洲 另类 欧美| 中文资源在线一区二区三区av| 强开小婷嫩苞又嫩又紧视频| 无码人妻精品一区二区三区不卡| 久久中文字幕av一区二区不卡| 精精国产xxxx视频在线播放器| 精品人妻夜夜爽一区二区| 免费一区二区在线观看视频在线| 中文字幕有码无码人妻av蜜桃| 伊人久久大香线蕉av不变影院| 久久久久久夜精品精品免费啦| 免费人妻精品一区二区三区 | 天天摸夜夜摸摸到高潮| 亚洲不卡av不卡一区二区| 99成人无码精品视频| 久久影院最新国产精品| 亚洲va韩国va欧美va| 内射后入在线观看一区| 中文字幕精品亚洲无线码二区 | 99综合精品久久| 国产精品自拍午夜伦理福利| 18禁裸男晨勃露j毛网站| 人体内射精一区二区三区| 日韩成人精品一区二区三区| 久久婷婷综合缴情亚洲狠狠| 亚洲国产精品日韩av不卡在线| 国产精品美女| 国产精品av在线一区二区三区| 国产伦精品一区二区三区在线| 99国产精品久久一区二区三区| 久久97久久97精品免视看|