最近有将近一个月的时间没更新了,并不是小文有心地偷懒,而是实在是有太多的砖要搬了(不多说了,等会还要继续搬-_-!!)......因为最近的项目涉及到文本分析(jieba包)以及人物关系分析(gephi),因此今天就整理总结一下,以哈利波特七部曲(国庆假期看的)为例,分享一下个人的使用心得。
先简单介绍一下jieba中文分词包,jieba包主要有三种分词模式:
- 精确模式:默认情况下是精确模式,精确地分词,适合文本分析;
- 全模式:把所有能成词的词语都分出来, 但是词语会存有歧义;
- 搜索引擎模式:在精确模式的基础上,对长词再次切分,适合用于搜索引擎分词。
jieba包常用的语句:
- 精确模式分词:jieba.cut(text,cut_all = False),当cut_all = True时为全模式
- 自定义词典:jieba.load_userdict(file_name)
- 增加词语:jieba.add_word(seg,freq,flag)
- 删除词语:jieba.del_word(seg)
《哈利·波特》是英国作家J·K·罗琳的奇幻文学系列小说,描写主角哈利·波特在霍格沃茨魔法学校7年学习生活中的冒险故事。下面将以《哈利波特》错综复杂的人物关系为例,实践一下jieba包。
#加载所需包
import numpy as np
import pandas as pd
import jieba,codecs
import jieba.posseg as pseg #标注词性模块
from pyecharts import Bar,WordCloud
#导入人名、停用词、特定词库
renmings = pd.read_csv('人名.txt',engine='python',encoding='utf-8',names=['renming'])['renming']
stopwords = pd.read_csv('mystopwords.txt',engine='python',encoding='utf-8',names=['stopwords'])['stopwords'].tolist()
book = open('哈利波特.txt',encoding='utf-8').read()
jieba.load_userdict('哈利波特词库.txt')
#定义一个分词函数
def words_cut(book):
words = list(jieba.cut(book))
stopwords1 = [w for w in words if le