目录
回复内容:
首页 后端开发 Python教程 Python 在网页爬虫、数据挖掘、机器学习和自然语言处理领域的应用情况如何?

Python 在网页爬虫、数据挖掘、机器学习和自然语言处理领域的应用情况如何?

Jun 06, 2016 pm 04:11 PM

回复内容:

python在网页爬虫、数据挖掘、机器学习和自然语言处理领域的应用情况如何?

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。

一点感想:
py强项在于,其他语言几百句做的事情py可以几十行,帮助开发者专注问题。而且综上各种工具包齐备,没有人会花时间写个svm(还要保证不写错)。但是py有个巨大的缺点,仍然是,慢。有人会说,算法优化才重要,常数优化没必要。但是现实状况是,大家都是在做常数优化,因为假设算法优化得下来,设计阶段就优化好了,这也是为什么在twitter把py译成java的原因。

但是总的来说,即使用py开发完毕再译,也比直接用java来写来测快速得多。 Python在这方面的package非常齐全:

网页爬虫: scrapy(不太清楚)
数据挖掘: numpy, scipy, matplotlib, pandas(头三个是业界标准,第四个模拟R)
机器学习: scikit-learn, libsvm(极好)
自然语言处理: nltk(极好) 既然是要问应用情况的话,这个还是邀请一些业界人士回答比较好。

就自己平时看到的情况看,随着nltk, scikitlearn这些package越来越好,在相应的领域应用情况就越来越好。而且这几年的pycon上面,机器学习,自然语言处理相关的talk越来越多。pandas最近更新非常频繁,然后在2012年的pycon上pandas的作者不但做了talk还做了tutorial。

目前制约python在上述领域大规模应用的瓶颈还是速度,不过随着pypy,cython近期的迅猛发展以及分布式、并行计算相关的包越来越多,python将来是可以在上述领域大展身手的。

补充:如果是爬虫的话,scrapy(scrapy.org/) ,你值得拥有 自然语言处理上nltk的库好用,当然主要还是英文文本用起来比较方便。
爬虫的话Scrapy完全够用了,性能上其实我觉得够用了。
机器学习的话LibSVM支持Python。
海量数据处理的话,豆瓣的Dpark,是Spark的变种实现。
信息检索的话Hypy和Whoosh在性能上并不逊色.
另外还用Matplotlib可以做数据可视化显示。 爬虫:我没用过现有的python爬虫工具,只是之前用python写过简单的爬虫爬有妖气的漫画。无奈有妖气的反爬机制太强大,只能作罢。但是爬虫本身没问题,python写的很快,Beautiful Soup这个网页解析工具很好用,总的代码量很少。

数据挖掘、机器学习:这篇文章(人工智能和机器学习领域有哪些有趣的开源项目?)里提到的10个项目4个是python的。numpy, scipy, matplotlib三个是python科学计算的基础库。大部分其他的python机器学习库都建立在他们的基础上。比如主题模型Gensim,机器学习工具包scikits.learn,自然语言处理工具包NLTK。数学表达式模拟工具theano。

不过最近在用theano,所以这个可以说多一点。theano能帮助你快速构建机器学习尤其是深度学习模型(你想直接用现有实现好的模型那就不必了)。

theano有自动求导,GPU训练加速等功能,不过对我来说,最好用的还是自动求导。你定义好模型给定cost function,就能调用函数(grad)自动求导。因为现在尝试构建的模型算是各种神经网络模型的变形组合,数学没学好的孩子表示求导压力很大%>_
但是,缺点也挺明显,最麻烦的是很不好debug,因为构建模型用的都是符号表达式(symbolic),符号表达式本身是无法运行的,根本无法debug!你需要编译,然后在编译的时候指定debug mode或者启用monitor机制,但感觉也不好用啊。。。而且不用GPU速度也慢。。。

