python文本挖掘(三)——实例2

本文通过Python进行文本挖掘,统计《玩偶之家》人物关系,包括人物出场次数统计、人物别称映射,并利用gephi软件绘制人物关系图,节点大小和颜色代表出场频率和互动频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:
文本可视化[二]——《今生今世》人物关系可视化python实现

实验过程

绘制《玩偶之家》中的人物关系网
代码实现分为三步

  1. 人物出场次数统计
    对文本进行针对性分词,需要准备两份特殊词典
    (1)
    关心的人物词典:
    海尔茂 10 nr
    托伐 10 nr
    娜拉 10 nr
    爱伦 10 nr
    安娜 10 nr
    阮克 10 nr
    林丹 10 nr
    克立斯替纳 10 nr
    柯洛克斯泰 10 nr
    伊娃 10 nr
    爱密 10 nr
    巴布 10 nr
    尼尔 10 nr
    (2)
    人物别称映射词典:
    海尔茂 托伐
    海尔茂先生 托伐
    鸟儿 娜拉
    小鸟儿 娜拉
    小松鼠儿 娜拉
    海尔茂太太 娜拉
    阮克大夫 阮克
    阮克医生 阮克
    林丹 克立斯替纳
    尼尔 柯洛克斯泰

  2. 人物关系统计

  3. 格式化输出。

实现代码:

# -*- coding: GBK -*-
from __future__ import print_function

"""
人物关系网
"""

import jieba
import codecs
from collections import defaultdict

#定义文件路径常量和初始化全局变量
TEXT_PATH = 'F:/geany_python_codes/analysis_py/textminingprojects/doll_house.txt'  # 文本路径
DICT_PATH = 'F:/python35/Lib/site-packages/jieba/dict_doll_house_person.txt'  # 人物词典路径,保存我们关心的人物
SYNONYMOUS_DICT_PATH = 'F:/python35/Lib/site-packages/jieba/synonymous_dict.txt'  # 同义词词典路径,保存人物别称
SAVE_NODE_PATH = 'F:/geany_python_codes/analysis_py/textminingprojects/node.csv' #输出的节点数据
SAVE_EDGE_PATH = 'F:/geany_python_codes/analysis_py/textminingprojects/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 = {
   }

    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值