基於共現使用Python來分析《紅樓夢》中賈寶玉與金陵十二釵的關係

2020-12-15 python高手養成

上一篇,我們使用Python分析了《三國演義》中人物出現次數(羅貫中的《三國演義》中到底誰是主角?我們使用Python來分析一下),文中我們僅僅從人物出現次數,來推斷出這部作品中的主角,當然,這樣計算不太準確,我們不能從作品中人物出現次數多少來簡單的斷定這部作品的主角。但是我們通過這個小案例學習使用了Python的數據分析的常用方法。

數據分析很有用哦

今天,我們利用Python來分析一下《紅樓夢》中賈寶玉和金陵十二釵的關係如何。不要跟我說你不知道金陵十二釵是誰,你肯定聽說過金陵十三釵吧?但是金陵十三釵跟這十二釵是不一樣的。千萬別走開,下面的內容很精彩哦……

電視劇《紅樓夢》劇照

【原理分析】

人類是個很神奇的動物,在網絡中有這麼一句話:「遇見一個人要一秒鐘的時間,認識一個人要一分鐘的時間,喜歡一個人要一小時的時間,愛上一個人要一天的時間,忘記一個人卻要用一輩子的時間。」從相識、相知、相愛、相忘這整個過程,似乎就是人們之間關係由生疏到熟悉的過程。在這個過程中,少不了人與人之間的溝通、交流。在古代,比如,作品《紅樓夢》誕生的那個年代,社交網絡沒有今天這麼發達,人們之間溝通、交流(由生疏到熟悉),只能是面對面進行(沒有網線哦)。

社交網絡改變了我們交流渠道

大家知道,作為一種文學藝術表現形式,小說不可能像今天的電影這樣,給人一種直觀的視覺印象。小說不一樣,小說中的場景是作者及小說的讀者通過寫作或者閱讀在腦海中構造的場景,因此,這類再現的情景在不同的人腦海中存在的印象也可能不同。

讀者通過文字感知小說的內容

我們如何理解小說作者想要表達的人物之間的感情及關係演進過程呢?我們只能透過文字,通過人物面對面溝通、交流(《紅樓夢》中可能涉及較少)的場景,來分析人物之間的關係,這種關係,我們不論好壞,反映在小說當中,就是二者之間有無交集。準確的表達就是在小說同一個段落當中,如果兩人或者兩人以上同時出現,則這些人就產生一次交集。我們一般通過這種基於共現的方式來分析小說中的人物關係。

作者跟讀者腦海的印象是不同的

社交網絡中,有一個很出名的六度分割理論,簡單來講就是:」你和任何一個陌生人之間所間隔的人不會超過六個,也就是說,最多通過六個人你就能夠認識任何一個陌生人。「千萬別走開,今天的分析結果中你可以驗證這個六度分割理論,雖然古代沒有網絡,但是六度分割理論貌似也能適用。

【材料準備】

我們準備好Python編譯環境,提前安裝好jieba庫、matplotlib庫、networkx庫,然後,自己下載一個《紅樓夢》的txt文件。下面我們對這些庫做一個簡單的介紹。

jieba:常用分詞庫,安裝好jieba庫後,我們找到位置:E:\Python34\Lib\site-packages\jieba(我的Python是安裝在E盤下的),這個目錄下我們打開一個『dict.txt』的文件,該文件是jieba定義的默認分詞字典,然後使用文本編輯軟體(最好不是記事本)打開該文件,在末尾加上下面幾行:

寶玉 3 nr黛玉 3 nr寶釵 3 nr元春 3 nr探春 3 nr湘雲 3 nr妙玉 3 nr迎春 3 nr惜春 3 nr熙鳳 3 nr巧姐 3 nr李紈 3 nr可卿 3 nr

這樣做的目的是提高分詞效率,這樣做比使用jieba庫的load_userdict()更快,當數據量大時,這樣做能節省幾分鐘時間哦,結論親測……

matplotlib:這個不用多說了,繪圖庫,我們使用matplotlib實現關係圖的可視化。

networkx:這個類庫用於調用各種圖算法的數據結構,在networkx中,圖以對象的形式提供接口。簡單來講就是使用這個來創建我們的關係圖,對於networkx的使用這裡就不做贅述了,感興趣的朋友們網上搜索,有很多資源可供學習。

【編碼實現】

我們按照獲取數據、清洗數據、數據分析、結果展示這四個步驟,對問題進行編碼實現。定義四個函數,實現相應的功能,具體過程如下:

在開始之前,我們將《紅樓夢》中的別稱摘錄下來存放在字典中,如下圖所示。

賈寶玉和金陵十二釵的別稱匯總

我們將人物名稱做了規範,裡面出現一次別稱全部用二個字符的名字來代替。

第一步:獲取數據

