国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多類別文本分類方法比較研究

2022-02-22 12:20于衛(wèi)紅
計算機技術與發(fā)展 2022年1期
關鍵詞:決策樹類別文檔

于衛(wèi)紅

(大連海事大學 航運經(jīng)濟與管理學院,遼寧 大連 116026)

0 引 言

文本分類是指對于一個特定的文檔,判斷其是否屬于某個類別。根據(jù)目標類別的不同,通常將文本分類問題分為三種類型:

(1)二分類:表示分類任務中有兩個類別(0或者1),如垃圾郵件分類。

(2)多類別分類:表示分類任務中有多個類別,如客戶的評論情感可分為5個類別:非常滿意、滿意、一般、不滿意、非常不滿意。

(3)多標簽分類:表示給每個樣本分配一個標簽集。如,一個文本可能被同時認為是與宗教、政治或教育都相關的話題,或全部無關。

在文本挖掘的實際應用中,多類別分類問題更加常見,并且,多標簽分類問題也可以轉化為多類別分類問題來加以解決。多類別分類問題較之二分類問題更加復雜,如何選擇合適的算法,構建出性能較優(yōu)的多類別分類模型至關重要。

決策樹、隨機森林、樸素貝葉斯等算法都可用于多類別分類問題,但每個算法都是基于某些特定的假設的,都具有各自的優(yōu)缺點,沒有任何一種分類算法可以在所有的問題解決中都有良好的表現(xiàn)。因此,只有比較了多種算法的性能才能為具體的問題選擇出較佳的模型。

1 文本分類的流程、方法與性能評價指標

1.1 文本分類的流程

如圖1所示,無論何種類型的文本分類問題,其處理過程大都包括文本預處理、文本特征表示、分類模型構建、模型評估幾個步驟。其中,文本特征表示和分類模型的構建是文本分類問題的核心。

圖1 文本分類的流程

1.2 文本特征表示的幾種方法

1.2.1 詞袋模型

詞袋模型是一種基于詞頻的對文檔進行特征提取的方法,即將文檔看作詞的集合,對文檔中出現(xiàn)的所有詞進行詞頻統(tǒng)計,用詞頻向量來表示文檔。詞袋模型忽略了文本的語法和語序等要素,只考慮詞在文檔中出現(xiàn)的次數(shù)。

1.2.2 TF-IDF模型

TF-IDF模型在考慮詞頻的基礎上考慮了詞對于一篇文章的重要性。TF(term frequency)指的是一個單詞在某個文檔中出現(xiàn)的頻率。通常,一個詞在一篇文檔中出現(xiàn)的頻率越高,這個詞對于該文檔越重要。IDF(inverse document frequency)指的是逆向文檔頻率,代表了詞對于文檔的區(qū)分度,如果一個詞在一篇文檔中多次出現(xiàn),但在其他文檔中很少出現(xiàn),則認為這個詞對于該文檔的區(qū)分能力較強。一個詞的TF-IDF值的計算公式為:

TF-IDF=TF*IDF;

(1)

1.2.3 詞嵌入模型

基于詞嵌入的文本特征表示是一種文本深度表示模型,其主要思想是將文本轉換為較低維度空間的矢量表示。首先基于大量的語料庫訓練出詞嵌入模型,即將每個詞映射成

K

維實數(shù)向量(通常

K

=50~200),并且使得這些向量能較好地表達不同詞之間的相似和類比關系,以引入一定的語義信息。常用的詞嵌入算法有Word2Vec和Glove。本研究使用Word2Vec算法,Word2Vec有兩種實現(xiàn)詞嵌入的方式,即CBOW(連續(xù)詞袋)和SKIP-GRAM(跳字模型)。CBOW方法以上下文單詞作為輸入,預測目標單詞;而SKIP-GRAM方法以目標單詞作為輸入,預測單詞周圍的上下文。最后,基于訓練好的詞嵌入模型,使用Doc2Vec算法生成文本的向量表示模型,即將每個文本映射成

K

