帶你用4行代碼訓練RNN生成文本(附資源)

帶你用4行代碼訓練RNN生成文本(附資源)

翻譯:陳之炎

校對:丁楠雅

本文共1400字,建議閱讀6分鐘。

本文介紹僅需幾行代碼就能訓練出任意大小和複雜度的文本的神經網絡文本發生器。

如何在無需構建和調整神經網絡的情況下,輕鬆地生成文本?讓我們來看看下面這個項目,它允許您用幾行代碼就能在任意文本數據集上輕鬆地訓練出任意大小和複雜度的文本,這便是神奇的神經網絡文本發生器。

文本生成對機器學習和NLP初學者來說是很有趣的項目之一,但同時也是一個相當令人生畏的項目。至少對於我來說是這樣的。

值得慶幸的是,網上有各種各樣的很棒的材料可以用來學習如何利用RNN生成文本,從理論到技術深入,再到那些明確地專注於實踐的材料。也有一些非常好的帖子,涵蓋了所有內容。所有這些材料都有一個特別的共同點:在這個過程中的某個時刻,你必須構建和調整一個RNN來完成這項工作。

這顯然是一項有價值的工作,尤其是為了學習,但如果你對更高層次的抽象(無論你的原因是什麼)感興趣,又該怎麼辦呢?如果你是一個數據科學家,需要以RNN文本生成器的形式構建塊來插入你的項目,該怎麼辦?或者,如果,作為一個新來的人,你只是想把你的手“不是太髒”作為測試水的一種手段,或者作為進一步深入挖掘的動力,那又該怎麼辦呢?

在這種情況下,讓我們看一下 textgenrnn,它是一個允許你“用幾行代碼在任何文本數據集上輕鬆地訓練出任意大小和複雜度文本的神經網絡”的項目。textgenrnn由BuzzFeed的助理數據科學家Max Woolf和前Apple Software QA工程師撰寫。

textgenrnn是建立在Keras和TensorFlow之上的,可以用於生成字符和單詞級別的文本(字符級別是默認的)。網絡體系架構使用注意力加權和跳過嵌入來加速訓練和提高質量,並允許調整多個超參數,例如RNN大小、RNN層和包含雙向RNN。你可以在Github repo這篇介紹性博客文章中閱讀到更多關於textgenrnn及其特性和體系架構的信息:

https://github.com/minimaxir/textgenrnn

帶你用4行代碼訓練RNN生成文本(附資源)

生成‘Hello,World!’這類文本和生成特朗普的推文相類似 (至少在我看來是這樣),那麼讓我們一起來看看吧。利用Textgenrnn默認的預訓練模型可以輕易地訓練新的文本,同時你也可以利用textgenrnn來訓練一種新的模型(只需在它的訓練函數中添加new_model=True語句)。既然我們想看看我們能有多快地生成推文,那就開始吧。

獲取數據

帶你用4行代碼訓練RNN生成文本(附資源)

我從特朗普推特檔案館(Trump Twitter Archive)抓取了唐納德·特朗普從2014年1月1日至2018年6月11日(在昨日撰寫的)的一些推文,其中顯然包括了特朗普就任美國總統前後的推文。特朗普推特檔案館這個網站可以查詢和下載到總統的推文。我選擇那個日期範圍內的文本,因為我不關心任何元數據,並將其保存到一個名為trump-tweets.txt的文本文件中。

訓練模型

讓我們看看用textgenrnn生成文本是多麼簡單。以下4行代碼是我們導入庫、創建文本生成對象、在trump-tweets.txtfile上對模型進行10次訓練所需的全部內容,然後生成一些樣例推文。

帶你用4行代碼訓練RNN生成文本(附資源)

大約30分鐘後,這是生成的文本:

帶你用4行代碼訓練RNN生成文本(附資源)

撇開政治不談,考慮到我們僅僅用12K的推文在僅僅10個epoch進行訓練,這些生成的推文並不是太糟糕。想要利用temperature (Textgenrnn默認值為0.5)來獲得一些更有創意的推文?讓我們試試:

帶你用4行代碼訓練RNN生成文本(附資源)

那就不那麼令人信服了。更保守的、更有信心的模型是:

帶你用4行代碼訓練RNN生成文本(附資源)

現在,上述文本的內容似乎更合理些。

當然,這並不完美。我們還可以嘗試其他各種各樣的東西。好消息是,如果你不想自己來解決方案,那麼可以利用textgenrnn來實現 (同樣,請參閱Gizub repo):

  • 從零開始訓練我們自己的模型。
  • 用更多的樣本數據來訓練更多的迭代
  • 調優其他超參數。
  • 對數據進行預處理(至少是為了消除假URL)

更為有趣的是,也是我最為感興趣的是,如何利用一個默認的textgenrnn模型來實現自定義、調優的模型?我們將在下一次的內容中做深入探討。

譯者簡介

帶你用4行代碼訓練RNN生成文本(附資源)

陳之炎,北京交通大學通信與控制工程專業畢業,獲得工學碩士學位,歷任長城計算機軟件與系統公司工程師,大唐微電子公司工程師,現任北京吾譯超群科技有限公司技術支持。目前從事智能化翻譯教學系統的運營和維護,在人工智能深度學習和自然語言處理(NLP)方面積累有一定的經驗。業餘時間喜愛翻譯創作,翻譯作品主要有:IEC-ISO 7816、伊拉克石油工程項目、新財稅主義宣言等等,其中中譯英作品“新財稅主義宣言”在GLOBAL TIMES正式發表。能夠利用業餘時間加入到THU 數據派平臺的翻譯志願者小組,希望能和大家一起交流分享,共同進步。


分享到:


相關文章: