免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
機器是如何作出詩的?作詩機算法剖析。

前言:


我們先看四首詩,這里面,兩首是唐詩人元稹的作品,兩首是作詩機的作品。你能看得出來嗎?


七絕《清明》

對鏡空嗟白發(fā)新,微吟還喚夢中人。

登樓入望青山舊,隔斷紅塵二十春。


五律《清明》

清明來向晚,山淥正光華。

楊柳先飛絮,梧桐續(xù)放花。

鴽聲知化鼠,虹影指天涯。

已識風云意,寧愁雨谷賒。


七絕《寒食》

今年寒食好風流,此日一家同出游。

碧水青山無限思,莫將心道是涪州。


五律《寒食》

傷心曾失所,君子欲何歸?

瑤草誠難補,黃花孰可依。

愁侵燈自照,老去葉初飛。

世事同為客,青山對拂衣。


  • 筆者在17年前(2000年)在自己的個人網(wǎng)站上用“稻香老農(nóng)”的網(wǎng)名發(fā)布了第一代算法的作詩機產(chǎn)品,是國內(nèi)第一款機器合成詩詞的軟件,至今已經(jīng)被使用超過2億次。

  • 2017年初,采用第二代算法的作詩機發(fā)布在公眾號“作詩機”上。上面四首中的其中兩首,就是采用第二代算法機器直接輸入題目進行機器合成的。

  • 公眾號“作詩機”有兩個功能板塊:

        1、超級詞匯:提供字、詞匯的各種屬性、關(guān)聯(lián)查詢。

        2、智能創(chuàng)作:自動作詩,填詞。

  • 使用第三代算法的軟件正在調(diào)試,預計年內(nèi)發(fā)布。


我這里盡可能用最通俗的語言剖析一下作詩機的第二代算法。網(wǎng)上時常見到一些大學、科研機構(gòu)研究的機器合成算法,遺傳算法、精英策略、輪盤賭算法等等……寫得很深奧,其實說白了,都差不多一個意思。


機器作詩的三個步驟

總的來說,二代算法的作詩機寫一首詩,經(jīng)歷了三個步驟:

  • 第一步、事先讓機器學習約50萬首律詩和絕句,形成幾個能表現(xiàn)“題目”,“句子”和“詞匯”三者關(guān)系的數(shù)據(jù)庫。

  • 第二步、根據(jù)題目,用和題目相關(guān)的詞匯形成每個句子的第一個詞匯,然后再形成每個句子,然后機器先合成出一首原型詩。

  • 第三步、即時根據(jù)格律要求、詞匯間關(guān)系的緊密程度,優(yōu)化原型詩,直到符合格律或達到設(shè)定的優(yōu)化次數(shù),最后輸出。


壹、步驟一:機器學習了什么?


舉個例子,機器學習李白的《望廬山瀑布》:


日照香爐生紫煙,遙看瀑布掛前川。

飛流直下三千尺,疑是銀河落九天。


1、首先是分詞(把句子分割成詞匯),一個是題目需要分詞,一個內(nèi)容需要分詞。


(1)題目通過算法可以分為:望/廬山/瀑布。其中廬山和瀑布都是專用名詞。機器會認為這首的主題有可能是“廬山”或者“瀑布”。

但到底是“廬山”還是“瀑布”呢?這又是另外一個預先就要先計算好的課題:

我們可以把這首詩里的詞匯取出來,再去匹配其他詩詞,如果發(fā)現(xiàn)在一定的適配度下,以哪個詞為題的詩詞更多,我們就會認為這首詩的主題哪個詞。(當然,通過計算,我們的結(jié)果是:這首詩的主題是“瀑布”而不是“廬山”)。


(2)然后就是內(nèi)容分詞,詩內(nèi)容很容易,就2-2-2-1或2-2-1-2不外乎這兩種。