這一步相對來說較為簡單,打開《紅樓夢》文件,將文本結果返回即可。代碼如下圖所示。

打開《紅樓夢》文件獲取文本內容

這個簡單,不解釋了。

第二步:清洗數據

這一步,我們實現這麼幾個功能,將文本中人物別稱用人物名字代替,然後去除文本中的標點符號,這樣做便於後續分析時使用文本數據,提高分析效率。這一步中我們返回這麼三個數據,提供給下一步分析使用。

nameNode:提供統計名字節點的數據

tempNames:將每一段中出現的所有名字作為列表添加到這個列表中

relationshipDic:存放人物之間關係權重的字典

具體代碼如下圖所示。

清洗文本並返回需要的數據

第三步:數據分析

我們將清洗數據獲得的返回值傳入函數中,得到每一個主角的關係權重,如下圖所示。

進行分析後獲得人物關係數據

下面我們對人物關係進行展示,這時候,我們要用到networkx庫。第四步:結果展示

我們使用networkx繪製人物關係圖,並通過matplotlib庫進行展示。具體代碼如下圖所示。

生成關係圖並展示結果

代碼展示完畢,下面我們來看下結果,並進行分析。

【小說人物關係分析】

賈寶玉和金陵十二釵的關係圖生成了,下面我們來看下結果,如下圖所示。

賈寶玉和金陵十二釵關係圖展示

從圖中我們發現這麼一些規律,越在圖中央位置的人物,他與其他人物的聯繫越緊密,這種聯繫我們是通過每個人物之間的連線來展示的,在中間的話,他跟其他人的聯繫也越容易。顯然,這個人物就是賈寶玉。我們再來看下位於圖關係邊緣的人物,秦可卿、妙玉、賈元春、巧姐、湘雲、探春,這些人物處於邊緣位置,與主人公的聯繫也不是很緊密。從結局我們知道,秦可卿最後病逝(也有說法是自縊),妙玉下落不明,元春失寵後死於宮鬥,巧姐被劉姥姥贖出後嫁給板兒,湘雲守寡,探春遠嫁」和藩「,貌似結局都不是很好(當然,我們不是在分析結局)。而與主人公」見面「次數比較多的是黛玉、熙鳳、寶釵這些人,而這些人也是我們所說的主角,這與作品描寫的內容也是不謀而合的。

賈寶玉是《紅樓夢》中主角

【總結】

好了,今天的內容就到這裡了,感興趣的朋友們親自敲代碼試一試哦,說不定你能分析出一些驚天的秘密呢?歡迎大家留言加關注,後續會推出使用Python分析關於四大名著的精彩內容,不要錯過哦,文中分析不對的地方,歡迎大家留言指正。

轉載請註明出處,百家號:Python高手養成

