# 第十二章 分词与词云图可视化
# 第一节 词云图
# 第二节 D3词云图
# 点击此处下载JSP及SQL文件
# wordcloud.htm
# wordcloudV72023.htm
# 国家十四五规划词云图
# graphgraph.html
# 第三节 基于Python的分词实例
# 1.分词实例之 JiebaHello
# encoding=utf-8
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("【全模式】: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("【精确模式】: " + "/ ".join(seg_list)) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print("【新词识别】: " + "/ ".join(seg_list))
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print("【搜索引擎模式】: " + "/ ".join(seg_list))
# 2.添加词典之 JiebaDict
#ecoding=utf-8
import jieba
jieba.load_userdict("jiebaDict.txt")
words=jieba.cut("他来到了网易杭研大厦")
print("/ ".join(words))
# 3.词性标注之 JiebaToken
import jieba.posseg as pseg
words=pseg.cut("中国国家领导人在开会")
for key in words:
print(key.word,key.flag)
# 第四节 影视剧小说词云图案例分析
# 1.添加的人名词典
侯亮平 1 n
沙瑞金 1 n
李达康 1 n
高育良 1 n
祁同伟 1 n
陆亦可 1 n
高小琴 1 n
吴惠芬 1 n
刘新建 1 n
陈岩石 1 n
季昌明 1 n
赵瑞龙 1 n
郑西坡 1 n
钟小艾 1 n
赵东来 1 n
蔡成功 1 n
欧阳菁 1 n
丁义珍 1 n
程度 1 n
陈海 1 n
郑胜利 1 n
王文革 1 n
# 2.Python分词程序
import jieba
with open('renmin.txt', 'r') as f:
renmin=f.read()
jieba.load_userdict("renminDict.txt") #添加词典
seg_list = jieba.cut(renmin, cut_all=False) #分词
print("【精确模式】: " + "/ ".join(seg_list))
tf = {}
for seg in seg_list:
if seg in tf: # 如果该键存在于集合tf的对象中,则该键所属对象值加1
tf[seg] +=1
else: #否则,生成新词的键值对,初始值为1
tf[seg] = 1
ci = list(tf.keys()) #将分词结果中的所有键值,即词语,放置在一个列表
with open('stopword.txt', 'r') as ft:
stopword=ft.read()
for seg in ci: #逐个判断是否停用词,及对词语长度进行处理
if tf[seg]<20 or len(seg)<2 or seg in stopword or '一'in seg:
tf.pop(seg) #若属停用词,则删去该键值对
#过滤后的词语和词频分别存入列表ci和num中,并将data声明为列表,以存储键值对
ci, num, data = list(tf.keys()), list(tf.values()),[]
for i in range(len(tf)):
data.append((num[i],ci[i])) #逐个将键值对存入data中
data.sort() #升序排列
data.reverse() #逆序,得到所需的降序排列
f = open("result.txt", "w")
for i in range(len(data)):
f.write("[\""+data[i][1]+"\","+str(data[i][0])+"],") #以下文词云API所需数据格式存入文件
f.close()