維實數(shù)向量。

1.3 構建文本分類模型的常用算法

構建文本分類模型的算法有很多,如傳統(tǒng)算法:決策樹、多層感知器、樸素貝葉斯、邏輯回歸和SVM;集成學習算法:隨機森林、AdaBoost、lightGBM和xgBoost;以及深度學習算法:前饋神經(jīng)網(wǎng)絡和LSTM。對所有算法進行比較,工作量巨大,本研究只比較常用的5種算法:決策樹、KNN、樸素貝葉斯、SVM和隨機森林。

1.3.1 決策樹

決策樹是一種以樹形結構來展示決策規(guī)則和分類結果的模型,其思想是通過ID3、C4.5、CART等算法將看似無序、雜亂的訓練數(shù)據(jù)轉化成可以預測未知實例的樹狀模型。決策樹中每一條從根節(jié)點(對最終分類結果貢獻最大的屬性)到葉子節(jié)點(最終分類結果)的路徑都代表一條決策規(guī)則。

1.3.2 KNN

KNN算法又稱

K

鄰近算法、

K

最近鄰算法,其核心思想是如果一個樣本在特征空間中的

K

個最相鄰的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。

1.3.3 樸素貝葉斯

樸素貝葉斯算法的核心思想非常樸素:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認為此待分類項屬于哪個類別。

1.3.4 SVM

SVM即支持向量機算法,最初提出是為了解決二分類問題,核心思想是基于訓練集在樣本空間中找到最優(yōu)的一條線(超平面),將不同類別的樣本分開。所謂的“支持向量”就是那些落在分離超平面邊緣的數(shù)據(jù)點形成的線。SVM算法也可以用于解決多類別分類問題,此時,支持向量機仍將問題視為二分類問題,但會引入多個支持向量機用來兩兩區(qū)分每一個類,直到所有的類之間都有區(qū)別。

1.3.5 隨機森林

隨機森林是一種集成學習算法,通過構建并結合多個學習器來完成學習任務。隨機森林的出現(xiàn)主要是為了解決單一決策樹可能出現(xiàn)的很大誤差和過擬合的問題,其核心思想是將多個不同的決策樹進行組合,利用這種組合降低單一決策樹有可能帶來的片面性和判斷不準確性。隨機森林中的每一棵決策樹都是獨立、無關聯(lián)的,當對一個新的樣本進行判斷或預測時,讓森林中的每一棵決策樹分別進行判斷,看看這個樣本應該屬于哪一類,然后統(tǒng)計哪一類被選擇最多,就預測這個樣本為哪一類。

1.4 分類模型的評估指標

二分類問題常用準確率、查準率、召回率等指標評估模型的優(yōu)劣,而對于多類別分類問題,有些二分類的評價指標則不適用。

通常使用Kappa系數(shù)對多類別分類模型進行評估。Kappa系數(shù)是統(tǒng)計學中用于評估一致性的一種方法,分類問題的一致性就是模型的預測結果與實際分類結果是否一致。Kappa系數(shù)的取值范圍是[-1,1],值越大,則表示模型的分類性能越好。

Kappa系數(shù)的計算公式為:

(2)

其中,

p

是每一類正確分類的樣本數(shù)量之和除以總樣本數(shù),也就是總體分類精度。假設每一類的真實樣本個數(shù)分別為

a

,

a

,…,

a

;而預測出來的每一類的樣本個數(shù)分別為

b

,

b

,…,

b

;總樣本個數(shù)為

n

,則有:

(3)

2 多類別文本分類方法比較方案的設計

2.1 比較對象

本研究在比較對象上考慮了文本特征表示方法和分類算法兩個維度。其中,文本特征表示選取了TF-IDF、詞嵌入CBOW和詞嵌入SKIP-GRAM三種方法;分類算法包括5種:決策樹、SVM、KNN、樸素貝葉斯和隨機森林。對不同的文本特征表示方法和分類算法進行組合,構成15種分類模型,以這15種分類模型為比較對象。

2.2 比較指標

