少量資料文字分類避免過擬合的方法

2022-07-05 17:36:11 字數 1105 閱讀 2107

1 概述

雖說現在深度學習在文字分類上取得了很大的進步,但是很多時候在工業界沒有與之匹配的資料量,在少量資料的情況下,使用深度學習很容易出現過擬合,而此時使用傳統的tf-idf加機器學習又無法取得良好的效果。針對這種情況,我們來看看在使用深度學習時有哪些方法也盡量地避免過擬合。

2 過擬合的處理方法

1)l1和l2正則化

對模型中的權重係數加上l1或l2正則處理,將無關的權重係數懲罰到乙個很小的值,甚至為0。

2)dropout 正則化

dropout正則化一般使用在全連線層中。 

3)提早停止

當發現在繼續迭代時,驗證集上的損失開始上公升時,即使此時訓練集上的損失在下降,也應該停止迭代。

4)資料增強

在影象中我們知道可以通過對進行翻轉,裁剪,縮放,調整對比度等來進行資料增強,那麼在文字中又該如何增強資料呢?

a)同義詞替換

在有些**中提出了同義詞替換,但在使用word2vec詞嵌入時,同義詞之間的向量是非常相似的,也就是說你輸入到模型中的資料實際上沒有什麼變化,此時的效果並不會很好。

b)反向翻譯

利用機器翻譯的技術將原始的句子翻譯成一種目標語言,然後又將這種目標語言重新翻譯回來,例如英文文字分類時,先將英文翻譯成西班牙語,然後又反向翻譯為英文,利用這種方法可以得到兩個不同的句子。有時候能取得不錯的效果。

c)文件裁剪

如果此時是長文字分類時,有時候一篇長文字中的主要思想會重複好幾次,此時我們只要把這含有中心思想的幾處給裁剪出來,就可以將乙個長文字裁剪成多個文字。

d)生成對抗網路

生成對抗網路已經被用在影象中的資料增強中,也可以嘗試用在文字中。

5)遷移學習

a)預訓練詞向量

例如常用的word2vec,glove等

b)句子向量

直接將文件用句子向量表示,例如facebook和谷歌的句編碼器,或者skip-thought等。

c)預訓練的語言模型

例如ulmfit,bert等。

d)多工學習

可以構建多個任務協同學習

6)特徵工程

人工從文字中抽取特徵工程,然後利用較小的模型來建模。

資料探勘 文字分類(五)

首先是取名詞,我們要把名詞取出來,是因為一篇文件,名詞最能夠代表這一篇文件屬於哪一類的,其他的形容詞,副詞之類的詞語並不能很好的代表某一類文件。所以要取名詞,這個當然是用正規表示式了。我們看一下分詞結果 名詞詞性的詞分詞工具會用n表示,那麼我們就用正規表示式去匹配n就好了。根據廖老師的python教...

文字分類 libsvm

關於 libsvm 的介紹以及相關 網上很多,感興趣可以找找。這是libsvm 這裡主要是針對之前學習過的幾種特徵篩選演算法用 libsvm 進行比較。採用搜狗實驗室的資料,選擇商業類文字 1001 篇,娛樂類文字 1208 篇,測試集 29904 篇。分別採用文件頻次,卡方分布,互資訊,資訊增益來...

文字分類四

下面是使用knn演算法來做的。資料均是由前面的程式生成的。做完這個之後,就是將每一步整合起來。然後再盡可能的優化,使得程式效率更好。然後可以嘗試不同的特徵選擇演算法和分類演算法,當然最後要是能有自己的一些小小改進就好了。不過至少有了乙個還可以的結果了。include include include ...