Tips:詞如何分詞?詞的分詞則麻煩一些,詞有幾十個詞牌有領(lǐng)字(也叫一字逗、一字領(lǐng)),可以先根據(jù)詞譜來分詞。然后再用常規(guī)的分詞技術(shù),常見有領(lǐng)字的詞牌有《沁園春》等三十幾個詞牌(見文末的附錄)。


例詩內(nèi)容分詞后的效果:


日照/香爐/生/紫煙,遙看/瀑布/掛/前川。

飛流/直下/三千/尺,疑是/銀河/落/九天。


2、分詞完,我們要形成三種數(shù)據(jù):

  • 推薦詞數(shù)據(jù)庫:詞匯之間前后關(guān)系的數(shù)據(jù)庫。

  • 共現(xiàn)詞庫:能表現(xiàn)題目和詞匯關(guān)系的數(shù)據(jù)庫。

  • 對詞庫:對仗詞數(shù)據(jù)庫。


(1)推薦詞數(shù)據(jù)庫:把幾十萬首詩過一遍,去掉重復的,我們會得到大約120萬組“前后推薦詞”,什么叫“推薦詞”?

這一首里:“日照”是“香爐”的前推薦詞?!跋銧t”則是“日照”的后推薦詞。推薦詞數(shù)據(jù)庫不只預示詞匯間的前后關(guān)系,更重要的是,預示詞匯間“有沒有關(guān)系”。如果有很多詩詞句子里都有日照和香爐,不管先后,我們可以理解為日照和香爐“很有關(guān)系”,由于古詩詞的特殊性,大多數(shù)詞匯前后關(guān)系不重要,可以互為推薦詞。


(2)共現(xiàn)詞庫:什么叫共現(xiàn)詞?

在一種主題的中,共同出現(xiàn)的詞匯。

李白這首《望廬山瀑布》,題目我們通過機器分詞,然后用詞性篩選,我們得到主題:“瀑布”。

我們已經(jīng)事先通過另一個機器學習程序,把數(shù)十萬首詩詞做了分類,比如瀑布,我們得到大約有三四百首以瀑布為主題的詩詞。這幾百首詩里經(jīng)常共同出現(xiàn)的詞匯,我把他它們叫共現(xiàn)詞。

比如經(jīng)常在瀑布這個主題里出現(xiàn)的詞匯(共現(xiàn)詞)大致是:峰前、銀河、飛泉、清谷、壁山、煙霞……

體會下,這些詞匯是不是和“瀑布”關(guān)系密切?

 

(3)對仗詞庫:我們知道律詩中間兩聯(lián)需要對仗,所以,機器在學習形成前兩個庫的同時,從中間兩聯(lián)同時獲得了對詞,大約得到100萬組不重復的對詞。

對詞哪個對子重復最多,猜猜?居然是“天上”對“人間”,北京那家夜總會起名字人莫非研究過?


Tips:對仗詞只是詩里有嗎?不是,不少詞里也有。有些詞牌某兩句會推薦使用對仗句(如《浣溪沙》),或者某個一字逗后面推薦使用幾組對仗句(如《滿江紅》)。

詞里的對仗句也出了很多名句,如“無可奈何花落去,似曾相識燕歸來?!保秩纭白栽陲w花輕似夢,無邊絲雨細如愁?!?/p>

推薦使用對仗的詞牌有十幾個,見文后附錄。我不知道這里用“詞牌推薦使用”是否合適,也可能是某人用對仗出了名句,大家就跟著學了,而后就成了慣例。


有一點提醒,從詞里獲得的對仗詞,往往無法用在詩里面。因為律詩里獲得的對仗詞,平仄也是相對的,而詞里則未必,因為詞詩根據(jù)詞譜填的。


3、這三個數(shù)據(jù)庫都可以使用超級詞匯工具查詢:

以瀑布為例:

這里,“走得近”的詞就是我上面說的共現(xiàn)詞。


貳、步驟二:根據(jù)題目機器合成出一首原型詩。


