红楼梦词云分析
Posted z-712
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红楼梦词云分析相关的知识,希望对你有一定的参考价值。
~~~~~~~~~~~~~~~~~~~~步骤~~~~~~~~~~~~~~~~~~~~
~~ ~~
1):红楼梦文本
《红楼梦》 曹雪芹 高鄂 著 第一回 甄士隐梦幻识通灵 贾雨村风尘怀闺秀 列位看官:你道此书从何而来?说起根由,虽近荒唐,细按则深有趣味。待在下将此来历注明,方使阅者了然不惑。 原来女娲氏炼石补天之时,于大荒山无稽崖炼成高经十二丈、方经二十四丈顽石三万六千五百零一块。娲皇氏只用了三万六千五百块,只单单剩了一块未用,便弃在此山青埂峰下。谁知此石自经煅炼之后,灵性已通,因见众石俱得补天,独自己无材不堪入选,遂自怨自叹,日夜悲号惭愧。 一日,正当嗟悼之际,俄见一僧一道远远而来,生得骨格不凡,丰神迥别,说说笑笑,来至峰下,坐于石边,高谈快论:先是说些云山雾海、神仙玄幻之事,后便说到红尘中荣华富贵。此石听了,不觉打动凡心,也想要到人间去享一享这荣华富贵,但自恨粗蠢,不得已,便口吐人言,向那僧道说道:“大师,弟子蠢物,不能见礼了!适闻二位谈那人世间荣耀繁华,心切慕之。弟子质虽粗蠢,性却稍通,况见二师仙形道体,定非凡品,必有补天济世之材,利物济人之德。如蒙发一点慈心,携带弟子得入红尘,在那富贵场中,温柔乡里受享几年,自当永佩洪恩,万劫不忘也!”二仙师听毕,齐憨笑道:“善哉,善哉!那红尘中有却有些乐事,但不能永远依恃;况又有‘美中不足,好事多磨’八个字紧相连属,瞬息间则又乐极悲生,人非物换,究竟是到头一梦,万境归空,倒不如不去的好。”这石凡心已炽,那里听得进这话去,乃复苦求再四。二仙知不可强制,乃叹道:“此亦静极思动,无中生有之数也!既如此,我们便携你去受享受享,只是到不得意时,切莫后悔!”石道:“自然,自然。”那僧又道:“若说你性灵,却又如此质蠢,并更无奇贵之处。如此也只好踮脚而已。也罢!我如今大施佛法,助你助,待劫终之日,复还本质,以了此案。你道好否?”石头听了,感谢不尽。那僧便念咒书符,大展幻术,将一块大石登时变成一块鲜明莹洁的美玉,且又缩成扇坠大小的可佩可拿。那僧托于掌上,笑道:“形体倒也是个宝物了!还只没有实在的好处,须得再镌上数字,使人一见便知是奇物方妙。然后好携你到那昌明隆盛之邦、诗礼簪缨之族、花柳繁华地、温柔富贵乡去安身乐业。”石头听了,喜不能禁,乃问:“不知赐了弟子那哪几件奇处?又不知携了弟子到何地方?望乞明示,使弟子不惑。”那僧笑道:“你且莫问,日后自然明白的。”说着,便袖了这石,同那道人飘然而去,竟不知投奔何方何舍。 后来,不知过了几世几劫,因有个空空道人访道求仙,从这大荒山无稽崖青埂峰下经过,忽见一大块石上字迹分明,编述历历。空空道人乃从头一看,原来就是无材补天,幻形入世,蒙茫茫大士、渺渺真人携入红尘,历尽离合悲欢、炎凉世态的一段故事。后面又有一首偈云: 无材可去补苍天,枉入红尘若许年。此系身前身后事,倩谁记去作奇传? 诗后便是此石坠落之乡,投胎之处,亲自经历的一段陈迹故事。其中家庭闺阁琐事,以及闲情诗词倒还全备,或可适趣解闷;然朝代年纪、地舆邦国却反失落无考。 空空道人遂向石头说道:“石兄,你这一段故事,据你自己说有些趣味,故编写在此,意欲问世传奇。据我看来:第一件,无朝代年纪可考;第二件,并无大贤大忠理朝廷、治风俗的善政,其中只不过几个异样女子,或情或痴,或小才微善,亦无班姑、蔡女之德能。我纵抄去,恐世人不爱看呢!”石头笑答道:“我师何太痴耶!若云无朝代可考,今我师竟借汉、唐等年纪添缀,又有何难?但我想,历来野史,皆蹈一辙,莫如我这不借此套者,反倒新奇别致。不过只取其事体情理罢了,又何必拘拘于朝代年纪哉!再者,市井俗人喜看理治之书者甚少,爱适趣闲文者特多。历来野史,或讪谤君相,或贬人妻女,奸淫凶恶,不可胜数。更有一种风月笔墨,其淫秽污臭,屠毒笔墨,坏人子弟,又不可胜数。至若佳人才子等书,则又千部共出一套,且其中终不能不涉于淫滥,以致满纸潘安、子建、西子、文君。不过作者要写出自己的那两首情诗艳赋来,故假拟出男女二人名姓,又必旁出一小人其间拨乱,亦如剧中之小丑然。且鬟婢开口即者也之乎,非文即理。故逐一看去,悉皆自相矛盾、大不近情理之话,竟不如我半世亲睹亲闻的这几个女子,虽不敢说强似前代书中所有之人,但事迹原委,亦可以消愁破闷;也有几首歪诗熟话,可以喷饭供酒。至若离合悲欢,兴衰际遇,则又追踪蹑迹,不敢稍加穿凿,徒为供人之目而反失其真传者。今之人,贫者日为衣食所累,富者又怀不足之心;纵然一时稍闲,又有贪淫恋色、好货寻愁之事,哪里有工夫去看那理治之书!所以,我这一段故事,也不愿世人称奇道妙,也不定要世人喜悦检读,只愿他们当那醉淫饱卧之时,或避世去愁之际,把此一玩,岂不省了些寿命筋力?就比那谋虚逐妄,却也省了口舌是非之害、腿脚奔忙之苦。再者,亦令世人换新眼目,不比那些胡牵乱扯,忽离忽遇,满纸才人淑女、子建、文君、红娘、小玉等通共熟套之旧稿。我师意为何如?” 空空道人听如此说,思忖半晌,将一这《石头记》再检阅一遍,因见上面虽有些指奸责佞、贬恶诛邪之语,亦非伤时骂世之旨;及至君仁臣良、父慈子孝,凡伦常所关之处,皆是称功颂德,眷眷无穷,实非别书之可比。虽其中大旨谈情,亦不过实录其事,又非假拟妄称,一味淫邀艳约,私订偷盟之可比。因毫不干涉时世,方从头至尾抄录回来,问世传奇。因空见色,由色生情,传情入色,自色悟空,空空道人遂易名为情僧,改《石头记》为《情僧录》。至?玉峰题曰《红楼梦》。东鲁孔梅溪则题曰《风月宝鉴》。后因曹雪芹于悼红轩中,披阅十载,增删五次,纂成目录,分出章回,则题曰《金陵十二钗》,并题一绝云: 满纸荒唐言,一把辛酸泪!都云作者痴,谁解其中味? 至脂砚斋甲戌抄阅再评,仍用《石头记》。 出则既明,且看石上是何故事。按那石上书云: 当日地陷东南,这东南一隅有处曰姑苏,有城曰阊门者,最是红尘中一二等富贵风流之地。这阊门外有个十里街,街内有个仁清巷,巷内有个古庙,因地方窄狭,人皆呼作葫芦庙。庙旁住着一家乡宦,姓甄名费,字士隐。嫡妻封氏,情性贤淑,深明礼义。家中虽不甚富贵,然本地便也推他为望族了。只因这甄士隐禀性恬淡,不以功名为念,每日只以观花修竹、酌酒吟诗为乐,倒是神仙一流人品。只是一件不足:如今年已半百,膝下无儿,只有一女,乳名英莲,年方三岁。 一日,炎夏永昼,士隐于书房闲坐,至手倦拋书,伏几少憩,不觉朦胧睡去。梦至一处,不辨是何地方。忽见那厢来了一僧一道,且行且谈。只听道人问道:“你携了这蠢物,意欲何往?”那僧笑道:“你放心,如今现有一段风流公案正该了结。这一干风流冤家,尚未投胎入世。趁此机会,就将此蠢物夹带于中,使他去经历经历。”那道人道:“原来近日风流冤孽又将造劫历世去不成?但不知落于何方何处?”那僧笑道:“此事说来好笑,竟是千古未闻的罕事:只因西方灵河岸上三生石畔有绛珠草一株,时有赤瑕宫神瑛侍者,日以甘露灌溉,这绛珠草便得久延岁月。后来既受天地精华,复得雨露滋养,遂得脱却草胎木质,得换人形,仅修成个女体,终日游于离恨天外,饥则食蜜青果为膳,渴则饮灌愁海水为汤。只因尚未酬报灌溉之德,故其五内便郁结着一段缠绵不尽之意。恰近日这神瑛侍者凡心偶炽,乘此昌明太平朝世,意欲下凡造历幻缘,已在警幻仙子案前挂了号。警幻亦曾问及,灌溉之情未偿,趁此倒可了结的。那绛珠仙子道:‘他是甘露之惠,我并无此水可还。他既下世为人,我也去下世为人,但把我一生所有的眼泪还他,也偿还得过他了。’因此一事,就勾出多少风流冤家来陪他们去了结此案。”那道人道:“果是罕闻。实未闻有‘还泪’之说。想来这一段故事,比历来风月事故更加琐碎细腻了。”那僧道:“历来几个风流人物,不过传其大概,以及诗词篇章而已;至家庭闺阁中一饮一食,总未述记。再者,大半风月故事,不过偷香窃玉,暗约私奔而已,并不曾将儿女之真情发泄一二。想这一干人入世,其情痴色鬼、贤愚不肖者,悉与前人传述不同矣!”那道人道:“趁此你我何不也去下世度脱几个,岂不是一场功德?”那僧道:“正合吾意。你且同我到警幻仙子宫中,将蠢物交割清楚,待这一干风流孽鬼下世已完,你我再去。如今虽已有一半落尘,然犹未全集。”道人道:“既如此,便随你去来。” 却说甄士隐俱听得明白,但不知所云“蠢物”系何东西。遂不禁上前施礼,笑问道:“二仙师请了。”那僧道也忙答礼相问。士隐因说道:“适闻仙师所谈因果,实人世罕闻者。但弟子愚浊,不能洞悉明白,若蒙大开痴顽,备细一闻,弟子则洗耳谛听,稍能警省,亦可免沉伦之苦。”二仙笑道:“此乃玄机不可预泄者。到那时,只不要忘了我二人,便可跳出火坑矣。”士隐听了,不便再问,因笑道:“玄机不可预泄,但适云‘蠢物’,不知为何,或可一见否?”那僧道:“若问此物,倒有一面之缘。”说着,取出递与士隐。士隐接了看时,原来是块鲜明美玉,上面字迹分明,镌着“通灵宝玉”四字,后面还有几行小字。正欲细看时,那僧便说:“已到幻境!”便强从手中夺了去,与道人竟过一大石牌坊,上书四个大字,乃是“太虚幻境”。两边又有一幅对联,道是: 假作真时真亦假,无为有处有还无。 士隐意欲也跟了过去,方举步时,忽听一声霹雳,有若山崩地陷。士隐大叫一声,定睛一看,只见烈日炎炎,芭蕉冉冉,所梦之事,便忘了大半。又见奶母正抱了英莲走来。士隐见女儿越发生得粉妆玉琢,乖觉可喜,便伸手接来,抱在怀内,逗他玩耍一回;又带至街前,看那过会的热闹。方欲进来时,只见从那边来了一僧一道。那僧则癞头跣脚,那道则跛足蓬头,疯疯癫癫,挥霍谈笑而至。及至到了他门前,看见士隐抱着英莲,那僧便大哭起来,又向士隐道:“施主,你把这有命无运、累及爹娘之物,抱在怀内作甚?”士隐听了,知是疯话,也不去睬他。那僧还说:“舍我罢,舍我罢!”士隐不耐烦,便抱女儿撤身进去,那僧乃指着他大笑,口内念了四句言词,道是: 惯养娇生笑你痴,菱花空对雪澌澌。好防佳节元宵后,便是烟消火灭时....
2):轮廓清晰地图片
3):停止词 (字型准备呗,网上挺多的)
4):中文乱码的话,记得设置字体偶,say simhei.ttf
5):代码实现如下:
1 # -*- coding:utf-8 -*- 2 # author:zxy 3 # Date:2018-11-28 4 5 from PIL import Image 6 import numpy as np 7 from wordcloud import WordCloud, ImageColorGenerator 8 import jieba 9 10 11 def stopwordslist(filepath): 12 stopwords = [line.strip() for line in open(filepath, ‘r‘, encoding=‘gb18030‘).readlines()] 13 return stopwords 14 15 stopword = stopwordslist(‘stoplist.txt‘) 16 with open(‘hongloumeng.txt‘, ‘r‘, encoding=‘utf-8‘) as f: 17 txt = f.read() 18 name = f.name 19 words = jieba.lcut(txt,stopword) 20 counts = 21 for word in words: 22 if len(word) == 1 or len(word) >=4: 23 continue 24 elif word=="凤姐儿" or word=="王熙凤" or word=="二奶奶" or word=="凤辣子" or word=="二奶" or word=="凤姐": 25 counts["王熙凤"] = counts.get("王熙凤", 0) + 1 26 elif word == "贾琏" or word == "琏二爷" or word=="国舅老爷": 27 counts["贾琏"] = counts.get("贾琏", 0) + 1 28 elif word == "湘云" or word == "史湘云" : 29 counts["史湘云"] = counts.get("史湘云", 0) + 1 30 elif word == "湘云" or word == "史湘云" : 31 counts["史湘云"] = counts.get("史湘云", 0) + 1 32 elif word == "宝钗" or word == "薛宝钗" or word=="宝姐姐" or word=="薛大姑娘" or word=="蘅芜君": 33 counts["薛宝钗"] = counts.get("薛宝钗", 0) + 1 34 elif word=="林妹妹" or word=="黛玉" or word=="林黛玉" or word=="林姑娘" or word=="颦颦": 35 counts["林黛玉"]=counts.get("林黛玉",0)+1 36 elif word=="宝哥哥" or word=="宝二爷" or word=="宝玉" or word=="贾宝玉" or word=="怡红公子": 37 counts["贾宝玉"]=counts.get("贾宝玉",0)+1 38 else: 39 counts[word] = counts.get(word, 0) + 1 40 41 items = list(counts.items()) 42 items.sort(key=lambda x: x[1], reverse=True) 43 c = ‘ ‘ 44 for i in range(len(items)): 45 a, b = items[i] 46 c += a + ‘ ‘ 47 48 49 mark = np.array(Image.open(‘./image/timg.jpg‘)) 50 51 stopword = stopwordslist(‘stoplist.txt‘) 52 font=r‘C:\\Windows\\Fonts\\simhei.ttf‘ 53 54 wc = WordCloud( 55 mask=mark, 56 background_color=‘white‘, 57 max_words=200, 58 font_path=font, 59 contour_color=‘blue‘, 60 stopwords=stopword 61 ) 62 wc.generate(c) 63 name = name.split(‘/‘)[-1].split(‘.‘)[0] 64 wc.to_file(‘image/‘+name+‘.jpg‘) 65 f.close()
6):效果如下图所示
以上是关于红楼梦词云分析的主要内容,如果未能解决你的问题,请参考以下文章