在比較指標上考慮了時間和分類效果。分類效果使用Kappa系數(shù)來衡量,時間方面包括:(1)文本特征表示的處理時間;(2)分類模型的構建時間與測試樣本的預測時間之和。時間均以秒為單位。

2.3 比較流程

在比較流程上考慮了數(shù)據(jù)規(guī)模與比較次數(shù)?;舅悸肥牵?/p>(1)在原始數(shù)據(jù)集中隨機采樣

N

條數(shù)據(jù);(2)分別使用TF-IDF、詞嵌入CBOW、詞嵌入SKIP-GRAM方法構建這

N

條數(shù)據(jù)的文本特征矩陣,將這

N

條數(shù)據(jù)按照一定的比例(如8∶2)拆分成訓練集和測試集;

(3)分別使用SVM、KNN等不同的分類算法基于不同的文本特征表示構建分類模型,并對測試集進行預測,統(tǒng)計各模型的Kappa系數(shù)、運行時間等指標;

(4)重復步驟(1)~(3)

M

次(如

M

=50)后,計算在數(shù)據(jù)規(guī)模為

N

條數(shù)據(jù)時,

M

次比較后各比較指標的平均值;(5)增加數(shù)據(jù)規(guī)模后繼續(xù)執(zhí)行步驟(1)~步驟(4),如設定每次增加200條數(shù)據(jù),即

N

=

N

+200,得到新的數(shù)據(jù)規(guī)模下

M

次比較后各比較指標的平均值;

(6)當數(shù)據(jù)規(guī)模超過了原始數(shù)據(jù)集的條數(shù)后停止比較,綜合評估不同數(shù)據(jù)規(guī)模下不同模型的性能。

3 多類別文本分類方法比較實例

3.1 數(shù)據(jù)集

3.1.1 原始數(shù)據(jù)集

使用八爪魚采集器從好奇心日報、新浪網(wǎng)、網(wǎng)易等媒體閱讀網(wǎng)站爬取了3 000條不同類別的資訊文本,整理成研究所需要的原始數(shù)據(jù)集,保存到CSV格式的文件中。該數(shù)據(jù)集由分類、標題、正文三個字段組成,如圖2所示。

圖2 原始數(shù)據(jù)集示例

其中,文本類別有6個:商業(yè)、娛樂、游戲、文化、智能和時尚,各類別文本的數(shù)據(jù)量在原始數(shù)據(jù)集中大致呈平均分布,數(shù)據(jù)集適合做多類別文本分類研究。

3.1.2 訓練數(shù)據(jù)集與測試數(shù)據(jù)集

本實例只研究文本標題的自動分類,因此訓練集和測試集只涉及到類別和標題兩個字段。如前文所述,在比較過程中,每次從原始數(shù)據(jù)集中采樣一定規(guī)模的數(shù)據(jù),將這些數(shù)據(jù)按照8∶2的比例拆分成訓練集和測試集。采樣規(guī)模從400條逐漸遞增到3 000條,步長為200,并且,同一規(guī)模的訓練集和測試集進行50次建模比較。

3.1.3 原始數(shù)據(jù)集中“正文”字段的作用

原始數(shù)據(jù)集中每一條數(shù)據(jù)的正文都是一個長文本,正文總字數(shù)達到了7 854 428,完全可以將正文內容作為訓練詞嵌入模型的語料庫。

3.2 標題文本的特征表示

3.2.1 TF-IDF文本特征表示

在R語言環(huán)境下使用quanteda包中的corpus()、tokens()、dfm()、dfm_tfidf等函數(shù)構建標題的TF-IDF文本特征表示模型,主要語法如下:

原始文件<-read.csv(文件名.csv)

標題內容<-corpus(原始文件$標題)

分詞<-tokens(標題內容)

分詞<-tokens_remove(分詞, stopwords(language="zh",source="misc"))

文檔詞條矩陣<-dfm(分詞)

TF-IDF文本特征表示<-dfm_tfidf(文檔詞條矩陣)

