
python
文章平均质量分 85
multiangle
这个作者很懒,什么都没留下…
展开
-
Matrix Factorization 学习记录(一):基本原理及实现
Matrix Factorization 学习记录(一):基本原理及实现最近在学习Matrix Factorization,也就是矩阵的分解。 这个技术目前主要应用于推荐系统领域,用于实现隐含语义模型(Latent Factor Model)。通过矩阵分解,一方面可以减少运算量,另一方面可以很好的解决由于用户数目和物品数目过多引起的行为矩阵稀疏化问题。我虽然暂时不去做推荐系统,但是我觉得这...原创 2018-06-05 20:06:38 · 19812 阅读 · 11 评论 -
tensorflow笔记:使用tf来实现word2vec
时隔若干个月,又绕到了word2vec。关于word2vec的原理我就不叙述了,具体可见word2vec中的数学,写的非常好。 我后来自己用Python实现了一遍word2vec,过程写在自己动手写word2vec (一):主要概念和流程以及后续的若干文章中我当时使用的是Hierarchical Softmax+CBOW的模型。给我的感觉是比较累,既要费力去写huffman树,还要自己写计算梯度的原创 2017-01-05 14:50:21 · 29529 阅读 · 21 评论 -
深度学习笔记(六):Encoder-Decoder模型和Attention模型
这两天在看attention模型,看了下知乎上的几个回答,很多人都推荐了一篇文章Neural Machine Translation by Jointly Learning to Align and Translate 我看了下,感觉非常的不错,里面还大概阐述了encoder-decoder(编码)模型的概念,以及传统的RNN实现。然后还阐述了自己的attention模型。我看了一下,自己做了一些摘原创 2016-10-15 23:09:25 · 123306 阅读 · 17 评论 -
tensorflow笔记 :常用函数说明
本文章内容比较繁杂,主要是一些比较常用的函数的用法,结合了网上的资料和源码,还有我自己写的示例代码。建议照着目录来看。1.矩阵操作1.1矩阵生成这部分主要将如何生成矩阵,包括全0矩阵,全1矩阵,随机数矩阵,常数矩阵等tf.ones | tf.zerostf.ones(shape,type=tf.float32,name=None) tf.zeros([2, 3], int32) 用法类似,都是产原创 2016-10-13 11:29:57 · 101244 阅读 · 9 评论 -
tensorflow笔记:多层LSTM代码分析
tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析之前讲过了tensorflow中CNN的示例代码,现在我们来看RNN的代码。不过好像官方只给了LSTM的代码。那么我们就来看LSTM吧。LSTM的具体原理就不讲了,可以参见深度学习笔记(五):LSTM,讲的非常清楚。坦白说,这份写LSTM的代码有点难,原创 2016-10-08 17:33:34 · 166782 阅读 · 68 评论 -
tensorflow笔记:多层CNN代码分析
在之前的tensorflow笔记:流程,概念和简单代码注释 文章中,已经大概解释了tensorflow的大概运行流程,并且提供了一个mnist数据集分类器的简单实现。当然,因为结构简单,最后的准确率在91%左右。似乎已经不低了?其实这个成绩是非常不理想的。现在mnist的准确率天梯榜已经被刷到了99.5%以上。为了进一步提高准确率,官网还提供了一个多层的CNN分类器的代码。相比之前的一层神经网络,这原创 2016-10-03 18:05:44 · 48917 阅读 · 12 评论 -
tensorflow笔记:流程,概念和简单代码注释
tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果。这两天看了看官方的tutorial,极客学院的文档,以及综合tensorflow的源码,把自己的心得整理了一下,作为自己的备忘录。tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorfl原创 2016-09-27 08:13:18 · 72230 阅读 · 25 评论 -
使用gensim和sklearn搭建一个文本分类器(二):代码和注释
在之前的 使用gensim和sklearn搭建一个文本分类器(一):流程概述 中,叙述了一个使用lsi来对文本进行向量化,再使用线性核svm进行分类的文本分类器。在这篇文章中,沿着之前的思路,提供了该文本分类器的具体实现。该分类器对之前的流程进行了适当的整合,现在有五个主要流程: 生成词典生成tfidf向量生成lsi向量分类器参数训练对新文本进行分类。前4个步骤可以看做是分类器的训练过程原创 2016-09-12 17:49:00 · 9909 阅读 · 5 评论 -
使用gensim和sklearn搭建一个文本分类器(一):流程概述
总的来讲,一个完整的文本分类器主要由两个阶段,或者说两个部分组成:一是将文本向量化,将一个字符串转化成向量形式;二是传统的分类器,包括线性分类器,SVM, 神经网络分类器等等。之前看的THUCTC的技术栈是使用 tf-idf 来进行文本向量化,使用卡方校验(chi-square)来降低向量维度,使用liblinear(采用线性核的svm) 来进行分类。而这里所述的文本分类器,使用lsi (laten原创 2016-09-04 18:19:21 · 24098 阅读 · 0 评论 -
基于ftp实现一个类dropbox文件同步程序
最近要在实验室和宿舍两头跑,同一台电脑上还有win和linux等多个系统,想要在任何一个地点和平台上继续看之前的文献实在有点麻烦,只能拿U盘来拷,但是我的U盘又很容易掉,万一掉了那辛苦工作的成果可就全没了。你说网盘吧,百度网盘又不合我意,同步太麻烦了。最符合我想法的还是dropbox, 只要把文件丢在文件夹里面,就会自动帮你同步。但是dropbox被封了呀, 有人推荐金山快盘,跑去一看已经关了。其他原创 2016-08-31 00:02:51 · 3250 阅读 · 0 评论 -
异步爬虫: async/await 与 aiohttp的使用,以及例子
在python3.5中,加入了asyncio/await 关键字,使得回调的写法更加直观和人性化。而aiohttp是一个提供异步web服务的库,分为服务器端和客户端。这里主要使用其客户端。本文分为三步分,第一部分简单介绍python3.5的异步,asyncio/await 关键字。第二部分介绍aiohttp客户端部分的使用。第三部分是一个例子,列举了如何爬取优快云某个博客中的所有文章。 1.原创 2016-08-23 23:47:46 · 33395 阅读 · 3 评论 -
gensim使用方法以及例子
gensim是一个python的自然语言处理库,能够将文档根据TF-IDF, LDA, LSI 等模型转化成向量模式,以便进行进一步的处理。此外,gensim还实现了word2vec功能,能够将单词转化为词向量。关于词向量的知识可以看我之前的文章关于gensim的使用方法,我是根据官网的资料来看的,思路也是跟着官网tutorial走的,英文好的或者感觉我写的不全面的可以去官网看 1. corpora原创 2016-08-16 10:58:58 · 59976 阅读 · 12 评论 -
对希拉里泄露邮件进行简单分析的结果
这次爆出的邮件门十分劲爆啊,不过看了看邮件内容,如果进行NLP处理的话太过繁杂,所以选择了对收发邮箱间的关系进行简单分析。原文发在知乎上,这里就直接搬过来了。分析的代码放在github上1.首先来看收发邮件数在6000封邮件中,涉及了600个左右的邮箱 单看发送邮件的数目,前五强邮箱分别是kaplanj@dnc.org: 645封 MirandaL@dnc.原创 2016-07-28 11:00:09 · 6850 阅读 · 5 评论 -
[Python]time模块以及时间戳的使用
1.将字符串的时间转换为时间戳方法:import timea = "2013-10-10 23:40:00"# 将其转换为时间数组timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")# 转换为时间戳:timeStamp = int(time.mktime(timeArray))print( timeStamp == 1381419600 )2转载 2016-02-28 21:08:04 · 7069 阅读 · 1 评论 -
使用networkx导出关系网络并用gephi进行简单分析
之前使用爬虫获取到了微博上粉丝数大于2000的用户,大概在10W左右,并获取了他们的关注用户列表。现在,需要利用这些节点和节点间的关系网来进行社区探测(community detection),以进行进一步分析。不过在此之前,需要攫取一些小样本进行简单的可视化。使用networkx(python)导出gexf格式文件这边使用gephi来进行分析。而使用gephi需要有gexf或者gephi格式的数原创 2016-02-28 11:21:21 · 27080 阅读 · 8 评论 -
微博移动端所获数据各字段的含义
最近在写微博的爬虫,框架已经基本稳定,但是在解析各字段含义的环节卡了好几天,因为不清楚各个字段的含义,官网的api注释好像有点过时,很多字段没有注释,所以只能自己一点一点分析了现在把我自己分析得到的各字段含义分享一下,不能保证完全正确,但是大致无误移动端得到的微博数据是json格式的,获得一个页面的数据以后,设为data,则 data[‘cards’][0][‘card_group’] 能够获原创 2016-02-25 15:08:42 · 3703 阅读 · 1 评论 -
[Python] re(正则表达式) 模块使用方法
关于正则表达式本身,就不多讲了,网上有好多教程。这里主要是讲下使用re模块中碰到的坑。。。re.compile把正则表达式编译为一个对象。可以选择把常用的正则表达式编译好,可以适当提高效率 举例:pattern=re.compile(r'<a href.+?</a>')re.findall原来以为match是用来查找字符串中是否有目标字段的,后来发现结果怎么也出不来,再一查发现这个角色被finda原创 2016-02-21 12:28:13 · 2446 阅读 · 0 评论 -
[Python] 文件的读取、创建、追加、删除、清空
一、用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行:>>>f=open('f.txt','w') # r只读,w可写,a追加>>>for i in range(0,10):f.write(str(i)+'\n'). . .>>> f.close()二、文件内容追加,从0到9的10个随机整数:>>>import random>>>f=open('f.txt','转载 2016-01-30 20:50:39 · 2165 阅读 · 0 评论 -
分布式微博爬虫运行中出现的问题及解决方法(持续更新)
9.2016/3/31 对mongodb进行模糊查询是效率低的解决办法 当对mongodb使用正则表达式查询时,普通的正序和倒序索引已经无效,因为待搜索的pattern不是从字符串开头开始的。好在mongodb提供了文档索引的功能,官方文档参见这里,至于python的实现,可以这么写collec.create_index([('dealed_text.left_content',pymongo.T原创 2015-12-19 22:58:27 · 4771 阅读 · 0 评论 -
[Python] 分布式新浪爬虫的实现
写新浪爬虫是我这个暑假冒出来的想法,当时因为种种原因没能完成,一直拖到年底。期间也学习了很多其他的东西,如tornado等等。写这个爬虫的初衷是,希望能够爬取用户之间的关系网,进行社交网络分析。此外,受那篇Twitter mood predicts the stock market的影响,也希望能够分析微博用户每天的情绪变化。一开始写的时候,并没有想到要写成分布式的。我一开始只是写成单线程的形式。然原创 2015-12-18 15:07:20 · 3389 阅读 · 0 评论 -
[Python3.4]通过Redis利用BloomFilter实现数据去重
写爬虫的时候需要解决的一个很重要的问题就是需要判断得来的新链接是否之前已经爬过。如果已经爬过,则没有必要再爬。我之前采用的是非常笨拙的方法,就是把所有已经爬过的地址放在mysql的一张表中,但是问题在于,这样每一个新链接到来,都会查询一次是否该链接在表格中。这样的话,单单查询过程就会耗费磁盘大量的读写性能。而且实际运行的过程中也发现,磁盘的读取速率是写入速率的10倍以上,这显然是不可接受的。 一个原创 2015-12-16 10:13:55 · 5370 阅读 · 0 评论 -
MySql避免重复插入记录
原文地址:这里今天用python抓取数据入库需要避免重复数据插入,在网上找了一些方法:方案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:insert ignore into table_name(email,phone,user_id) values('test9@163.com','9转载 2015-12-12 13:42:35 · 1294 阅读 · 0 评论 -
[Python]多线程编程&线程间共享变量&消费者生产者问题的解决
由于单进程爬虫的种种弊端,以及大量获取数据的需要,我最近开始写分布式爬虫。尽管网上已经有比较现成的方案,如scrapy+rq等,但是出于种种原因考虑,比如部署的难易程度,任务比较单一,以及想自己练练手等,还是决定由自己实现尽可能多的功能。在写的过程中,不可避免的需要以多线程甚至多进程运行程序。因此解决多线程间以及多进程间的同步和通信问题成为必须。由于进程拥有独立资源,因此多进程同步比多线程同步要更难原创 2015-12-04 18:02:48 · 9529 阅读 · 0 评论 -
[Python3.4] 从HTTP代理网站批量获取代理并筛选
最近在写爬虫,苦于不采用代理的情况下,默认的IP不出几分钟就被封了,故而只能寻找代理。原以为找到HTTP代理就万事大吉了,没想到从那个网站获取的代理大部分都是不能用的,只有少部分能用。。。故而无奈之下,只能从那些代理网站大量获取代理IP,然后再拿过来进行进一步的筛选,将有效的代理IP提取出来,留待进一步使用。筛选的主要原理是,通过main函数提取到未经筛选的代理rawProxyList,然后通过这些原创 2015-12-03 21:16:26 · 2169 阅读 · 0 评论 -
使用SQLAlchemy ORM进行一些基础的操作(建表,插入,查询,删除)
引入sqlalchemy包from sqlalchemyimport Table,Column, String, create_engine,MetaData,textfrom sqlalchemy.orm import sessionmaker,mapperfrom sqlalchemy.ext.declarative import declarative_base 连接原创 2015-11-18 21:39:38 · 9526 阅读 · 1 评论 -
关于Python 的@操作符 Decorator 的用法
原帖转自 http://blog.sina.com.cn/s/blog_571b19a001013h7j.html直接翻译过来应该叫做 装饰符吧,不知是不是python特有的用法,看了下说明,艰难的弄明白了一些运作的原理。简单的说,@操作符是用来提供调用的,光是说明可能无法理解,写了一个小小的例子:def f1(arg): print ("f1") rl = arg() p转载 2015-11-08 23:49:03 · 36146 阅读 · 0 评论 -
[Python] Pandas 学习笔记(一)
Pandas的两个主要数据结构:Series和DataFrameSeries1.类似于一维数组对象,由一组数据(value)和一组与之相关的数据标签(index)组成。2.Index可以自己指定,也可自动生成obj = Series([4,7, -5, 3])obj2 =Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])原创 2015-11-08 14:08:18 · 1968 阅读 · 0 评论 -
[Python] Numpy学习笔记(二)
Part2 1.np.meshgrid(array1,array2) 产生两个矩阵,对应两个数组中所有(x,y)对e.g.[IN]a=np.arange(-5,5,0.1)[IN]x,y=np.meshgrid(a,a)[OUT]x=array([[a[0],a[1],a[2],…,a[n-3],a[n-2],a[n-1], [a[0],a[1],a原创 2015-11-08 00:18:38 · 4436 阅读 · 0 评论 -
[Python] Numpy学习笔记(一)
最近开始学习numpy和pandas的一些东西,顺手做了些笔记,跟大家分享,也方便我以后查阅原创 2015-11-06 19:21:51 · 8503 阅读 · 0 评论 -
[Python] 逻辑表达式的真值表以及卡诺图生成
最近帮老师改作业,发现同学们交上来的作业里,同一个表达式有好几种写法,被搞得不胜其烦,干脆花了点时间写了个程序来判断这些表达式究竟是不是同一个意思。 基本上按照四则运算的写法,使用了一个数字栈,一个运算符栈。括号和非运算则采用了递归的方式来计算括号内核非运算内的值。 逻辑表达式中有4中运算符,+,*,#和[] 分别表示或,与,异或,非运算。其中,异或运算不推荐与其他运算混合。如果一定要混合的话,原创 2015-10-31 01:06:22 · 8896 阅读 · 0 评论 -
python异常处理
Try…except… 假如,我们已经知道这种类型的错误,那么就可以通过一个异常扑捉来扑捉这个错误。我们可以通过try…except 来接收这个错误。打开文件写入:try: open("abc.txt",'r')except IOError: pass 再来运行程序就会看不到任何错误,因为我们用except 接收了这个IOError错误。pass 表示实现了相应的实现,但什么也不转载 2015-10-27 17:00:51 · 1277 阅读 · 0 评论 -
[Python]模拟键盘同时按下几个按键
最近宿舍一哥们找到我,说因为某个原因,问我有没有办法来模拟同时按下QSPL四个键。我看了看,发现用pywin32可以实现。稍微改下网上已有的程序即可。win下安装pywin32稍微有些麻烦,我这直接用pip安装不了,需要到这里去下whl文件,然后pip install xx.whl安装。安装完以后还提示不存在DLL文件,需要把Lib\site-packages\pywin32_system32 目录原创 2015-10-14 21:22:48 · 14843 阅读 · 2 评论 -
[Python]分享一些用来简化与SQL Server交互的函数
由于经常需要从网上或者从下载下来的文件导入数据库,在有了pymssql包以后,感觉还是有点麻烦。或者是老忘记指令,或者是执行完以后还要取出数据,或者要用更多的行数来实现一个功能。总而言之,感觉还是不太方便。于是自己写了一个类,能够实现一些基本操作。由于我是即用即写的,所以功能肯定不全。水平所限,估计执行效率也一般。不过好歹大部分操作都能用一行解决了嘛^_^ 在下的包叫MSSQL_Interfac原创 2015-09-26 00:40:10 · 1865 阅读 · 1 评论 -
[Python]对List进行复制时需要注意的问题
最近程序出了一个很奇怪的问题,第一天傻用print来调试不成功,第二天换成断点调试,居然发现是List的复制出了问题。这才发现,如果一个对象a为list,那么将a赋值给b(b=a)此时相当于a,b共用一个内存空间,也可以理解为数组a的指针赋值给b。当b被改动时,a也同步被改动。可以用一个小实验说明a=[1,4,3,5,1]b=ab.append(7)print(a)显示a=[1,4,3,5,1原创 2015-09-18 00:05:35 · 2175 阅读 · 0 评论 -
[Python]通过网易财经接口获取股票和指数的历史数据
因为最近需要用到股市的各种指数数据,刚开始想的是从同花顺等交易软件直接导出,结果发现要用滚轮滚到最开始的日期,这过于繁琐了,我对于这种重复性的劳动一向不耐烦,而且这种方法在以后每日更新的时候也很不方便。所以我把视线转向了网上的各种api。网上比较普遍的主要有两种,一种是新浪的api,一种是雅虎的api。新浪的api很方便,速度也很快,不过就网上的资料而言,似乎只能提取当天的数据。雅虎的api功能更齐原创 2015-09-14 20:17:24 · 32933 阅读 · 10 评论 -
[Python]安装NumPy时遇到的一些问题
最近在用python处理数据, 需要安装numpy,scipy和matplotlib三个包,于是下载对应python版本相关的包,运行exe文件执行。结果在运行numpy的exe文件的时候竟然报错: Python version 3.4 required, which was not found in the registry 不对啊,怎么可能找不到注册表的位置呢? 后来发现在HKEY_LOC转载 2015-08-26 22:53:38 · 3863 阅读 · 0 评论 -
使用Python将csv文件批量化导入SQL Server
一开始的时候,是想用bulk insert的方法直接将csv文件导入数据库的,后来发现这一方法在SQL语法上是可行的,但是由于Python需要pymmsql包来与SQL Server交互,而这个包似乎并不支持这一语句=。= 无奈只能另想办法,曲线救国,先将csv文件读取到内存中,然后用cursor.executemany的方法将数据导入。虽然慢是慢了点,不过好歹实现了目的。如果有大神有更快的办法,还原创 2015-08-19 12:14:34 · 11685 阅读 · 5 评论 -
python调用Java-JPype使用介绍
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-jpype/index.html Python 作为一种灵活的软件开发语言在当今被广泛使用。在软件开发过程中,有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。因此,找到一个 Python 代码调用 Java 代码的桥梁是非常有意义的。 JP转载 2015-08-01 09:35:48 · 1899 阅读 · 0 评论 -
python3.4连接WAMP中的MySQL数据库
1.首先,下载ez_install.py在https://pypi.python.org/pypi/setuptools#windows-simplified网址中去下载ez_setup.py文件。也可以在网页上打开后,黏贴到记事本,改名为ez_setup.py2.在python中执行python ez_setup.py文件,此文件会自动下载easy_install.exe工具。 此工具是pyth转载 2015-07-09 21:57:09 · 2152 阅读 · 0 评论