实例:三国人物出现频率top10分析
完整版代码
import jieba
from wordcloud import WordCloud
import imageio
mask = imageio.imread('model.jpg')
with open('build/novel/threekingdom.txt', 'r', encoding = 'utf-8')as f:
data = f.read()#读取文件
words_list = jieba.lcut(data)#分词
#print(words_list)
#构建一个容器,存储我们的数据
counts = {}
excludes = {'将军', '却说', '二人', '不可', '荆州', '不能', '如此',
'商议', '如何', '主公', '军马', '左右', '军士', '次日', '引兵',
'大喜', '天下', '于是', '东吴', '今日', '不敢', '魏兵', '陛下',
'都督', '人马', '不知', '汉中', '一人', '只见', '众将', '后主' }
#遍历wordlist,筛选出人名
for word in words_list:
#print(word)
if len(word) <= 1:
#过滤无关词语
continue
#指向同一个词的人进行合并, 这样合并不用在excludes里二次添加
elif word == '诸葛亮' or word == '孔明曰':
rword = '孔明'
elif word == '关公' or word == '云长':
rword = '关羽'
elif word == '孟德':
rword = '曹操'
elif word == '玄德' or word == '玄德曰':
rword = '刘备'
else:
#向counts内更新值
rword = word
counts[rword] = counts.get(rword, 0) + 1
# else:
#
# counts[word] = counts.get(word, 0) + 1
#print(counts)
## 指向同一个词的人进行合并,这样合并需要在excludes里二次添加
# counts['孔明'] = counts['诸葛亮'] + counts['孔明曰'] + counts['孔明']
# counts['关公'] = counts['云长'] + counts['关公'] + counts['关羽']
# counts['刘备'] = counts['玄德'] + counts['刘备']
# counts['曹操'] = counts['孟德'] + counts['曹操']
#
for word in excludes:
del counts[word]
items = list(counts.items())
items.sort(key = lambda x:x[1], reverse = True)
#print(items)
# for i in range(10):
# role,count = items[i]
# print('"{}"出现次数:{}'.format(role, count))
#
role_list = []
for i in range(10):
# 将返回的数据拆开 ,拆包
# print(items[i])
role, count = items[i]
print(role, count)
# i 临时变量如果不需要的话可以写成 _
# 优点是让读代码的人能够清晰的知道此处不需要使用 i
for _ in range(count):
role_list.append(role)
# 将列表变成字符串
text = " ".join(role_list)
WordCloud(
background_color='white',
mask=mask,
font_path='msyh.ttc',
# 是否包含两个词的搭配 设置为false即可
collocations=False
).generate(text).to_file('三国人物前十展示.png')
爬虫
浏览器的结构
- html
超文本标记语言
标签形式存在,大多数是以标签段的形式存在的 - css
是一种用来表现HTML的计算机语言,能使HTML页面变得更加美观 - JavaScript
用来给HTML网页增加动态功能、交互行为
是一种解释性脚本语言(不进行预编译)
目前我们熟悉的语言Java、JavaScript、C、C++,都属于高级编程语言
html(超文本标记语言)、css(层叠 样式表)、JavaScript脚本语言这三样东西在浏览器端相互配合、相辅相成形成了比较成熟的前端界面
<!DOCTYPE html>
<!--注意以下是html文档-->
<html lang="en">
<!--树形结构,html根-->
<head>
<meta charset="UTF-8">
<!--可存放搜索引擎中要显示的-->
<title>Title</title>
<!--标题-->
</head>
<body>
<!--内容-->
<h1>习近平主持中央政治局会议 讨论拟提请十九届四中全会审议的文件</h1>
<!--h1为markdown内#-->
<h5>2019年10月24日 14:25 新华网</h5>
<hr>
<!--水平标签-->
<p>原标题:中共中央政治局召开会议 讨论拟提请十九届四中全会审议的文件
<br>中共中央政治局10月24日召开会议,研究坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化若干重大问题。中共中央总书记习近平主持会议。
会议决定,中国共产党第十九届中央委员会第四次全体会议于10月28日至31日在北京召开。
<br>中共中央政治局听取了《中共中央关于坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化若干重大问题的决定》稿在党内外一定范围征求意见的情况报告,决定根据这次会议讨论的意见进行修改后将文件稿提请十九届四中全会审议。
<br>会议认为,这次征求意见充分发扬党内民主,广泛听取意见,各地区各部门各有关方面和党的十九大代表对决定稿给予充分肯定,认为决定稿主题鲜明、重点突出、措施有力,同时提出许多很好的意见和建议,要全面梳理、深入研究、集思广益,切实把文件制定好。
<!--段落-->
</body>
</html>
图片加载
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>本地图片,服务器图片加载</h1>
<!--src 和 alt 是 img标签的属性 . 在路径表达式里表示当前文件夹 / 用于分割文件夹-->
<!--加载本地图片-->
<img src="./timg.jpg" alt="图片不见了">
<!--加载服务器图片-->
<br>
<img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=4106176065,2329151192&fm=11&gp=0.jpg" alt="">
</body>
</html>
若图片加载失败则显示 alt="图片不见了"中的图片不见了字样
标签设置
设置按钮,点击后跳转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--<标签名 属性1="属性值1" 属性2="属性值2" …> 内容 </标签名>-->
<!--1.标签可以拥有多个属性,必须写在开始标签中,位于标签名后面。-->
<!--2.属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。-->
<!--3.任何标签的属性都有默认值,省略该属性则取默认值。-->
<!--采取 键值对 的格式 key="value" 的格式 -->
<!--无序列表-->
<ul>
<li><a href="https://pvp.qq.com/web201605/herodetail/112.shtml"> <img src=https://game.gtimg.cn/images/yxzj/img201606/heroimg/112/112.jpg" alt="">鲁班七号</a></li>
<li>狄仁杰</li>
<li>安琪拉</li>
<li>貂蝉</li>
</ul>
<!--有序列表-->
<ol>
<li>后羿</li>
<li>伽罗</li>
<li>米莱迪</li>
</ol>
<!--div标签是一个容器,常用于div+css现代网页布局,非常常用,特点,无色无味,独占一行-->
<div>爬虫的学习先要了解网页标签结构</div>
<div>王者荣耀英雄池深厚</div>
<div>
<p>河北邯郸一钢铁公司发生火灾 已致7人死亡</p >
<!-- a标签用于链接-->
</div>
</body>
</html>