models生成與載入

bbzz2發表於2017-09-11

TensorFlow練習2: 對評論進行分類

本帖是前一貼的補充:

  1. 使用大資料,瞭解怎麼處理資料不能一次全部載入到記憶體的情況。如果你記憶體充足,當我沒說
  2. 訓練好的模型的儲存和使用
  3. 使用的模型沒變,還是簡單的feedforward神經網路(update:新增CNN模型)
  4. 如果你要執行本帖程式碼,推薦使用GPU版本或強大的VPS,我使用小筆記本差點等吐血
  5. 後續有關於中文的練習《TensorFlow練習13: 製作一個簡單的聊天機器人》《TensorFlow練習7: 基於RNN生成古詩詞》《TensorFlow練習18: 根據姓名判斷性別

在正文開始之前,我畫了一個機器學習模型的基本開發流程圖:

TensorFlow練習2: 對評論進行分類

使用的資料集

使用的資料集:http://help.sentiment140.com/for-students/ (情緒分析)

資料集包含1百60萬條推特,包含消極、中性和積極tweet。不知道有沒有現成的微博資料集。

資料格式:移除表情符號的CSV檔案,欄位如下:

  • 0 – the polarity of the tweet (0 = negative, 2 = neutral, 4 = positive)
  • 1 – the id of the tweet (2087)
  • 2 – the date of the tweet (Sat May 16 23:58:44 UTC 2009)
  • 3 – the query (lyx). If there is no query, then this value is NO_QUERY.
  • 4 – the user that tweeted (robotickilldozr)
  • 5 – the text of the tweet (Lyx is cool)

training.1600000.processed.noemoticon.csv(238M)
testdata.manual.2009.06.14.csv(74K)

資料預處理

上面程式碼把原始資料轉為training.csv、和tesing.csv,裡面只包含label和tweet。lexcion.pickle檔案儲存了詞彙表。

如果資料檔案太大,不能一次載入到記憶體,可以把資料匯入資料庫
Dask可處理大csv檔案

開始漫長的訓練

上面程式佔用記憶體600M,峰值1G。

執行:

TensorFlow練習2: 對評論進行分類

訓練模型儲存為model.ckpt。

使用訓練好的模型

上面使用簡單的feedfroward模型,下面使用CNN模型

使用了CNN模型之後,準確率有了顯著提升。

相關文章