1. 程式人生 > 其它 >我做到了!《斗羅大陸》人物關係視覺化

我做到了!《斗羅大陸》人物關係視覺化

今天辰哥來教大家從一本小說/名著裡面提取出人名,並對人名之間的關係進行統計(同一段裡面人名兩兩出現),根據人名之間的關係進行繪製關係圖--gephi

核心知識點

  1. 提取文字中人名

  2. 統計文字中人物之間的關係

  3. 繪製網路關係圖

先看一下效果

01 jieba小例子

在開始分析《斗羅大陸》小說之前,先來一個小例子讓大家對jieba庫的使用有個印象。

說明:

可以看到文字內容結果jieba庫分詞之後,可以獲取每一個的詞性。咱們這裡需要獲取人名,只需要挑選出nr的詞性,並統計每個詞的次數。

這裡就給大家演示講解了jieba從文字提取人名的小例子,下面以小說《斗羅大陸》為例,講解如何去提取裡面人物名,並建立有向圖,最後繪製人物關係圖。

02 提取人物關係

1.製作姓名字典

部分結果如上圖,通過提取小說中裡面的所有名字,取出前100個並按頻率從高到低寫入txt。不過發現一些是不完整、無用、一個人物多名等情況。進行整理之後如下。

2.建立人物有向關係

通過構建的人物名在每一段中兩兩出現的進行統計。最後建立出來,人物節點和人物之間的聯絡。

3.儲存到csv

結果如下:

03 人物關係網圖

這裡使用的是gephi進行繪製,gephi下載地址如下:

https://gephi.org/

下載安裝之後,開始匯入剛剛儲存的node.csv和edge.csv資料繪製人物關係網圖

1.新建工程&匯入資料

新建工程->選擇資料資料

tab,點選輸入數字表格,新增節點和邊的csv資料。

2.調整相關的樣式

3.修改字型,顯示相應的標籤

4.選擇一個自動化佈局的方式,預覽,再調整相關引數

5. 最終點選左下角匯出圖片

04 小結

本文講解了提取文字中人名並統計文字中人物之間的關係,最後繪製網路關係圖,不明白的地方可以在下方留言,一起交流。