Python 自然语言处理
推荐一本免费的在线电子书,《用Python进行自然语言处理》, 用NLP 工具包(开源免费,Python)来进行文本分析。特别适合初学计算语言学的学生。好像没有好的中文切词。当然,免不了需要提一下 Dan Jurafsky 教授,大家可以搜索一下,找找他的讲义。
简要翻译一下提纲:
推荐一本免费的在线电子书,《用Python进行自然语言处理》, 用NLP 工具包(开源免费,Python)来进行文本分析。特别适合初学计算语言学的学生。好像没有好的中文切词。当然,免不了需要提一下 Dan Jurafsky 教授,大家可以搜索一下,找找他的讲义。
简要翻译一下提纲:
Tiny C Compiler 是一个微型的 C 语言编译器,支持 Windows 和 Linux 平台。其项目主页是: http://bellard.org/tcc/ 。你可以使用这个不到100K的编译器编译你的C文件,其支持C的预处理,编译,机器码汇编和链接。编译速度也超过了gcc,而且它支持ISO C99标准,并且,tcc还包括了一些内存和数组边界的检查。其还可以编译Linux的内核。
不过,TCC 最有趣的特性是可以用 UNIX 系统上常见的 #!/usr/bin/tcc 的方式来执行 ANSI C 语言写就的源程序,省略掉了在命令行上进行编译和链接的步骤,而可以直接运行 C 语言写就的源程序。这样就能做到像任何一种其它的脚本语言比如 Perl 或者是 Python 一样,显著的加快开发步调。可以像编写 Shell 脚本一样的使用 C 语言,随便想一想都觉得是一件奇妙的事情。但是 TCC 还有一些其它的特性呢!
mailper 在2009年4月26的文章里《Guido认为程序员大多数工作不需要递归》谈及递归不是编程的基础。并且在python中并没有实现尾部递归Tail Recurssion。
但是,今天我们却看见了某Python实现的尾部递归
使用Python的ctypes,我们可以直接调用由C直接编译出来的函数。其实就是调用动态链接库中的函数。为什么我们需要这样做呢,因为有些时候,我们可能需要一个性能上比较讲究的算法,有些时候,我们可以在Python中使用已经有了的现成的被封闭在动态链接库中的函数。下面是如何调用的示例。
首先,我们用一个乘法来表示一个算法功能。下面是C的程序:
int multiply(int num1, int num2) { return num1 * num2; }
相信第一次处理中文的朋友们可能都会对中文的encoding 和程序的报错很头疼。
如果你像我一样希望能够把事情尽快做好而不去深究,你可能会写一些异常处理的代码把 UnicodeEncodingError糊弄过去先,但当你开始怀疑有多少encoding出错的信息被你丢弃的时候,可能你会很惊奇。于是,你还是会想坐下来,(洗把脸)然后面对自己必须弄懂什么是utf-8,什么是 ‘gb2312’, 什么是 ‘gbk’ 和其中的猫腻。正如有时候猛撕小伤口上邦迪胶布的快感一样,有时候当你认真面对一些你平时一直回避的问题的时候(其实有时候需要的不是勇气), 你反而会觉得“不过如此”,并且能够一劳永逸的解决问题。
关于Python处理Unicode,我所能找到的最言简意赅的入门教程是:
简要罗列一下最重要最实用的点:
有时候,我们可能会写一些轻量级的脚本去处理很多符合某种pattern的文件,例如“某目录下的 *logfile.csv” 但是,我们大多数脚本的参数都是 sys.argv, 如何解析 wildcard 匹配呢?
from glob import glob ... if __name__ == "__main__": file_names = glob(sys.argv[1]) for file_name in file_names: do_something(file)
这样就可以像使用其他终端命令一样使用脚本test.py 进行wildcard匹配了
我们有一组记录:
list_records = ( (department, name, salary), (department, name, salary), ... (department, name, salary) )
然后我们想进行类似 MS – Excel 里的 “then sort by” 中的功能一样先基于department排序,然后再在部门内按照salary排序。
其他编程语言可能相对复杂,我这里写出一个用Python实现的最简方法(也许有比这个还短的,来挑战吧)
EDC(Evan Data Corporation)发布了一份脚本语言的调查报告,这个调查报告调查了500个以上的开发者和IT专家,在这份调查表中,PHP, Ruby和Python成为了前三强。这个调查总共调查了这些脚本语言:Actionscript, Flex, Javascript, Microsoft F#, Microsoft Powershell, Perl, PHP, Python, Ruby, VB Script。主要评估以下这些方面:
现代企业里,数据决定着方向,人们都想随时看到各种报表。很多项目可能都需要dashboard一类的工作,把分散的数据变成一些能随时查看实时数据的图表,这个工作有两个环节: