欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-18 19:37:51
...

回复内容:

建议选择 Python 吧,日子会好过些。

Python 的 Natural Language Toolkit [1] 不错。有本 Natural Language Processing with PythonAnalyzing Text with the Natural Language Toolkit [2] 可以看看,写得很浅。学 Perl 的曲线比较陡峭[3],而且其实两者到后来就触类旁通了。人生苦短,莫入*(当然后期研究宗教现象学就是另外一回事啦)。

[1] nltk.org/
[2] shop.oreilly.com/produc
[3] neverworkintheory.org/? 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代码清晰,如果不是什么高级的用法,还有一两眼就能看出想做什么。