国产精品视频熟女韵味,女人高潮抽搐潮.I喷视频,久久精品人人做人人爽电影蜜月,性欧美vr高清极品

400-650-1086
首頁 > 最新資訊 > IT新聞 > 正文

機器學習告訴你:《紅樓夢》后40回到底是不是曹雪芹寫的?

admin 2016-07-08 09:30:59 0

前幾天燈神給我發(fā)了一篇文章,講的是用機器學習的方式來判定紅樓夢后40回到底是不是曹雪芹寫的。

黛玉重建桃花社。畫家孫溫。圖片來自:Wikipedia

我這段時間也在自學Andrew Ng的機器學習課程,還差4週就能完成課程了。

電腦是一個很強調learning by doing的學科,于是我也來“學以致用”,用剛學到的SVM演算法來分析下雪芹老師到底有沒有寫后面的40回。

作為一個從沒看過紅樓夢的人,我的大致思路是這樣的:

受到《獵人》里蟻王破解會長無敵招數的啟發(fā),每個人的寫作都有些小習慣,雖然文章前后說的內容會有差別,但是這些用詞的小習慣不容易改變;

用開源的分詞工具把全書分詞(python的jieba分詞),然后統(tǒng)計詞頻。把出現(xiàn)頻率超過100次的詞語找出來,人工去掉一些可能因為文章內容造成前后出現(xiàn)不一致的人名、地名;

然后每一章按照2中的詞頻表,看這一章中出現(xiàn)這些詞語的頻率;

前80回、后40回各選15回作為機器學習的資料,讓機器學習這些章節(jié)的用詞特點,然后推算其他章節(jié)的用詞特點是屬于前80回呢、還是后40回;

如果機器根據這些用詞特徵推算的是否屬于后40回的結果跟實際的結果吻合,那幺就說明后40回的寫作風格跟前80回有很大不同,很可能是兩個人寫的;

好了,下面我儘量少涉及數學跟程式設計的知識,來一步步解讀機器學習是怎幺完成這個問題的。

生成全書的詞頻表

我截取了其中一段的詞頻表。像寶二爺、黛玉笑這種涉及人物的詞語,可能前面戲份多、后面戲份少,所以就不選它們作為用詞習慣的特徵,而像忽然、故、只要、可不是這種承接性質的碎詞,就不太容易會受情節(jié)的影響,所以適合選出來作為用詞習慣的特徵。

最終,我按照出現(xiàn)從多到少排序,選擇了278個詞作為機器學習的用詞習慣。

將120回的詞頻進行統(tǒng)計

接下來我把每一回出現(xiàn)這278個詞的頻率統(tǒng)計出來,得到我們給機器學習的樣本。這個樣本的樣子大概是這樣的:

比如以B行2列舉例,說明在第一回里面“道”這個動詞,出現(xiàn)了36次。

通常我們在進行複雜的事情前,喜歡先簡化問題,或者給自己一些直觀的圖表,以便了解問題。機器學習也是一樣的。

我嘗試著在圖上把前80回和后40回習慣用詞出現(xiàn)的頻率畫出來。以第一回為例,x1座標代表“道”出現(xiàn)多少次,x2座標代表“說”出現(xiàn)多少次,x3座標代表“也”出現(xiàn)多少次......x280座標代表“則”出現(xiàn)多少次。

什幺?超過三維了,那人類的大腦可是沒辦法理解的啊。

沒關係,當我們用燈光照射一個立體的圖時,平面會有它的影子。這個影子雖然沒有立體圖的資訊這幺豐富,不過我們看影子還是可以猜出來大致的樣子。對于高緯度的問題,我們也可以用投影的方式來降低緯度。

雖然資訊損失了不少,不過能給我們一個直觀的感受。

這個是120個章節(jié)的用詞習慣從278緯降到3維以后的圖,紅色+的點是前80回,藍色o的點是后40回。

從這個圖可以很直接地看到,確實在用詞習慣上有明顯的區(qū)別。就算我們沒有機器學習工具的幫忙,也可以大膽猜測后40回是出自于另外一個人了。

下面我們用機器學習來看精確一點的判斷。

機器學習

透過課程我大致了解了SVM的原理和簡化版問題的演算法實現(xiàn),不過對于複雜問題我還是沒這個能力寫程式。于是用python的scikit庫來幫助我來完成這個預測。

演算法的步驟很簡單,前80回、后40回各選15個來餵給機器學習它們的特點,然后把剩下的章節(jié)輸入給機器,問它們屬于前80回還是后40回。

看out[44]的結果,代表了機器預測這120回的用詞習慣到底屬不屬于后40回(0為不屬于,1為屬于)。

如果你看不懂上面的程式碼,沒關係。我告訴你結果好了。

機器在學習以后告訴我,如果我把隨便一章的用詞習慣告訴它、但不告訴它到底是前80回還是后40回,那幺機器有95%的把握能猜出它是不是后40回。

至此,我們可以很有信心地判斷它們的寫作風格不同。

那幺,問題來了,會不會因為是情節(jié)的需要所以導致寫作風格不同了呢?

情節(jié)不同會造成用詞習慣多大的差別?

好吧,那我再來做一個旁證。我把另外一部四大名著“三國演義”拿來分析,看看上部跟下部的用詞習慣會不會有比較明顯的差別。

這個是三國演義的用詞習慣縮到三維以后的圖,紅色+代表前60部的用詞習慣,藍色o代表后60部的用詞習慣。

你可能會說,雖然中間交叉的地方比較多,但是還是可以看出來是有區(qū)分的。

可如果你比對一下跟紅樓夢的圖,你就會發(fā)現(xiàn)紅樓夢的差別會明顯得多。

紅色+為紅樓夢前80回/三國前60回,藍色o紅樓夢后40回/三國后60回

最后,用機器學習的方式來說,如果我把三國演義隨便一章的用詞習慣告訴它、但不告訴它到底是前60回還是后60回,那幺機器有7成的把握猜對,這個準確度已經遠遠低于紅樓夢的95%的預測水準。

所以,我們用“三國演義”這個旁證來分析,即便是因為情節(jié)需要導致的用詞習慣差別也不應該這幺大。

所以,我們就更有信心說曹老先生沒有寫后40回了。

更多的機器學習有趣的玩法,我會在學習的過程中慢慢嘗試的。以上。

文章來源:機房監(jiān)控 http://qdlanhai.cn

售前咨詢

專線:劉剛 13911133352

E-mail:112417434@qq.com

北京金恒智能系統(tǒng)工程技術有限責任公司 版權所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.

法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利!

電話:86+10-62104277/2248/4249 傳真:86+10-62104193-819 京ICP備10010038號-2網站XML

智慧機房

在線體驗

CREATE·機房監(jiān)控 體驗端  用戶名:Admin    密碼:12345 點擊體驗
在線咨詢 電話咨詢