- 博客(20)
- 收藏
- 关注
原创 完成内容总结
目前完成情况:对西游记完成了人物关系分析,具体分解结果有:各人物出场次数人物之间的亲密度人物之间的相似度人物的聚类分析显示结果如下:{'唐僧': 889, '孙悟空': 955, '猪八戒': 1874, '牛魔王': 40, '千里眼': 2, '顺风耳': 2, '阎王': 52, '菩提祖师': 3, '东海龙王': 3, '南海龙王': 3, '北海龙王': 5, '西海...
2019-04-15 10:16:42
377
原创 关于分析小说人物时人物有多个名字的处理
在分析西游记时,比如孙悟空在小说中就有美猴王、孙行者、齐天大圣等名字,在分析人物关系时需要把多个名字的分析数据合并到一起.首先是把多个名字的出场次数合并到一起:keys = list(names.keys())for i in keys: if i == '美猴王' or i == '悟空' or i == '孙行者' or i == '齐天大圣' or i == '大师兄': ...
2019-03-22 10:17:27
606
原创 networkx绘制人物关系网络图
在之前的基础上,通过对分析结果数据进行可视化分析,让结果更加一目了然。这里使用networkx进行人物关系网络图绘制。def painting(): #绘制人物亲密度图 G = nx.Graph() # 绘制个人物之间的亲密关系 people_num = 0 edge_num = 0 for i in relationships: G.add_...
2019-03-18 13:45:07
5901
1
原创 gnuplot点线风格
假如我们有这样的一个点线图:这里的数据点是由小“十”字表示的,但是似乎太小了,有点看不清楚。另外,如果我们想在做报告时把这个图用到幻灯片中去,小“十”字很不醒目,这时候我们可能想用其他的标志。gnuplot里面有几个控制点和线画法风格的参数:linestyle 连线风格(包括linetype,linewidth等)linetype 连线种类linewidth 连线粗细...
2019-02-17 18:53:05
1823
原创 gunplot绘图
gnuplot,轻量级画图神器。放上维基百科的解释:gnuplot是一套跨平台的数学绘图自由软件。使用交互式接口,可以绘制数学函数图形,也可以从纯文字档读入简单格式的座标资料,绘制统计图表等等。它不是统计软件,也不是数学软件,它纯粹只是一套函数/资料绘图软件。它可以产生PNG,SVG,PS,HPGL,……等等开放的图形档案格式的输出,供文书处理/简报/试算表/……等等软件汇入。功能:绘画二维或...
2019-02-12 19:50:58
1183
原创 利用jieba分词分析小说三
在之前分词的基础上进一步分析人物的关系。首先先把每一行小说里面的人物名字统计出来,只需在之前统计各人物出场次数的基础上增加一点代码即可:sentence = []for line in f.readlines(): seg_list = jieba.cut(line,cut_all=False) unique_list = [] linenames.append([]...
2019-02-08 21:37:52
710
原创 利用jieba分词分析小说二
在之前通过jieba分词统计出了各人物的出场次数的基础上,我们可以利用Gensim Word2vec进一步分析人物关系,Gensim是自然语言处理中的一款具备多种功能的神器。Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸...
2019-02-01 20:29:00
628
原创 利用jieba分词分析小说一
准备工作下载好需要分析的小说txt文件,这里我选择的是《龙族》的第一部。小说人物名字的txt文件。中文停用词txt文件。安装好jieba库。正式开始用jieba.cut()完成分词后统计各人物的出场次数.import jiebaimport pickleimport jieba.analysenames = {}all_names = []sentence = []#用...
2019-01-30 18:43:21
2381
1
原创 jieba分词
特点支持三种分词模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常- 快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。支持自定义词典支持繁体分词主要功能1. 分词jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否...
2019-01-28 15:29:50
143
原创 Python TCP编程
客户端大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。所以,我们要创建一个基于TCP连接的Socket,可以这样做:import socket# 创建一个socket:s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:s.connect(('www.sina.co...
2019-01-25 21:03:53
101
原创 Python常用第三方模块
Pillowpillow可以用来处理图像,在命令行下通过pip install pillow命令安装即可。最常见的图像缩放操作,只需几行代码:from PIL import Image# 打开一个jpg图像文件im = Image.open('test.jpg')# 获得图像尺寸:w, h = im.sizeprint('Original image size: %sx%s' %...
2019-01-22 17:05:56
979
原创 Python常用内建模块
structpython没有专门处理字节的数据类型。但由于b'str'可以表示字节,所以,字节数组=二进制str,在Python中,假设要把一个32位无符号整数变成字节,也就是4个长度的bytes,你得配合位运算符这么写:>>> n = 10240099>>> b1 = (n & 0xff000000) >&am
2019-01-19 20:33:36
221
原创 Python正则表达式
正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字,所以:'00\d'可以匹配'008',但无法匹配'00A';'\d\d\d'可以匹配'010';'\w\...
2019-01-17 21:24:48
112
原创 Python进程和线程
多进程Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的I...
2019-01-15 19:29:10
130
原创 Python的IO编程
文件读写读文件要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符, 如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:f = open('/Users/XH/Downloads/v2ray_config', 'r')print(f.read())标示符’r’表示读,这样就成功地打开了一...
2019-01-13 20:41:37
113
原创 Python的错误处理机制
高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外。trytry: print('try...') r = 8 / 0 print('result:', r)except ZeroDivisionError as e: print('except:', e)finally: print('f...
2019-01-11 23:42:57
535
原创 Python类的高级用法
定制类__ iter__如果一个类想被用于for … in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。 比如以斐波那契数列为例,写一个Fib类,可以作用于for循环:class Fib(ob...
2019-01-09 17:03:27
1270
原创 Python面向对象编程
类和实例在Python中,定义类是通过class关键字,注意类名要大写首字母:class Student(object): pass定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的:bart = Student()可以自由地给一个实例变量绑定属性,比如,给实例bart绑定一个name属性:bart.name = 'Ba...
2019-01-07 15:38:11
146
原创 Python入门基础二——函数式编程
匿名函数当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。如:list(map(lambda x:x * x,[1,2,3,4,5]))实际上就相当于def f(x): return x * x关键字lambda表示匿名函数,冒号前面的x表示函数参数。匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。同样,也可以把匿名函...
2019-01-05 16:07:41
132
原创 Python入门基础笔记一
Python入门基础笔记一python是动态语言,强类型语言基础语法基础数据类型注释数字字符串转义字符缩进运算符算术运算符位运算符运算符优先级表达式python是动态语言,强类型语言1.不用事先声明类型,随时可以赋值为其他类型2. 编程时不知道是什么类型,很难推断(编译时无法检查,只有运行时才能检查)基础语法基础数据类型注释由符号#标注的文字数字整数 不区分短整型和长整型进...
2019-01-03 11:28:53
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人