基於Tensorflow Estimators的文本分類系列之一
作者 |Julian Eisenschlos Sebastian Ruder
來自:AI前線譯者 | 徐鵬
大家好,今天的推送給大家帶來的是如何運用tensorflow提供的估計演算法來進行文本類,一下是主要內容:
1. 使用datasets載入數據
2. 使用預罐裝估計器構建基線。
3. 使用詞向量。
4. 用卷積和LSTM圖層構建自定義估計器。
5. 載入預先訓練的詞向量。
6. 使用TensorBoard評估和比較模型。
歡迎閱讀引入TensorFlow數據集和估算器的博客系列的第4部分。 您不需要閱讀所有以前的內容,但是如果您想刷新以下任何概念,請看一看。 第1部分重點介紹預先制定的估算器,第2部分討論特性列,第3部分介紹如何創建自定義估算器。
在第4部分中,我們將基於上述內容構建自然語言處理(NLP)中的不同系列問題。 特別是,本文演示如何使用自定義TensorFlow估計器,詞向量和tf.layers模塊來解決文本分類任務。 一路上,我們將學習word2vec並將學習作為一種技術來提高模型在標籤數據匱乏的數據集上表現足夠的能力。
我們會告訴你相關的代碼片段。 以下是您可以在本地或Google Colaboratory上運行的完整Jupyter Notebook。 簡單的.py源文件也可以在這裡找到。 請注意,代碼的編寫是為了演示Estimators如何在功能上工作,並未針對最高性能進行優化。
我們的任務
我們將使用的數據集是IMDB大型電影評論數據集,其中包含25,000個用於培訓的高度極地電影評論,以及25,000個用於測試的電影評論。 我們將使用這個數據集來訓練一個二元分類模型,能夠預測評論是正面還是負面。
Keras為導入數據集提供了一個方便的處理程序,該數據集也可作為序列化numpy數組.npz文件在此處下載。 對於文本分類,標準化是限制辭彙的大小,以防止數據集變得太稀疏和高度,導致潛在的過度擬合。 出於這個原因,每個評論包含一系列從4(數據集中最頻繁的單詞)到4999(相當於橙色)的單詞索引。 索引1表示句子的開始,並且索引2被分配給所有未知(也稱為詞外或OOV)令牌。 這些索引是通過預處理流水線中的文本數據而獲得的,該流水線首先清理,標準化並標記每個句子,然後按頻率建立索引每個令牌的詞典。
在我們將數據載入到內存中後,我們用0將每個句子填充到固定大小(這裡是200),以便我們有兩個2維25000×200分別用於訓練和測試的陣列。
vocab_size = 5000
sentence_size = 200
(x_train_variable, y_train),
(x_test_variable, y_test) = imdb.load_data(num_words=vocab_size)
x_train = sequence.pad_sequences(
x_train_variable,
maxlen=sentence_size,
padding="post",
value=0)
x_test = sequence.pad_sequences(
x_test_variable,
maxlen=sentence_size,
padding="post",
value=0)
以上是今天的主要內容,主要介紹了文本分類的數據來源,接下來我們會繼續介紹文本分類的輸入、模型構建、輸出以及使用場景。
-今晚直播預告-
※遷移學習之Domain Adaptation
※推薦 淺析兩代MobileNet
TAG:AI講堂 |