您的位置:首页 > 编程语言 > Python开发

python + 机器学习 + 爬虫

2016-06-03 22:08 344 查看
Python在这方面的package非常齐全:

网页爬虫: scrapy(不太清楚)

数据挖掘: numpy, scipy, matplotlib, pandas(头三个是业界标准,第四个模拟R)

机器学习: scikit-learn, libsvm(极好)

自然语言处理: nltk(极好)

python强调程序员的生产力,让你把精力集中在逻辑上而不是语言本身上。

你能想象用一下午时间实现从0开始一个简单的搜索引擎吗?C++显然是不行的。。你的大部分时间都将花在实现基本数据结构和调试语言错误上。。而用python,你要做的就是真正理解搜索算法,之后的实现真的很简单。。

我觉得用python很适合算法研究,不仅仅是数据挖掘。快速开发能让你迅速验证你的想法,而不是把时间浪费在程序本身上(想象一下你写了一星期的c++,调了一大堆指针错误,最后发现想法本身就有错误。。)当你知道你已经有了一个正确的算法,要使他运行速度提高只需用c++等重写性能瓶颈并嵌入就行了。。

Links:
Scipy Stack(http://www.scipy.org/getting-started.html)
- general tasks

Spark(http://spark.apache.org/docs/latest/index.html)
- going large

Tensorflow(http://www.tensorflow.org/)
- going deep
GitHub - jupyter/docker-stacks: Opinionated stacks of ready-to-run Jupyter applications in Docker.



Python的快速迭代能力让它收到青睐。

1)爬虫Scrapy,简单易用。用rq-queue结合的话很容易构造一个分布式的爬虫。我曾经这样爬下了整个豆瓣的好友关系图。

2)数据挖掘里常用的算法python里都有实现。肖智博提到的scikit learn可谓翘楚。不仅文档清晰,且几乎需要常用的算法均有实现。我们用scikit learn做了一个evemt detection的系统。整个系统用python写成,机器学习部分用python

3)nlp部分不是特别了解。nltk很普遍的被很多大学课程用到。

企业里:

据我所知公司里的使用情况

google:爬虫C++,数据挖掘C++,nlp C++。python用来处理数据。

twitter:所有服务均用java和scala,python用来写快速迭代的工具。比如说做搜索引擎的算法的同事写了一个python客户端用于内部测试搜索质量,我自己用py写好了一个搜索词推荐系统,包括接口,算法和界面,通过测试后改写成java。

网页抓取:

python网页抓取功能十分强大,众多的标准库,简洁易上手,多种方法均可实现。
用Python做网页抓取与解析入门笔记

我曾经做过urllib2+beautifulsoup、Xpath和scrapy三种的。前两个可以借助mongodb数据库能很好地抓取、解析并保存。scrapy能够输出json文件。ps:中文编码比较头疼。

数据挖掘:
Python 是一门适合做数据挖掘的语言吗?

机器学习:

推荐一本书《机器学习实战》,非常棒。python代码简单优雅,易于上手,科学计算软件包众多。高效可复用的python是一个不错的选择。

自然语言处理:

NLTK目前已经发展超过十年,拥有超过十万行的代码。但是在中文处理上并没有很完整的发展。推荐《python自然语言处理》。python提供了较多的工具和技术。中文研究真的很少,希望更多的人能够将自己研究的东西放出来给予参考,不像现在搜索一下全是《python自然语言处理》书上的内容。
python的nltk中文使用和学习资料汇总帮你入门提高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: