TextCNN由 Kim et al.(2014, 紐約大學)在Convolutional Neural Networks for Sentence Classification 提出,是以卷積網路處理文本分類的開山之作之一。
資料集
Highly Rated Children Books And Stories,一個有 430 本童書的敘述及其適合年齡的資料集。
網路
在Collobert et al.(2008)將CNN導入到NLP領域後,CNN便在NLP領域開始蓬勃發展,TextCNN即為其中一個經典代表作。
概念上是將嵌入向量經過不同大小的卷積核提取特徵後,組合成特徵向量,輸出給分類器。
特別的地方是將嵌入層視為單一通道,而濾波器的大小是(word n-grams, 詞向量維度),而不是將詞向量作為卷積層的輸入通道數。
評估
資料清洗階段以童書的敘述作為文本,適閱年齡的下界作為標籤判斷,大於八歲為適合小學以上(8y+),大於三歲為適合幼稚園(3~8y),其他則歸類在幼兒(3y-),驗證準確度達69.7%。
由於資料集為kaggle上的小眾資料集,且資料清洗和標籤設定較為隨興,能達到該準確度已經超過預期。
筆記
- 訓練速度和推論速度都較LSTM快上非常多。
- 模型大小約 273 KiB。
結語
本文介紹如何做出簡單的textCNN。實作代碼可參考以下連結。
參考