今天辰哥來教大家從一本小說/名著里面提取出人名,並對人名之間的關系進行統計(同一段里面人名兩兩出現),根據人名之間的關系進行繪制關系圖--gephi
核心知識點:
-
提取文本中人名
-
統計文本中人物之間的關系
-
繪制網絡關系圖
先看一下效果:
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 小結
本文講解了提取文本中人名並統計文本中人物之間的關系,最后繪制網絡關系圖,不明白的地方可以在下方留言,一起交流。