回复内容:
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(http://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来完成。

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

이 기사는 Python 개발자가 CLIS (Command-Line Interfaces) 구축을 안내합니다. Typer, Click 및 Argparse와 같은 라이브러리를 사용하여 입력/출력 처리를 강조하고 CLI 유용성을 향상시키기 위해 사용자 친화적 인 디자인 패턴을 홍보하는 세부 정보.

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

정규 표현식은 프로그래밍의 패턴 일치 및 텍스트 조작을위한 강력한 도구이며 다양한 응용 프로그램에서 텍스트 처리의 효율성을 높입니다.

이 기사는 프로젝트 종속성 관리 및 충돌을 피하는 데 중점을 둔 Python에서 가상 환경의 역할에 대해 설명합니다. 프로젝트 관리 개선 및 종속성 문제를 줄이는 데있어 생성, 활성화 및 이점을 자세히 설명합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제



