一個唐詩三百首風格的唐詩產生器.用Keras LSTM實作.
一般常見的範例是用英文的,然後拆成字元的形式.但是中文沒辦法這樣做,它每個字都是單獨的. 一般的英文字元分類大概3, 40個,但光是用唐詩三百首為資料的詞彙就有2千多個.所以在分類訓練上來說比較難達到精確的結果.
資料量適中 詩講究的是意境,人腦會自動腦補其句子含義.即使句子不精確但好像還像回事.
在Google Colab上訓練,因為不用錢又有GPU可用.所以基本上不用安裝,除非要用jieba做分詞.這個部分請自行安裝. 台灣時間下午常常會ResourceExhaustedError,早上訓練比較不會.或是把GPU關掉,就慢一點但還是可以跑.大概慢10倍吧. 沒有GPU的話一個epoch大概50~60秒.建議還是用有GPU的環境比較好
- 如果在本機跑的話,folder='data/'.如果在Google Colab跑要記得指向放訓練文字檔的目錄.
- 不想重新訓練的話,跳過model.fit()那一段
- 指定藏頭詩的開頭字,例如:['絕', '妙', '好', '詩'], ['一', '二', '三', '四']
- 要注意的是,因為用台詩三百首產生詞彙表,藏頭詩的每個字都必須在詞彙表裡.
- 另外,唐詩有分5言、7言,所以要指定每句的長度是5言還是7言.至於絕句還是律詩則看給幾個起頭字.
['絕', '妙', '好', '詩']
5言
絕頂誰為我
妙獨立揚生
好以橫波上
詩文藻道旁
7言
絕倫自來歸遠去
妙獨釣春草群塔
好以菲薄幸李斯
詩不得清瑟玳筵