以采樣400條數(shù)據(jù)為例,得到的標題文本的TF-IDF文本特征矩陣如圖3所示。

圖3 標題文本的TF-IDF表示矩陣示例

很顯然,使用TF-IDF進行文本特征表示文檔詞條矩陣過于龐大并高度稀疏。

3.2.2 基于詞嵌入的文本特征表示

使用R語言的word2vec包構建基于詞嵌入的文本表示,主要步驟如下:

步驟1:詞嵌入模型訓練文本的分詞、去停用詞等處理。

如前文所述,本實例將原始數(shù)據(jù)集中“正文”字段的所有文本作為訓練詞嵌入模型的語料庫。由于word2vec算法的輸入是詞語列表而不是整篇文章,因此首先需要對訓練語料庫進行分詞、去停用詞、去符號、去數(shù)字等處理,并將分詞后的語料文件保存成CSV格式文件以備后續(xù)訓練詞嵌入模型使用。

步驟2:使用語料文件訓練詞嵌入模型。

使用步驟1形成的語料文件和word2vec函數(shù)生成詞嵌入模型。主要語法如下:

詞嵌入語料<-read.csv(語料文件.csv)

CBOW詞嵌入模型<- word2vec(x=詞嵌入語料$語料庫詞條,type="cbow",dim=50,iter=20,split=" ")

將word2vec函數(shù)中的參數(shù)type設定為“skip-gram”則可以訓練出SKIP-GRAM詞嵌入模型,即:

SKIPGRAM詞嵌入模型<- word2vec(x=詞嵌入語料$語料庫詞條, type="skip-gram",dim=50,iter=20,split=" ")

步驟3:使用詞嵌入模型對標題文本進行特征表示。

基于步驟2訓練出的詞向量模型,使用doc2vec函數(shù)將分詞后的標題內容表示成向量模型,即將每個標題內容映射成50維實數(shù)向量。主要語法如下:

文檔ID<-seq(1:采樣條數(shù)))

數(shù)據(jù)框<- data.frame(doc_id=文檔ID,text=標題文本分詞后的詞表, stringsAsFactors=FALSE)

基于CBOW詞嵌入的文本特征表示<-doc2vec(CBOW詞嵌入模型,數(shù)據(jù)框,type="embedding")

基于SKIP-GRAM詞嵌入的文本特征表示<-doc2vec(SKIPGRAM詞嵌入模型, 數(shù)據(jù)框, type="embedding")

通過上述過程,將每一個標題文本映射成50維的實數(shù)向量。

3.3 文本分類模型的構建及性能評估

對于本研究所涉及的SVM、KNN、決策樹、樸素貝葉斯、隨機森林五種分類算法,在R語言環(huán)境下,使用party、e1071、randomForest等包中提供的函數(shù)進行文本分類模型的構建。

以使用randomForest包中的隨機森林算法構建基于不同特征表示的分類模型為例:

(1)基于TF-IDF的文本特征表示。

TFIDF分類模型<-randomForest(類別~.,TFIDF特征表示的訓練數(shù)據(jù)集,ntree=30,na.action=na.roughfix)

TFIDF預測結果<-predict(TFIDF分類模型,TFIDF特征表示的測試數(shù)據(jù)集,proximity=TRUE)

(2)基于詞嵌入CBOW的文本特征表示。

CBOW分類模型<-randomForest(類別~.,CBOW特征表示的訓練數(shù)據(jù)集,ntree=30,na.action=na.roughfix )

CBOW預測結果<- predict(CBOW分類模型,CBOW特征表示的測試數(shù)據(jù)集,proximity=TRUE)

(3)基于詞嵌入SKIP-GRAM的文本特征表示。

SKIP-GRAM分類模型<-randomForest(類別~.,SKIP-GRAM特征表示的訓練數(shù)據(jù)集,ntree=30,na.action=na.roughfix )

SKIP-GRAM預測結果<- predict(SKIP-GRAM分類模型,SKIP-GRAM特征表示的測試數(shù)據(jù)集,proximity=TRUE)