這個里有三個問題要解決:

  • 怎么根據(jù)題目獲取和題目相關(guān)的詞匯。

  • 怎么根據(jù)詞匯形成句子。

  • 律詩怎么處理。


1、從用戶的題目獲取詞匯:從上面的共現(xiàn)詞庫獲取。

如上面說到的“瀑布”,我們已經(jīng)從三四百首瀑布里獲得了瀑布的共現(xiàn)詞:

瀑布:飛流、銀河、飛泉、清谷、壁山、煙霞……

仔細看看,是否這些詞匯放在寫“瀑布”的詩里意思還是合適的?


  • 這里我們選四個分配給四個句子。每個句子就有了一個共現(xiàn)詞。


2、如何讓詞匯形成句子:從前后推薦詞庫里獲得,我還還是以瀑布為例:

 

在公眾號超級詞匯里,查找瀑布,我們看到:

荷花的前推薦詞為:千尋、奔騰、倒懸、飛來、窗前……

荷花的后推薦詞為:半空落、出空微、穿危石、掛峰頭、飛晴雨……


這個時候,哪怕閉上眼睛,隨便把“前推薦詞” “瀑布” “后推薦詞”,一組合,都是連貫的句子:


  • 千尋瀑布半空落

  • 飛來瀑布出空微

  • 倒懸瀑布掛峰頭

  • 窗前瀑布飛晴雨


3、律詩的合成。絕句中間加上兩聯(lián),就是律詩,分別用對詞庫。


Tips:其實,在我的軟件里,不管你選擇什么體裁,軟件都是寫一首七言律詩,然后裁剪成你要體裁。


  • 五律:七律砍掉前兩字,就是五律。

  • 七絕:“絕”本來就是“截”的意思,七律砍掉任意連續(xù)的兩聯(lián)就是七絕。

  • 五絕:七絕砍掉前兩字,就是五絕。


4、到了這一步結(jié)束,我們已經(jīng)把詞匯都填進去了:


  • 通過用戶的題目,為每一句分配了一個共現(xiàn)詞。(這也確定了整首詩的大致意思)

  • 把每一句的共現(xiàn)詞,用“前推薦詞” 共現(xiàn)詞 “后推薦詞”已經(jīng)寫好了句子。(這里確保了每個句子的連貫性)


只是:平仄還沒有考慮,押韻還沒有考慮。后面第三步會說明如何交叉、優(yōu)化和收斂到符合格律、符合押韻。


Tips:詩的平仄還好,就平仄。詞就麻煩很多,不少地方不止是要求仄,還要求是仄里的去聲或者入聲。

正如李清照在《詞論》中提出“蓋詩文分平側(cè),而歌詞分五音,又分五聲,又分六律,又分清濁輕重?!?/span>

但從技術(shù)的角度來說,由于作詩機詩按平水韻,平水韻有106個韻部(特別是有些窄韻、險韻和啞韻,可選詞匯很少);詞按詞林正韻,有19個韻部。就從這點來說,詩可選的詞匯限制多很多。


叁、最后一個步驟:優(yōu)化和輸出。

  • 這個時候,只要從四個共現(xiàn)詞(絕句為例)中,以格律為約束條件,通過交叉和迭代,收斂到同一個韻部就可以了。

  • 交叉、迭代技術(shù)性比較強,這里就不詳細解釋了,總之,目的就是優(yōu)化。

  • 二代算法為了保證趣味性,比如每次都要形成不同的詩詞,不能優(yōu)化到最佳值,否則最佳值只有一個,那就沒有趣味性了。二代算法只優(yōu)化到符合格律(平仄、押韻)為止,把更多的選擇用候選句的形式提供給使用者。

  • 理論上,給機器足夠的時間進行足夠的交叉迭代,機器是可以寫出很中規(guī)中矩的詩詞來的。


Tips:詞的自動生成:

詞除了平仄押韻外,還有一些特殊的格式。僅疊句就很多,舉一些名句:

