Pytorch實作系列 — TextCNN

mz bai
Dec 4, 2020

--

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, 詞向量維度),而不是將詞向量作為卷積層的輸入通道數。

model concept

評估

資料清洗階段以童書的敘述作為文本,適閱年齡的下界作為標籤判斷,大於八歲為適合小學以上(8y+),大於三歲為適合幼稚園(3~8y),其他則歸類在幼兒(3y-),驗證準確度達69.7%。

由於資料集為kaggle上的小眾資料集,且資料清洗和標籤設定較為隨興,能達到該準確度已經超過預期。

confusion matrix (test)

筆記

  1. 訓練速度和推論速度都較LSTM快上非常多。
  2. 模型大小約 273 KiB。

結語

本文介紹如何做出簡單的textCNN。實作代碼可參考以下連結。

參考

--

--

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet