IT生活:用遺傳算法讓電腦為你寫宋詞
相逢縹緲,窗外又拂曉.長憶清弦弄淺笑,只恨人間花少. *菊不待清尊,相思飄落無痕.風雨重陽又過,登高多少黃昏.
這首《清平樂.*菊》的作者是一臺計算機,比我寫的好,十分佩服。且平仄、押韻十分工整,沒有明顯的句法錯誤,沒有讀著別扭的句子,風格婉約,傷感悲秋。這還是一臺CPU 1.83GHz,內存512M計算機么?看完《一種宋詞自動生成的遺傳算法及其機器實現》這篇論文后,我對詩人、藝術家們十分同情,會有一天他們下崗的。
除了對人類未來的擔憂,我感興趣的是研究者們解決問題的思路。我們這樣分析:
1. 基于統計學的詞庫。雖說漢語常用詞匯不過3千個,可是這些詞放在不同的上下文中所能表達的意思確千差萬別。登山則情滿于山,觀海則意溢于海,人類的語言是 人類情感的抒發。我認為要讓計算機寫詩,最基礎的工作就是建立一個包含情感類別、語義、音韻等要素的元數據庫。
2. 填詞的過程是搜索的過程。回想高中學寫宋詞的時候,總是安裝詞牌的要求一個一個詞的填寫,這是從大腦中搜索的過程,對于計算機而言是一個類似的過程。我們 可以采用啟發式搜索,使得搜索總是沿著較優的方向前進。可以根據詞法等相關概念,從詞庫挑選一系列備用詞,沿著計算出來的評價(打分)進行搜索。
這篇論文和我前段時間讀的人工魚模擬的的論文類似,在解決搜索問題上都使用了遺傳算法。遺傳算法(Genetic Algorithm)是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法(引:百度百科)。
這是一篇很有意思的論文,所以我寫了些自己的想法。語義分析我不懂也不是很感興趣,但是,通過讀論文來開拓視野,長長見識,推薦大家多逛逛相關網站:)
【編輯推薦】