疊一字的如:陸游《釵頭鳳》“一懷愁緒,幾年離索。錯!錯!錯!”

疊兩字的如:李清照《如夢令》“爭渡,爭渡,驚奇一灘鷗鷺。”

疊三字的如:李白《憶秦娥》“秦娥夢斷秦樓月。秦樓月,”

疊四字的如:辛棄疾《丑奴兒》:“愛上層樓。愛上層樓,”

疊五字的如:辛棄疾《東坡引》:“羅衣寬一半,羅衣寬一半”

疊六字的如:賀鑄《琴調(diào)相思引》“動管色,催行色;動管色,催行色;”


最為特殊的,當屬《調(diào)笑令》(也叫古調(diào)笑、宮中調(diào)笑、調(diào)嘯詞、轉(zhuǎn)應(yīng)曲)。


我們看一個唐詩人戴叔倫的《轉(zhuǎn)應(yīng)曲》:


邊草,邊草,(仄韻一)

邊草盡來兵老。(仄韻一)

山南山北雪晴。(轉(zhuǎn)平韻)

千里萬里月明。(平韻)

明月,明月,(前句最后兩個字反轉(zhuǎn))(反轉(zhuǎn)后轉(zhuǎn)仄韻二)

胡笳一聲愁絕(仄韻二)


說明:“明月”處是將上句的最后兩個字“月明”翻轉(zhuǎn)二來。最后一句則和翻轉(zhuǎn)后的“月“押韻。所以,這首詞短短幾句,有三個韻。


肆、效果測試:

只需輸入標題,比如我們輸入“天涯”:

 


七絕《天涯》作詩機

千里迢迢返故廬,平生寂寞故人疏。

江山不見鶯花老,落日相逢歲又除。


Tips:作詩機的作品,點擊其中一句,候選句會提供無窮無盡的同一個格律的候選句。每次點擊出10句,總可以挑選到合適的。


伍、三代算法和二代算法:


可以簡單這么理解:

  • 二代算法:使用了唐宋詩人數(shù)千人大眾的基因。

  • 三代算法:讓李白娶李清照,取兩個“精英”結(jié)婚后的基因。


希望屆時能給大家?guī)砀蟮捏@喜。


  • 附錄一:含有領(lǐng)字格的詞牌:


|沁園春|壽星明|

|水龍吟|龍吟曲|莊椿歲|小樓連苑|

|摸魚兒|摸魚子|買陂塘|邁陂塘|雙蕖怨|

|齊天樂|臺城路|五福降中天|如此江山|

|洞仙歌|

|行香子|

|八聲甘州|

|醉太平|

|憶舊游|

|蘭陵王|

|二郎神|

|法曲獻仙音|

|長亭怨慢|

|絳都春|

|鶯啼序|

|金人捧露盤|銅人捧露盤引|上西平|西平曲|

|暗香|紅情|

|雙雙燕|

|望遠行|

|酷相思|

|黃鶯兒|

|翠樓吟|

|八六子|

|憶少年|十二時|

|眉嫵|百宜嬌|

|六丑|


  • 附錄二:詞譜里有推薦使用對仗句子的詞牌有


|浣溪沙|攤破浣溪沙|山花子|

|鷓鴣天|思佳客|

|水調(diào)歌頭|

|沁園春|壽星明|

|西江月|步虛詞|江月令|

|踏莎行|轉(zhuǎn)調(diào)踏莎行|

|南歌子|南柯子|風蝶令|

|憶江南|望江南|夢江南|江南好|

|望海潮|

|漁歌子|

|金人捧露盤|銅人捧露盤引|上西平|西平曲|

|八六子|


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
《怎樣才能寫好詩》(下)
歸來:是拯救,還是顛覆? 作詩機2017微信版公開測試!
詩詞格律術(shù)語
對仗詞匯——對仗查詢、創(chuàng)新對語推薦、對語鏈、對語樹、替換詞
詩詞曲名詞術(shù)語釋
張軒湖:詩的生動表述
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服