对于学自然语言处理方向的学生来说,学perl好还是学python好?理由是什么?

回复内容:
建议选择 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代码清晰,如果不是什么高级的用法,还有一两眼就能看出想做什么。

Posted in 未分类

发表评论