对于学自然语言处理方向的学生来说,学 Perl 好还是学 Python 好?理由是什么?
程序员文章站
2022-05-11 08:08:36
...
回复内容:
建议选择 Python 吧,日子会好过些。Python 的 Natural Language Toolkit [1] 不错。有本 Natural Language Processing with PythonAnalyzing Text with the Natural Language Toolkit [2] 可以看看,写得很浅。学 Perl 的曲线比较陡峭[3],而且其实两者到后来就触类旁通了。人生苦短,莫入*(当然后期研究宗教现象学就是另外一回事啦)。
[1] http://www.nltk.org/
[2] http://shop.oreilly.com/product/9780596516499.do
[3] http://www.neverworkintheory.org/?p=197 coursera上有Michael Collins的Natural Language Processing课程,作业就是用python实现算法,建议一看~
Coursera.org 我支持 Python,库多,至少我见过有机器学习的库,有大量数学库。Perl 那边情况不清楚,不过 Perl 最初是为系统管理、文本处理之类非常 UNIX 风格的任务设计的。
另外,我说 Python 比 Perl 易学没人会反对吧? python和R 在这两个中间选的话,我建议Perl 。 做自然语言处理的应该会喜欢摆弄语言吧。 Perl 的表现力这么丰富的说。 python速度和方便程度都不比不上matlab。而且文献中有很多程序都是用matlab写的。另外matlab的矩阵计算优化得很好,计算速度远远超过了numpy。
如果要作为产品,那么用C++和Eigen库开发,然后并行化,是极好的。整体速度远远高于matlab和python,内存使用量也小(大数据情况下内存使用量也是要考虑的)。
我先在基本用matlab做原型,用C++开发产品。
python介于两者之间,我自己用下来的感觉是比较尴尬的。
perl没用过。。 我一直都用的是perl。perl可以写得太随意了,不容易看懂。不过一旦熟悉了,就可以用的很强。 我觉得要看看具体从事“什么样的自然语言处理了”,如果只是单纯的用正则表达式挖掘一些文本中的实体(name entity)或者特定结构的话(比如一个网页中的天气预报文字结构片段),那么Perl比Python有过之而无不及,因为Perl的正则表达式真的很高效强大。但是,如果要进行更加复杂的自然语言处理,比如,涉及到“词形还原(symbolic -> symbol)”,“同义词”,甚至“语义网”这类的处理,那么Python是最佳选择,因为他有诸如NLTK这样的强大库。 perl和python都接触了,如果是文本处理的话,perl文本处理没得说,python写得偶蛋疼。
不过perl的话,看其他人的代码(很多没遵循best practice)很蛋疼,python的缩进使可读性增加很多。python出了python3,代码还是和python2有细微差别的。perl(用Acme::Pythonic模块)也可以像python那样写代码。 Perl和Python都接触了点,以前工作中常用Perl做报表相关的统计,很方便,其正则强大好用,其他的方面没有怎么接触,但是还是去看了些cpan上模块,说真的,属于自虐。Python代码清晰,如果不是什么高级的用法,还有一两眼就能看出想做什么。