人物关系可视化python实现

  今天跟大家介绍以下知识。怎么来实现文本中的人物关系可视化?

一、软件安装
  安装的软件,点击此处,整个流程及安装过程见参考博客
提醒一下:
  注意下载的文件一定要和自己的python版本和电脑位数对应;特别注意一下安装的版本,可能会出现不同版本的兼容问题。以下是我自己安装的,可以参考以下:
在这里插入图片描述
  注意安装的顺序,一定是numpy-matplotlib-scipy.三者顺序不可以乱,因为后者的包对前者有依懒性。
此外,Wordcloud安装见此处 ,点击此处
二、利用Wordcloud来生成人物关系
  先给大家附上主要的两个python文件,如下:

# -*- coding: utf-8 -*-
from __future__ import print_function
import jieba
import codecs
from collections import defaultdict
TEXT_PATH = '../jsjs.txt'  # 文本路径
DICT_PATH = 'person.txt'  # 人物字典路径
SYNONYMOUS_DICT_PATH = 'synonymous_dict.txt'  # 同义词路径
SAVE_NODE_PATH = 'node.csv'
SAVE_EDGE_PATH = 'edge.csv'
class RelationshipView:
    def __init__(self, text_path, dict_path, synonymous_dict_path):
        self._text_path = text_path
        self._dict_path = dict_path
        self._synonymous_dict_path = synonymous_dict_path
        '''
        person_counter是一个计数器,用来统计人物出现的次数。{'a':1,'b':2}
        person_per_paragraph每段文字中出现的人物[['a','b'],[]]
        relationships保存的是人物间的关系。key为人物A,value为字典,包含人物B和权值。
        '''
        self._person_counter = defaultdict(int)
        self._person_per_paragraph = []
        self._relationships = {
   }
        self._synonymous_dict = {
   }

    def generate(self):
        self.count_person()
        self.calc_relationship()
        self.save_node_and_edge()

    def synonymous_names(self):
        '''
        获取同义名字典
        :return:
        '''
        with codecs.open(self._synonymous_dict_path, 'r', 'utf-8') as f:
            lines = f.read().split('\r\n')
        for l in lines:
            self._synonymous_dict[l.split(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值