基于共现提取人民的民义人物关系

通过加载自定义字典,使用jieba进行分词,去除标点符号,提取出《人民的名义》中的人物名称。统计各人物出现次数,并建立人物之间的关系字典,记录人物间的联系紧密程度。最后将人物节点和关系边写入文件,用于后续分析。
摘要由CSDN通过智能技术生成

“`

-- coding: utf-8 --

import os,sys
import re
import jieba,codecs,math
import jieba.posseg as pseg
import string
from zhon.hanzi import punctuation

names = {} # 姓名字典,字典的键为人物名称,值为该人物在全文中出现的次数
relationships = {} # 关系字典,人物关系的有向边,该字典的键为有向边的起点,值为一个字典edge,
# edge的键是有向边的终点,值是有向边的权值,代表两个人物之间联系的紧密程度
lineNames = [] # 每集内人物关系,保存对每一段分词得到当前集中出现的人物名称,lineName[i]是一个列表,列表中存储第i集中出现过的人物。

jieba.load_userdict(“dict.txt”) # 加载字典
with open(“introduction.txt”,”r”) as f:
for line in f.readlines():
line = line.decode(‘GB2312’)
line = line.encode(‘utf-8’)
line = re.sub(ur”[%s]+” % punctuation, “”, line.decode(“utf-8”)) # 去标点
poss = pseg.cut(line)
lineNames.append([])
for w in poss:
if w.flag != “nr” or len(w.word)&l

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值