相關焦點

  • 《紅樓夢》金陵十二釵都有誰?金陵十二釵正冊排名各個貌美如花!
    金陵十二釵是中國四大名著之一《紅樓夢》中書寫的人物,她們全都是賈家中最為優秀的十二位女兒,被稱作世界文學史上的一道亮麗風景。那麼紅樓夢金陵十二釵都有誰呢?金陵十二釵正冊美貌排名如何?接下來就由小編來為大家揭曉吧。
  • 《紅樓夢》之寧國府正牌當家夫人尤氏為何不在金陵十二釵正冊
    《紅樓夢》書裡男一號是賈寶玉,大家都喜愛的寶哥哥。《紅樓夢》為賈寶玉而作,夢中情景,只是作賈寶玉一身之事而已。金釵同行,皆甘與同夢者而已!然夢本參差,覺有先後,何必相強!金陵十二釵是《紅樓夢》中的人物,金陵十二釵正冊是警幻情榜上十二個女子,依次為:林黛玉、薛寶釵、賈元春、賈探春、史湘雲、妙玉、賈迎春、賈惜春、王熙鳳、賈巧姐、李紈、秦可卿。
  • 金陵十二釵的老家金陵在哪?林黛玉是蘇州人,賈寶玉家在石頭城
    金陵十二釵的老家金陵在哪?林黛玉是蘇州人,賈寶玉家在石頭城紅樓夢中大名鼎鼎的金陵十二釵,後來都在神京大觀園內生活,那她們的老家金陵在哪,都在金陵的哪個地方?在很多人的印象中,金陵是一個城,但其實不是,金陵實際應該是個省,十二釵實際上是分別來自金陵省的不同地方。「靜說紅樓」就來梳理一下十二釵及書中一些重要人物的老家。首先是賈家的寧榮兩府,賈家最開始在京城建府,是弟兄兩個,老大賈演和老二賈源,弟兄兩個都被皇帝封為國公爺,分別建立了寧國府和榮國府。
  • 《紅樓夢》中「金陵十二釵」的排列順序到底有何意義
    細琢磨分析小說《紅樓夢》中「金陵十二釵」的排列順序,還真是有使人細思極恐的細節。這「金陵十二釵」中的女人們結局都很悲慘,唯一巧姐沾了劉姥姥的光,過上了百姓生活。最令讀者好奇的是:「金陵十二釵」排列順序有根據嗎?
  • 《紅樓夢》裡的金陵十二釵,她們都有著什麼樣的性格特點
    金陵十二釵指的是《紅樓夢》中的看上去柔柔弱弱的林黛玉、天資聰慧的薛寶釵、賢孝才德的元春、柔弱的迎春、天生好強的探春、孤僻乖張的惜春、拒人千裡的妙玉、李紈、巧姐、精明的王熙鳳、秦可卿、史湘雲。上文小編所說的金陵十二釵黛玉、寶釵、元春、探春、迎春、惜春、妙玉、李紈、巧姐、鳳姐、可卿、湘雲,她們的出身都是大不相同的、以及父母的受教育程度也是不同的。這些東西在潛移默化著他們的兒女,也就是金陵十二釵們,決定了她們的性格與未來發展的道路。
  • 87版《紅樓夢》中金陵十二釵扮演者大盤點,你最喜歡誰?
    金陵十二釵,也就是《紅樓夢》中十二位正冊女性的合稱。如今離該劇首播已經33年過去,昔日的畫面、人物與片段如同從小說中走出來那般,深深的印在觀眾腦海中。其中金陵十二釵扮演者今何在?小編為大家一一盤點。
  • 紅樓夢裡金陵十二釵,誰的出身排名最高?誰的出身是墊底?
    紅樓夢裡的那些姑娘,曹雪芹將緊要的單拎出來放進薄命司的金陵十二釵正冊,這十二個姑娘按照冊裡出現的順序分別是林黛玉、薛寶釵、元春、探春、史湘雲、妙玉、迎春、惜春、王熙鳳、巧姐、李紈、秦可卿。在這些女子裡面,誰的出身最高,誰又是墊底的呢?先按照她們各自在冊裡的順序,寫一下她們的出身。
  • 有人香消玉殞,有人身價上億,87版《紅樓夢》金陵十二釵現狀
    從籌備到播出,《紅樓夢》歷時5年。一經播出,立即引起轟動。劇中的角色形象成為經典,後來的各個版本的《紅樓夢》,包括李少紅執導版的,都難以超越這部87版。大家都知道,原著《紅樓夢》中角色眾多,而最為人所津津樂道莫過於「金陵十二釵」。「金陵十二釵」是以十二為一組將賈府上、中、下三等女子編成正、副、又副三冊,一共36人。
  • 《紅樓夢》第一淫亂女子竟是賈寶玉的性啟蒙老師
    原標題:《紅樓夢》第一淫亂女子竟是賈寶玉的性啟蒙老師 秦可卿可以說是「金陵十二釵」中最美麗的一釵了,也是整部《紅樓夢》中最複雜的人物之一,也正是這般「複雜」,體現了《紅樓夢》獨特的文學魅力,秦可卿與公公賈珍亂倫通姦,這是基本可以確定的,在《紅樓夢》第五回,曹公給秦可卿的判詞為:「情天情海幻情身
  • 金陵十二釵在《紅樓夢》裡的另一副影子,各個神似!
    金陵十二釵在《紅樓夢》裡的另一副影子,各個神似!《紅樓夢》裡有很多「十二」字樣,脂硯齋評說凡十二照應十二釵。十二是一個神奇的數字,一年十二個月,合周天之數。十二釵實際上就是天下女子的代表,《紅樓夢》是一曲關於女子命運的悲歌。
  • 南京新「金陵十二釵」決出「金釵、銀釵、玉釵」
    5月1日,被評為新"金陵十二釵"的"金釵"劉婧(中)和"銀釵"甘璐當晚,南京形象大使――新"金陵十二釵"評選活動決賽落幕。北京廣播學院學生劉婧獲"金釵"獎,南京大學學生甘璐和南京市瑞金北村小學教師王薇分獲"銀釵獎"和"玉釵獎"。新「金陵十二釵」以古典小說《紅樓夢》中的金陵十二釵為審美原型,要求參選人具有現代美感和聰明才智,並熟練掌握外語。全市千餘名女青年參加了歷時兩個多月的評選活動。在半決賽中當選新"金陵十二釵"的12位姑娘進入了最後的決賽。
  • 薛寶琴:一個近乎完美的女孩子,為何沒有入選金陵十二釵正冊?
    但就是這樣一個近乎完美的女孩子,為什麼沒有入選金陵十二釵正冊?(一)何為金陵十二釵正冊?賈寶玉夢遊太虛幻境時,在薄命司詢問警幻仙姑:「何為金陵十二釵正冊?」警幻仙姑的解釋是「即貴省中十二冠首女子之冊,故為『正冊』。」那麼什麼樣的女子才稱得上「冠首」?
  • 紅樓夢:她和賈府八竿子都打不著,憑什麼躋身金陵十二釵第六位
    紅樓十二釵詩詞解讀系列【第八篇第1節】妙玉是金陵十二釵特立獨行的一個存在。黛玉、湘雲是寶玉的表妹;寶釵、鳳姐是寶玉表姐,鳳姐又是寶玉的堂嫂;元春是一奶同胞的姐姐,探春是同父異母的妹妹;迎春是堂姐,惜春是堂妹;巧姐是侄女,李紈是嫂子,秦可卿是侄媳婦。
  • 臺版金陵十二釵別樣結局:王熙鳳捨身救賈家,李紈死於賈蘭中舉時
    96中國臺灣版《紅樓夢》在太虛幻境中以MV形式預告了金陵十二釵的結局,這版的編劇未沿用續書結局,而是根據探佚結果重新編寫了結局。前面已經分享了其他各釵的命運,接下來分享王熙鳳、李紈、巧姐、秦可卿這最後四位的結局。
  • 金陵十二釵,副冊曹雪芹只寫一個香菱,另外11人,誰有資格?
    《紅樓夢》第五回,賈寶玉遊太虛,看到的金陵十二釵,正冊的十二頁他一一翻看,讀者知道按順序分別為:黛玉、寶釵、元春、探春、湘雲、妙玉、迎春、惜春、王熙鳳、巧姐、李紈、秦可卿。副冊只出現了香菱一人,又副冊有晴雯和襲人。那麼問題來了,副冊十二釵,除了香菱之外,另外11人都有誰呢?
  • 《紅樓夢》裡金陵十二釵正冊哪首詩詞對應了皇三子胤祉
    所以胤祉和胤礽的關係比較親切愛新覺羅胤祉那麼在《紅樓夢》金陵十二釵正冊中哪首詩詞對應了胤祉的一生呢?就是書中第五回 遊幻境指迷十二釵 飲仙醪曲演紅樓夢 中的後面又畫著一塊美玉,落在泥垢之中。其斷語云:「欲潔何曾潔,雲空未必空。可憐金玉質,終陷淖泥中。」
  • 為金陵十二釵,每人選一句話,概括她們的一生,你選哪一句?
    為「金陵十二釵」,每人選一句話,總結或者概括她們的一生的故事,或者悲劇所在,您會選哪一句?既然三順發起了這個問題,那就先將自己的答案寫出來。林黛玉:早知他來,我就不來了!這是林黛玉在第八回說的一句話。當時,林黛玉到薛家住的梨香院去探望寶釵,偏偏遇上賈寶玉也在。
  • 南京(金陵十二釵)薄荷價格
    完全是免費訂閱,請放心關注  南京金陵十二釵薄荷香菸大家一定很熟悉,它由江蘇中煙所出品,國內少見的成套系列香菸品牌之一。它以細支品型主攻國內香菸市場,香菸盒上的釵美人圖形象傳神,栩栩如生。突出薄荷煙香。南京金陵十二釵薄荷多少錢?
  • 金陵十二釵,活靈活現,栩栩如生
    遲遲沒有看紅樓夢,因為實在太敬畏了,演員都是沒得挑,金陵十二釵,活靈活現,栩栩如生。人的生長環境造就一個人的人生,像賈寶玉這樣從小是蜜罐子裡長大的公子哥,而且身邊的姐姐妹妹都是賽如天仙,有什麼動力去博取功名,人生如戲,戲如人生。高中時期深深愛著的紅樓夢,真的是被我快要翻爛的一本書,一部女兒們的讚歌和悲歌。電視劇展現出來的已經很棒了!甚至感到有點不理解。
  • 絲絹烙畫「金陵十二釵」欣賞
    金陵十二釵,是中國古典小說《紅樓夢》中最優秀的十二位女兒。太虛幻境薄命司以十二為一組將賈府上、中、下三等女子編成正、副、又副三冊"。警幻仙子道:"即貴省中十二冠首女子之冊,故為正冊","(副、又副)下櫥則又次之"。第五回完整出示了林黛玉、薛寶釵、賈元春、賈探春、史湘雲、妙玉、賈迎春、賈惜春、王熙鳳、巧姐、李紈、秦可卿十二位正冊女性名單。 烙畫古稱「火針刺繡」,近名「火筆畫」、「燙畫」等,是中國一種極其珍貴的稀有畫種。據史料記載,烙畫源於西漢、盛於東漢,後由於連年災荒戰亂,曾一度失傳。