自然语言处理(NLP):NLP算是众多CS研究方向中非常重视实践的了,各种文本处理的杂活非常多。之前前辈都会用perl脚本,但后来基本上都被python替代了,因为python代码可读性强,更加规范,开发效率也高。去年实验室有个博士师兄去NYU读博士后,老板要求他们实验室全体必须都用python。

后来出现NLP工具包NLTK,python基本上就是NLPer第一脚本(甚至是开发)语言了。NLTK配合
《用Python进行自然语言处理》真的是最好的NLP入门实践教程。

学习python是几年前。当时在linux下做个小东西本来只打算写写shell脚本,但后来觉得shell语法实在是太乱了,根本不适合写任何需要维护的东西,所以就学了python,据说google现在的脚本基本上都是python(待求证~)

我觉得python开发效率高(交互式的机制也很赞有木有~),而且和其他语言都能较好的结合。所以作为快速开发和胶水语言都是非常好的选择~

先说这么多,以后想到再来补充~ python的爬虫还是很棒的~
这是我的新浪微博爬虫,欢迎指教~~
毕业设计 – 偏执狂 爬虫:Python原生的urllib其实已经很好用了,异步的请找Scrapy。
数据挖掘:这个没有所谓统一的包,因为数据挖掘这个边界本身就很不清晰。不过我觉得numpy和scipy能涵盖大部分数据挖掘工具包所需要的usage case。大数据方面,Pig提供可以支持Python定义的UDF,Yelp的mrjob可以使用python直接写MapReduce。
机器学习:Scikit Learn是公认的好用,大有成为行业标准的潜力。
NLP:nltk貌似不错。了解不多,就不多说了。 网页抓取:
python网页抓取功能十分强大,众多的标准库,简洁易上手,多种方法均可实现。
用Python做网页抓取与解析入门笔记
我曾经做过urllib2+beautifulsoup、Xpath和scrapy三种的。前两个可以借助mongodb数据库能很好地抓取、解析并保存。scrapy能够输出json文件。ps:中文编码比较头疼。
数据挖掘:
Python 是一门适合做数据挖掘的语言吗?
机器学习:
推荐一本书《机器学习实战》,非常棒。python代码简单优雅,易于上手,科学计算软件包众多。高效可复用的python是一个不错的选择。
自然语言处理:
NLTK目前已经发展超过十年,拥有超过十万行的代码。但是在中文处理上并没有很完整的发展。推荐《python自然语言处理》。python提供了较多的工具和技术。中文研究真的很少,希望更多的人能够将自己研究的东西放出来给予参考,不像现在搜索一下全是《python自然语言处理》书上的内容。
python的nltk中文使用和学习资料汇总帮你入门提高 python这些年发现迅猛,尤其在数据这一块,强大的软件包,采集(scrapy、pyspider)、分词(jieba)、搜索(whoosh)、数据分析(numpy)、自然语言处理(NLTK)、机器学习(scikit-learn)。不论是Hadoop还是spark都有python的高级接口。因此,python在数据领域的呼声越来越高。另外python在web端也在逐步发力,丰富的web架构,使python的工程性能逐步提升。 google对python使用的比较多,而且python之父也在google,由此可以看出python在网页爬虫,数据挖掘等的地位了。python的优势在于使用方便,可用的库很多,当你打算做一件工作的时候,你会发现,你需要的东西都已经存在,你自己进行组装就可以了,比如做网页爬虫,就可以使用scrapy来完成。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? 如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? 在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? 如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

Python中如何通过字符串动态创建对象并调用其方法? Python中如何通过字符串动态创建对象并调用其方法? Apr 01, 2025 pm 11:18 PM

在Python中,如何通过字符串动态创建对象并调用其方法?这是一个常见的编程需求,尤其在需要根据配置或运行...

在Linux终端中使用python --version命令时如何解决权限问题? 在Linux终端中使用python --version命令时如何解决权限问题? Apr 02, 2025 am 06:36 AM

Linux终端中使用python...

See all articles