python 关于Python看金庸小说的实验

看了网上的说明我也开始依葫芦画瓢。

准备好了材料

本人window7 64的!

金庸小说全集

names.txt

bangs.txt

gongfu.txt

于是我开始玩了

本身就下了Python27

又是去下Python35

因为要用到3的特性

不过我没有把实验做完,就做到统计图那里

为了节省还想要玩这个有趣的实验的人的·时间

我就写了这一篇文章

现附上效果图

1python 关于Python看金庸小说的实验python 关于Python看金庸小说的实验python 关于Python看金庸小说的实验python 关于Python看金庸小说的实验

这是我的下载文件

应该说是数据处理的工具吧

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("倚天屠龙记")


麻烦的是编码和一些文件的安装

就是要调用的工具类吧(好像不对)

就是不要再浪费太多时间了

引以为戒

其实后面还有关于机械学习的

我有空也会实验

不过又要去下一些不明所以的工具

像结巴什么的

于是如果有人也无聊来做

别要怪我没提醒你