第一章:python自然語(yǔ)言處理我們可以很容易的獲得成千上萬(wàn)的文本。假設(shè)我們寫一些簡(jiǎn)單的python程序,能用它做什么?在這個(gè)章節(jié)中,我們將提出以下問(wèn)題:
1.我們使用簡(jiǎn)單的程序設(shè)計(jì)能對(duì)大量的文本做什么?
2.怎樣才能自動(dòng)的提取關(guān)鍵字和短語(yǔ)來(lái)確定一個(gè)文本的類型和內(nèi)容?
3.python提供什么樣的工具和技術(shù)來(lái)完成像這樣的工作?
4.自然語(yǔ)言處理面臨著什么有趣的挑戰(zhàn)?
這一章將分成零碎的完全不相同風(fēng)格的兩部分。在"計(jì)算機(jī)語(yǔ)言"部分,我們將布置一些激發(fā)語(yǔ)言興趣的任務(wù),而不是解釋它們?nèi)绾喂ぷ鳎辉?#8220;親近python”部分,會(huì)有條理的講速python的重要概念。我們將會(huì)把題目分為兩個(gè)部分,但是稍后的章節(jié)則會(huì)混合不同的部分。希望這種介紹方式能讓你真正體會(huì)到語(yǔ)言學(xué)和計(jì)算學(xué)領(lǐng)域的味道。如果你在這兩個(gè)領(lǐng)域有良好的基礎(chǔ),可以跳過(guò)1.5節(jié)。在后面的章節(jié)中,我們將會(huì)重復(fù)一些重要的知識(shí)點(diǎn),如果錯(cuò)過(guò)了一些知識(shí)點(diǎn)可以在http://www.nltk.org/在線查閱一些資料。這些資料如果對(duì)你來(lái)說(shuō)是完全陌生的,這個(gè)章節(jié)將會(huì)帶來(lái)更多的疑問(wèn),而這些問(wèn)題的答案在本書中可以找到。
1.1計(jì)算機(jī)語(yǔ)言:文本和文字
因?yàn)槲覀兠刻於紩?huì)對(duì)文本進(jìn)行讀和寫,對(duì)文本非常的熟悉。我們可以通過(guò)各種有趣的方式來(lái)操作和解釋這些文本數(shù)據(jù)。但是在做這些之前,我們不得不先開(kāi)始了解python.
開(kāi)始進(jìn)入python
Python使用友好的界面,能夠讓你直接進(jìn)入交互式編譯器來(lái)運(yùn)行你的程序。Python使用一種叫作IDLE(InteractiveDeveLopmentEnvironment)的簡(jiǎn)單圖形界面。在Unix系統(tǒng)下你可以直接用shell命令來(lái)打開(kāi)IDLE(如果沒(méi)有安裝,現(xiàn)輸入python).這時(shí)候終端會(huì)打印出python的版本,在這里你可以簡(jiǎn)單的核對(duì)一下你的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.
>>>
如果不能運(yùn)行python解釋器,python可能沒(méi)有被正確的安裝。可以訪http://python.org/,找到問(wèn)題的所在。
“>>>”表示python編譯器等待輸入,書中的樣例中的該符號(hào),不需要自己輸入。現(xiàn)在開(kāi)始使用python就像使用計(jì)算器那樣就可以了:
>>>1 + 5 * 2 - 3
8
>>>
編譯器立刻完成了計(jì)算并先顯示了答案,并且再次顯示”>>>”,這就意味著python等待輸入另一個(gè)指令。
你可以自己嘗試輸入一些表達(dá)式,可以使用*和/進(jìn)行乘法和除法運(yùn)算,并且可以輸入一些帶括號(hào)的復(fù)數(shù)表達(dá)式。除法運(yùn)算的行為可能并不是你意料之中的,當(dāng)進(jìn)行整數(shù)除法和浮點(diǎn)除法的時(shí)候會(huì)出現(xiàn)不同的結(jié)果,為了獲得意料之中的結(jié)果,可以輸入:from__future__ import division。
通過(guò)簡(jiǎn)單你例子示范了怎樣在python解釋器中進(jìn)行工作并通過(guò)不同的表達(dá)式知道了這種語(yǔ)言能做什么。現(xiàn)在就讓我們嘗試一下輸入一個(gè)不完整的表達(dá)式,編譯器會(huì)怎么工作:
>>>1 +
File "<stdin>", line 1
1+
^
SyntaxError:invalid syntax
>>>
這引起了一個(gè)syntaxerror。在python中,指令的結(jié)尾是一個(gè)加號(hào)是沒(méi)有意義的。python編譯器會(huì)提示出現(xiàn)錯(cuò)誤的行數(shù)。目前我們已經(jīng)可以使用python解釋器了,就已經(jīng)做好了用該語(yǔ)言處理數(shù)據(jù)工作的準(zhǔn)備工作。