999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的《三國(guó)演義》人物關(guān)系網(wǎng)絡(luò)的構(gòu)建與分析*

2021-09-23 08:09:28沈陽(yáng)陳瑛

沈陽(yáng) 陳瑛

(廣州工程技術(shù)職業(yè)學(xué)院信息工程學(xué)院,廣東廣州 510075)

0 引言

人物關(guān)系網(wǎng)絡(luò)也稱為人物社交網(wǎng)絡(luò),人物社交網(wǎng)絡(luò)分析是用來(lái)查看節(jié)點(diǎn)和連接邊之間相互關(guān)系的一種分析方法。節(jié)點(diǎn)是社交網(wǎng)絡(luò)里的每個(gè)參與者,連接邊則表示參與者之間的關(guān)系。節(jié)點(diǎn)之間可以有很多條連接邊,那么社交網(wǎng)絡(luò)實(shí)際是一張圖,圖中可以標(biāo)示出所有與節(jié)點(diǎn)間相關(guān)的連接邊。社交網(wǎng)絡(luò)也可以用來(lái)衡量每個(gè)參與者的重要性和人脈關(guān)系[1]。三國(guó)演義中有上千人有名有姓的人物,他們扮演著不同的角色,共同演繹了那段波瀾壯闊的歷史,但顯然,這些人物的重要性存在差別,有些人是一呼百應(yīng)、叱咤風(fēng)云的巨擘,而有些人只是一閃即過(guò)的“醬油”角色。通過(guò)Python按章節(jié)根據(jù)時(shí)間線構(gòu)建出這些人物之間關(guān)系網(wǎng)絡(luò),可清晰了解這些人物在時(shí)間長(zhǎng)河和歷史事件中的沉浮。

1 構(gòu)建人物關(guān)系網(wǎng)絡(luò)所需考慮的因素

實(shí)現(xiàn)《三國(guó)演義》中的人物關(guān)系網(wǎng)絡(luò),需考慮幾點(diǎn)因素:(1)實(shí)體鏈接:由于《三國(guó)演義》中人物眾多,同一人物名稱也較為繁雜,例如曹操在文中還有“曹孟德”,“孟德”,“阿瞞”等各種稱謂,因此把需要把別名、縮寫與他們的標(biāo)準(zhǔn)名聯(lián)系起來(lái),以方便統(tǒng)計(jì)。(2)精細(xì)分詞分句:雖然我們可以使用了jieba分詞工具實(shí)現(xiàn)分詞,但針對(duì)《三國(guó)演義》我們需要更加精準(zhǔn)的分詞。(3)內(nèi)置資源:由于該書字?jǐn)?shù)較多,但并不是所有的字詞都在統(tǒng)計(jì)范圍內(nèi),為提高關(guān)鍵字詞的檢索效率,我們需要一個(gè)通用停用詞典過(guò)濾掉某些字或詞。(4)關(guān)系網(wǎng)絡(luò)構(gòu)建:關(guān)系網(wǎng)絡(luò)的構(gòu)建是一個(gè)復(fù)雜的實(shí)現(xiàn)過(guò)程,我們使用現(xiàn)在較為成熟的支撐庫(kù)HarvestText來(lái)實(shí)現(xiàn)關(guān)系網(wǎng)絡(luò)的快速構(gòu)建。該庫(kù)是一個(gè)專注無(wú)(弱)監(jiān)督方法,能夠?qū)μ囟I(lǐng)域文本進(jìn)行簡(jiǎn)單高效地處理和分析的庫(kù),可利用共現(xiàn)關(guān)系,獲得關(guān)鍵詞之間的網(wǎng)絡(luò)[2]。

2 數(shù)據(jù)準(zhǔn)備

導(dǎo)入HarvestText的核心庫(kù)和資源庫(kù),通過(guò)調(diào)用harvesttext.resources中的get_sanguo_entity_dict函數(shù),獲取《三國(guó)演義》的實(shí)體詞典entity_mention_dict和實(shí)體類型詞典entity_type_dict,然后輸出“曹操”和“魏”的相關(guān)信息,如下述代碼所示。

代碼執(zhí)行結(jié)果如圖1所示,從結(jié)果可以看到與“曹操”相關(guān)的稱謂有四種,“曹操”這個(gè)名詞的類型是“人名”,而與“魏”相關(guān)的稱謂有兩種,它的類型是“勢(shì)力”。可見通過(guò)HarvestText,我們可以很方便的獲得關(guān)于三國(guó)中的各種實(shí)體及類型。

圖1 導(dǎo)入HarvestText和相關(guān)資源庫(kù)后輸出相關(guān)結(jié)果Fig.1 Output related results after importing HarvestText and related resource libraries

