python 关于Python看金庸小说的实验
看了网上的说明我也开始依葫芦画瓢。
准备好了材料
本人window7 64的!
金庸小说全集
names.txt
bangs.txt
gongfu.txt
于是我开始玩了
本身就下了Python27
又是去下Python35
因为要用到3的特性
不过我没有把实验做完,就做到统计图那里
为了节省还想要玩这个有趣的实验的人的·时间
我就写了这一篇文章
现附上效果图
1
这是我的下载文件
应该说是数据处理的工具吧
numpy-1.12.1+mkl-cp35-cp35m-win_amd64
matplotlib-2.0.2-cp35-cp35m-win_amd64
scipy-0.19.0-cp35-cp35m-win_amd64
可以根据自己的需要去这个网站下载适合自己的版本
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
下完在自己的python/scripts里将上面的文件
用pip install 文件位置
进行安装
装好就可以玩了
其实网上给的代码不全 我也是被坑惨了
附上代码 其实不多
from __future__ import unicode_literals
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
font_songti = FontProperties(fname="C:\Windows\Fonts\STZHONGS.TTF")
with open('names.txt') as f:
print(" reading")
data = [line.strip() for line in f.readlines()]
novels = data[::2]
names = data[1::2]
novel_names = {k: v.split() for k, v in zip(novels, names)}
print(novels)
for name in novel_names['天龙八部'][:20]:
print (name)
def find_main_charecters(novel, num=10):
print("函数执行")
with open('novels/{}.txt'.format(novel),'r', encoding='utf-8') as f:
data = f.read()
count = []
for name in novel_names[novel]:
count.append([name, data.count(name)])
count.sort(key=lambda x: x[1])
_, ax = plt.subplots()
numbers = [x[1] for x in count[-num:]]
names = [x[0] for x in count[-num:]]
ax.barh(range(num), numbers, color='red', align='center')
ax.set_title(novel,
fontsize=14,
fontproperties=font_songti)
ax.set_yticks(range(num))
ax.set_yticklabels(names,
fontsize=14,
fontproperties=font_songti)
plt.show()
print("函数完毕")
print("到达")
find_main_charecters("天龙八部")
find_main_charecters("射雕英雄传")
find_main_charecters("神雕侠侣")
find_main_charecters("倚天屠龙记")
麻烦的是编码和一些文件的安装
就是要调用的工具类吧(好像不对)
就是不要再浪费太多时间了
引以为戒
其实后面还有关于机械学习的
我有空也会实验
不过又要去下一些不明所以的工具
像结巴什么的
于是如果有人也无聊来做
别要怪我没提醒你