在模型構建及對測試數(shù)據(jù)集進行預測的過程中統(tǒng)計運行時間,并且在預測之后構建預測值與真實值的混淆矩陣,使用VCD包中的Kappa函數(shù)基于混淆矩陣計算模型的Kappa系數(shù),衡量模型的分類效果。

3.4 模型的比較結果

3.4.1 文本特征表示處理時間的比較

在不同的數(shù)據(jù)規(guī)模下,使用TF-IDF、詞嵌入CBOW和詞嵌入SKIP-GRAM三種方法對文本進行特征表示的處理時間變化如圖4所示。

圖4 不同數(shù)據(jù)規(guī)模下使用不同方法進行 文本特征表示的處理時間

從圖4可以看出:

在相同的數(shù)據(jù)規(guī)模下,詞嵌入的文本特征表示處理時間都遠遠超過TF-IDF,這是因為詞嵌入需要對大量的語料庫進行訓練,而在兩種詞嵌入方法中,SKIP-GRAM比CBOW的訓練時間更長(大約是2.5倍)。

三種特征表示的處理時間與數(shù)據(jù)規(guī)模的相關系數(shù)如表1所示。

表1 文本表示處理時間與數(shù)據(jù)規(guī)模的相關性

從表1可以看出:

(1)TF-IDF文本特征表示的處理時間與數(shù)據(jù)規(guī)模高度正相關,采樣數(shù)據(jù)越多,處理的詞條數(shù)越多,TF-IDF文本特征表示的處理時間越長;

(2)兩種詞嵌入特征表示的處理時間與所處理數(shù)據(jù)的數(shù)據(jù)規(guī)模之間的相關性不強。

3.4.2 模型構建與預測時間比較

15種模型在不同數(shù)據(jù)規(guī)模下運行時間的變化如圖5所示。由于使用TF-IDF進行文本特征表示的模型與使用詞嵌入進行文本特征表示的模型在運行時間上數(shù)值范圍相差極大,所以在圖5中用上下兩幅圖來闡釋,上圖表示使用TF-IDF進行文本特征表示的模型,下圖表示使用詞嵌入進行文本特征表示的模型。

圖5 不同數(shù)據(jù)規(guī)模下不同模型的分類建模與預測時間

從圖5可以看出:

(1)15種模型的運行時間均與數(shù)據(jù)規(guī)模高度正相關,相關系數(shù)如表2所示。

表2 模型的運行時間與數(shù)據(jù)規(guī)模的相關性

(2)在相同數(shù)據(jù)規(guī)模、相同的文本分類算法下,文本特征表示使用TF-IDF的模型運行時間遠遠超過文本特征表示使用詞嵌入模型的運行時間。

(3)綜合來看,在相同的數(shù)據(jù)規(guī)模下,隨機森林+CBOW模型的運行時間最短;而決策樹+TF-IDF模型的運行時間最長。最短時間與最長時間的線性擬合關系如圖6所示。

圖6 隨機森林+CBOW及決策樹+TF-IDF模型 運行時間的線性擬合

3.4.3 模型的分類效果比較

文本多分類模型的分類效果使用Kappa系數(shù)來衡量,15種模型在不同數(shù)據(jù)規(guī)模下Kappa系數(shù)的變化如圖7所示。

圖7 不同數(shù)據(jù)規(guī)模下不同模型的分類效果

從圖7可以看出:

(1)在本研究的任何一種數(shù)據(jù)規(guī)模下,SVM+CBOW模型的分類效果都是最好的;而樸素貝葉斯+TF-IDF模型的分類效果則最差。

(2)在相同的數(shù)據(jù)規(guī)模、相同的分類算法下,文本表示使用TF-IDF方法的模型分類效果都是最差的;使用詞嵌入方法的分類模型的Kappa系數(shù)要比使用TF-IDF的模型的Kappa系數(shù)大很多;兩種詞嵌入模型的Kappa系數(shù)相差不大,總體來說,CBOW模型的分類效果略優(yōu)于SKIP-GRAM模型。