3 按章節(jié)構(gòu)建《三國(guó)演義》重要人物關(guān)系網(wǎng)絡(luò)

在上一節(jié)中我們可以將一個(gè)實(shí)體的相關(guān)稱謂統(tǒng)一成一個(gè)確定稱謂,例如將“曹操”“曹孟德”“孟德”“阿瞞”這些稱謂統(tǒng)一成“曹操”。我們現(xiàn)在就可以開始構(gòu)建《三國(guó)演義》的重要人物關(guān)系網(wǎng)絡(luò)了。構(gòu)建思想是如果兩個(gè)人物稱謂在兩句話內(nèi)同時(shí)出現(xiàn),就給他們之間加一條連接邊。例如“當(dāng)日怠慢了玄德,張飛性發(fā),便欲殺之。玄德與關(guān)公急止之曰;“他是朝廷命官,豈可擅殺?””,這樣一句話就可以構(gòu)建如圖2所示的人物關(guān)系網(wǎng)。

圖2 一個(gè)簡(jiǎn)單的人物關(guān)系網(wǎng)Fig.2 A simple network of people

本文采用networkx庫(kù)對(duì)數(shù)據(jù)實(shí)現(xiàn)網(wǎng)絡(luò)建模,首先安裝并導(dǎo)入networkx庫(kù)和pylab模塊,獲取第一章的內(nèi)容,調(diào)用HarvestText的cut_sentences函數(shù)進(jìn)行分句,分句結(jié)果放入sent1變量中,再?gòu)膕ent1中獲得所有二連句,另外通過(guò)輸出i變量的值可知第1章共有119句。調(diào)用HarvestText的set_linking_strategy函數(shù)設(shè)置網(wǎng)絡(luò)連接策略,再調(diào)用ht.build_entity_graph函數(shù)構(gòu)建網(wǎng)絡(luò)。定義函數(shù)draw_graph,使用networkx進(jìn)行網(wǎng)絡(luò)圖繪制。最后獲取重要結(jié)點(diǎn)important_nodes,即該結(jié)點(diǎn)的邊數(shù)大于5條,這說(shuō)明該結(jié)點(diǎn)與其他結(jié)點(diǎn)的關(guān)系較為密切。然后從網(wǎng)絡(luò)圖中復(fù)制出包含這些重要結(jié)點(diǎn)的子圖,并繪制出來(lái)。完整代碼如下所示。

最后網(wǎng)絡(luò)圖輸出結(jié)果如圖3所示,可以看出在第一章中以黃巾軍起義為事件中心,劉備、關(guān)羽、張飛、曹操等三國(guó)時(shí)期的重要人物都已登場(chǎng)。

圖3 構(gòu)建《三國(guó)演義》第一章重要人物關(guān)系網(wǎng)絡(luò)Fig.3 Constructing " Romance of the Three Kingdoms"chapter one the network of important people

4 構(gòu)建《三國(guó)演義》人物社交全景圖

在前一節(jié)繪制了第一章重要人物關(guān)系網(wǎng)絡(luò)圖,那么就可以采用相似的方法,將《三國(guó)演義》全部章節(jié)的內(nèi)容匯總起來(lái),繪制出整本書的人物社交全景圖[3]。操作步驟如下:

(1)遍歷所有章節(jié)內(nèi)容,將每個(gè)章節(jié)的內(nèi)容進(jìn)行分句、獲取二連句,生成各章子圖后,依次存放到G_chapters中,見代碼1~5行。

(2)將各章子圖連接起來(lái)存入全景圖G_gloal中,見代碼6~13行。具體連接方法如下:遍歷每張子圖的各條邊,如果全景圖中已經(jīng)存在這條邊,則這條邊的權(quán)重累加到全景圖的該邊權(quán)重中,如果不存在這條邊,則向全景圖添加該邊。

(3)子全景圖中獲取最大連通分量的子圖,見代碼14~17行。從下面輸出的信息可知,該子圖共有1244個(gè)節(jié)點(diǎn),9394條邊,平均權(quán)重值為15.1029。

Name:

Type: Graph

Number of nodes: 1244

Number of edges: 9394

Average degree: 15.1029

(4)整個(gè)社交網(wǎng)絡(luò)有1244人,還有9千條邊!我們要把這些節(jié)點(diǎn)和邊全部繪制出來(lái)太難了,我們只能挑選其中的關(guān)鍵人物來(lái)繪制出一個(gè)子圖。因此我們篩選出“度大于30”的節(jié)點(diǎn)作為重要節(jié)點(diǎn),并從全景圖中復(fù)制出包含這些重要結(jié)點(diǎn)的子圖G_main,見代碼18~21行。

