0

0

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

php中文网

php中文网

发布时间:2016-06-06 16:11:06

|

2238人浏览过

|

来源于php中文网

原创

回复内容:

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来完成。

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

286

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

126

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

42

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

19

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

23

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

421

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

51

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号