(3)隨機森林作為集成算法,容易給人造成的誤解是:其性能一定比單一算法要好。但比較結果發(fā)現(xiàn),在本研究中,當使用詞嵌入進行文本特征表示時,隨機森林的分類效果雖然比單一決策樹的分類效果要好,但卻比SVM、KNN、樸素貝葉斯的分類效果差;當使用TF-IDF進行文本特征表示時,隨機森林的分類效果最好,然后依次是決策樹、KNN、SVM和樸素貝葉斯。這說明:隨機森林在高維度、大規(guī)模數(shù)據(jù)集的分類處理上具有一定的優(yōu)勢,但對于少量和低維數(shù)據(jù)集的分類不一定可以得到很好的分類效果。

15種模型的分類效果與數(shù)據(jù)規(guī)模的相關性如表3所示。

表3 模型的分類效果與數(shù)據(jù)規(guī)模的相關性

從表3可以看出:

(1)KNN算法和隨機森林算法與高維的TF-IDF文本表示方法組合時,數(shù)據(jù)規(guī)模越大分類效果越好,說明這兩種算法適合對數(shù)據(jù)量大、高維的數(shù)據(jù)集進行分類處理。

(2)決策樹算法與低維的詞嵌入文本表示方法組合時,分類數(shù)據(jù)量越大分類效果越好,說明決策樹方法適合對大量的低維數(shù)據(jù)進行分類處理。

(3)樸素貝葉斯和SVM算法明顯不適合對高維數(shù)據(jù)進行處理,當使用TF-IDF進行文本表示時,分類數(shù)據(jù)量越大,這兩種算法的分類效果越差。

4 結束語

本研究綜合考慮了數(shù)據(jù)規(guī)模、數(shù)據(jù)維度(文本表示方法)、分類算法三方面,設計了多類別文本分類方法比較方案,從時間和分類效果兩個維度評估分類模型的性能。綜合評估后認為,對于多類別文本分類問題:

(1)文本特征表示不建議使用TF-IDF方法。使用TF-IDF方法,盡管在前期文本特征表示的處理時間上有一定的優(yōu)勢,但是由于文本特征矩陣過于稀疏和龐大,導致分類模型的運行時間過長、分類效果亦極不理想。

(2)在兩種word2vec詞嵌入算法中,建議選擇CBOW方法,該方法不僅在文本特征表示階段具有明顯的時間優(yōu)勢,而且在建模階段,CBOW與樸素貝葉斯、SVM、KNN算法組合的模型分類效果均非常理想。

(3)在分類算法的選擇上,當數(shù)據(jù)規(guī)模不是很大時,不建議選擇隨機森林等集成算法,隨機森林算法的優(yōu)勢體現(xiàn)在對高維數(shù)據(jù)的處理上,其與詞嵌入文本表示方法組合未必能達到非常理想的分類效果。

猜你喜歡
決策樹類別文檔
淺談Matlab與Word文檔的應用接口
有人一聲不吭向你扔了個文檔
輕松編輯PDF文檔
一起去圖書館吧
簡述一種基于C4.5的隨機決策樹集成分類算法設計
簡析基于概率預測的網(wǎng)絡數(shù)學模型建構
Word文檔 高效分合有高招
決策樹學習的剪枝方法
決策樹在施工項目管理中的應用
選相紙 打照片
禹城市| 岢岚县| 银川市| 霍林郭勒市| 佛山市| 当阳市| 鸡泽县| 上林县| 玉龙| 罗田县| 涞水县| 南京市| 十堰市| 永德县| 盐津县| 淳化县| 新疆| 沂源县| 农安县| 清流县| 万山特区| 板桥市| 本溪市| 金昌市| 大悟县| 阿拉善左旗| 肇源县| 景泰县| 遵义市| 临泉县| 图木舒克市| 汝城县| 怀柔区| 营山县| 环江| 来凤县| 错那县| 基隆市| 左贡县| 宣威市| 丹寨县|