第一章: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解釋器了,就已經做好了用該語言處理數據工作的準備工作。