(5)使用pyecharts進(jìn)行可視化顯示,見代碼22~40行。導(dǎo)入pyecharts庫(kù),具體安裝方法與上面任務(wù)中庫(kù)安裝方法類似。通過(guò)G_main構(gòu)建pyecharts圖形繪制所需的參數(shù)集合nodes、links,其中nodes的symbolSize屬性表示圖中空心圓圈的大小。

(6)繪制并輸出“三國(guó)人物社交全景圖”,輸出位置是當(dāng)前代碼文件所在目錄,名稱為“render.html”。打開這個(gè)文件可以看到一個(gè)絢麗的人物關(guān)系圖,如圖4所示,如果指用一個(gè)節(jié)點(diǎn),如圖5所示,當(dāng)指向“劉備”節(jié)點(diǎn)時(shí),可以看到這個(gè)人物的度量值和邊。

圖4 三國(guó)人物社交全景圖(一)Fig.4 Panorama of social intercourse among the Three Kingdoms (1)

圖5 三國(guó)人物社交全景圖(二)Fig.5 Panorama of social intercourse among the Three Kingdoms (2)

完整代碼如下所示。

5 結(jié)語(yǔ)

本文實(shí)現(xiàn)了使用Python構(gòu)建《三國(guó)演義》人物關(guān)系網(wǎng)絡(luò)的方法。首先基于HarvestText庫(kù)對(duì)文本內(nèi)容進(jìn)行數(shù)據(jù)準(zhǔn)備,包括分詞、去除停用詞等步驟,然后基于networkx庫(kù)實(shí)現(xiàn)關(guān)系網(wǎng)絡(luò)的構(gòu)建,最后通過(guò)該方法構(gòu)建了《三國(guó)演義》人物社交全景圖。該方法具有普適性,對(duì)大文本數(shù)據(jù)分析具有一定的指導(dǎo)意義。

主站蜘蛛池模板: 国产成人一区二区| 欧美午夜理伦三级在线观看| 亚洲国产无码有码| 色屁屁一区二区三区视频国产| 色国产视频| 91精品国产综合久久香蕉922| 毛片在线看网站| 99成人在线观看| 国产成人综合在线观看| 国产亚洲精品资源在线26u| 亚洲国产精品久久久久秋霞影院| 免费不卡视频| 国产成人91精品免费网址在线| 最新国产你懂的在线网址| 青青草一区二区免费精品| 亚洲欧美h| 1024国产在线| 超清无码熟妇人妻AV在线绿巨人| 女高中生自慰污污网站| 亚洲最猛黑人xxxx黑人猛交| 亚洲最新在线| 制服丝袜国产精品| 精品视频在线观看你懂的一区 | 五月天久久综合| 亚洲欧洲日产国产无码AV| 扒开粉嫩的小缝隙喷白浆视频| 亚洲国产欧美国产综合久久| 婷婷六月色| 激情在线网| 亚洲色图欧美在线| 911亚洲精品| 国产精品污污在线观看网站| 久久久久亚洲精品成人网| 人人妻人人澡人人爽欧美一区| www精品久久| 色九九视频| 日韩一区精品视频一区二区| 夜夜高潮夜夜爽国产伦精品| 广东一级毛片| 视频二区亚洲精品| 波多野结衣在线一区二区| 国产男人天堂| 亚洲欧美综合精品久久成人网| 日韩中文无码av超清| 亚洲AV无码不卡无码| 精品国产乱码久久久久久一区二区| 亚洲成人动漫在线观看| 99无码中文字幕视频| 无码专区在线观看| 欧美亚洲一二三区| 99久久国产综合精品女同| 精品视频福利| 日韩精品一区二区三区免费| 日韩成人在线视频| 国模在线视频一区二区三区| 中文字幕色站| 中文国产成人久久精品小说| 九九九久久国产精品| 97免费在线观看视频| 又爽又大又黄a级毛片在线视频| 小说 亚洲 无码 精品| 欧美日韩免费在线视频| 久久精品视频亚洲| 丝袜久久剧情精品国产| 欧美综合区自拍亚洲综合绿色 | 韩国福利一区| 国产在线自乱拍播放| 91欧洲国产日韩在线人成| 五月天福利视频| 91在线高清视频| 在线观看热码亚洲av每日更新| 在线观看国产精美视频| 欧美日韩亚洲国产主播第一区| 久久亚洲精少妇毛片午夜无码 | 欧美在线精品一区二区三区| 日本不卡在线播放| 福利姬国产精品一区在线| 这里只有精品国产| 日韩无码白| 久久国产黑丝袜视频| 99热最新网址| 欧美 亚洲 日韩 国产|