第一章:python自然语言处理我们可以很容易的获得成千上万的文本。假设我们写一些简单的python程序,能用它做什么?在这个章节中,我们将提出以下问题:
1.我们使用简单的程序设计能对大量的文本做什么?
2.怎样才能自动的提取关键字和短语来确定一个文本的类型和内容?
3.python提供什么样的工具和技术来完成像这样的工作?
4.自然语言处理面临着什么有趣的挑战?
这一章将分成零碎的完全不相同风格的两部分。在"计算机语言"部分,我们将布置一些激发语言兴趣的任务,而不是解释它们如何工作;在“亲近python”部分,会有条理的讲速python的重要概念。我们将会把题目分为两个部分,但是稍后的章节则会混合不同的部分。希望这种介绍方式能让你真正体会到语言学和计算学领域的味道。如果你在这两个领域有良好的基础,可以跳过1.5节。在后面的章节中,我们将会重复一些重要的知识点,如果错过了一些知识点可以在http://www.nltk.org/在线查阅一些资料。这些资料如果对你来说是完全陌生的,这个章节将会带来更多的疑问,而这些问题的答案在本书中可以找到。
1.1计算机语言:文本和文字
因为我们每天都会对文本进行读和写,对文本非常的熟悉。我们可以通过各种有趣的方式来操作和解释这些文本数据。但是在做这些之前,我们不得不先开始了解python.
开始进入python
Python使用友好的界面,能够让你直接进入交互式编译器来运行你的程序。Python使用一种叫作IDLE(InteractiveDeveLopmentEnvironment)的简单图形界面。在Unix系统下你可以直接用shell命令来打开IDLE(如果没有安装,现输入python).这时候终端会打印出python的版本,在这里你可以简单的核对一下你的python的版本(这里的是2.5.1):
Python2.5.1 (r251:54863, Apr 15 2008, 22:57:26)
[GCC4.0.1 (Apple Inc. build 5465)] on darwin
Type"help", "copyright", "credits" or"license" for more information.
>>>
如果不能运行python解释器,python可能没有被正确的安装。可以访http://python.org/,找到问题的所在。
“>>>”表示python编译器等待输入,书中的样例中的该符号,不需要自己输入。现在开始使用python就像使用计算器那样就可以了:
>>>1 + 5 * 2 - 3
8
>>>
编译器立刻完成了计算并先显示了答案,并且再次显示”>>>”,这就意味着python等待输入另一个指令。
你可以自己尝试输入一些表达式,可以使用*和/进行乘法和除法运算,并且可以输入一些带括号的复数表达式。除法运算的行为可能并不是你意料之中的,当进行整数除法和浮点除法的时候会出现不同的结果,为了获得意料之中的结果,可以输入:from__future__ import division。
通过简单你例子示范了怎样在python解释器中进行工作并通过不同的表达式知道了这种语言能做什么。现在就让我们尝试一下输入一个不完整的表达式,编译器会怎么工作:
>>>1 +
File "<stdin>", line 1
1+
^
SyntaxError:invalid syntax
>>>
这引起了一个syntaxerror。在python中,指令的结尾是一个加号是没有意义的。python编译器会提示出现错误的行数。目前我们已经可以使用python解释器了,就已经做好了用该语言处理数据工作的准备工作。