程序实现的功能
根据自然语言处理基本内容,请选择一本喜欢的小说,对该小说进行分析。分析该小说的分词,词频,词性,词云,小说人物出场次数排序,小说中食物排序(这个得有,我喜欢吃),小说人物关系等等。
前言
自然语言处理小说文本,各个功能以函数形式实现,并在主程序中调用。比如分词功能,词频词性统计保存txt功能,统计人名_词频并保存txt功能,读取txt文件生成柱状图可视化功能,分词词频词性可视化功能,关系图可视化功能,pyecharts词云可视化功能,建立人工手动自定义词典功能(程序中有写,但最后没有使用,去掉注释后是可以使用的),jieba绘制词云_人名可视化并保存png图片功能。
一、设计思想
1、jieba简介:
jieba是基于Python的中文分词工具,通过安装jieba第三方库,并使用jieba,从而实现对中文分词的处理。并且jieba安装非常方便,上手相对比较轻松,速度也比较快。它还具有支持三种分词模式、支持繁体分词、支持自定义词典和MIT授权协议的优点。
2、功能函数简介:
# 停词文档,排除停用词 def stopwordslist(filepath): # 生成词频词性文件 def getWordTimes1(): # 分词生成人物词频 def wordFreq1(filepath, topn1): # 绘制分词的词频词性可视化图 def create_wordproperties(): # 分词生成人物词频并写入文档 def wordFreq2(filepath, topn): # 可视化人物出场次数方法 def creat_people_view(): # 生成《活着》中主要人物的词云 def creat_wordcloud(): # 使用pyecharts 的方法生成词云 def creat_wordcloud_pyecharts(): # 生成人物关系图 def creat_relationship():
二、准备工作
1.引入库
代码如下(示例):
import jieba
import re
# 导入random包
import random
import codecs
import networkx as nx
# 获取分词
import jieba.posseg as pesg
from pyecharts import options as opts
# 获取柱状图
from pyecharts.charts import Bar
# 获取词云图
from pyecharts.charts import WordCloud
# 词云第三方库导入
import numpy as np
import wordcloud
from PIL import Image
import matplotlib.pyplot as plt
2.前期准备
2.1准备小说原文、用户字典、停用词的txt文档以及词云用到的图片
该处使用的huo_zhe.txt文件为小说《活着》原文,可自行网上查找下载并保存与txt文档中。
词云背景图也自行在网上查找自己心仪且和文章有关的图片并下载即可。
注意:文档编码应为UTF-8,否则编译会报错。
三、源码
import jieba # 引用用户词典中使用
import re
# 导入random包
import random
import codecs
# 导入networkx包
import networkx as nx
import jieba.posseg as pseg # 获取词性
from pyecharts import options as opts
# 获取柱状图
from pyecharts.charts import Bar
# 获取词云图
from pyecharts.charts import WordCloud
# 词云第三方库导入
import numpy as np
import wordcloud
from PIL import Image
import matplotlib.pyplot as plt
# from wordcloud import WordCloud
# 设置主要人物的个数
visualTop = 10 # 可视化人物图人数
mainTop = 20 # 人物词云图人物数
peopleTop = 5