Python中文是蟒蛇,Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個(gè)編程語言。比如,完成同一個(gè)任務(wù),C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。
我發(fā)表這個(gè)貼子是想讓更多人去認(rèn)識(shí)Python。Python語言很好上手,語句簡單明了,不像C++ . VB等語言復(fù)雜。Python語言涉及到很多方面,比如3D游戲等。
如果想計(jì)算50+100的結(jié)果是多少,C語言和VB語言等一大串的代碼,而Python計(jì)算50+100的代碼只需要這樣“50+100”
如果不信的話,大家可以用Python試一試這段代碼。
輸出的代碼
print 后加引號(hào)輸出的文字
例:print '基德逗逗' (Python是 不允許加中文的,如果加中文的話請(qǐng)看一下教程)
出現(xiàn)錯(cuò)誤提示,怎么回事,接著往下看
print語句后也可以跟上多個(gè)字符串,使用的方法是用逗號(hào)隔開
例:print '你是男人', '不用謝' (Python是 不允許加中文的,如果加中文的話請(qǐng)看一下教程)
出現(xiàn)錯(cuò)誤提示,怎么回事,接著往下看
中文的加法在前面寫入代碼:
# encoding: utf-8
print '你是男人', '不用謝'
修改了代碼之后,還是錯(cuò)誤,最會(huì)得知原來標(biāo)點(diǎn)符號(hào)錯(cuò)了,'打成了‘
這次代碼對(duì)了,很興奮,大概就是寫代碼的樂趣吧!
使用nltk來處理中文資料
nltk 怎么樣使用中文?這是個(gè)大問題。這么個(gè)工具目前只能比較好的處理英文和其他的一些拉丁語系,誰讓別人的單詞與單詞之間有個(gè)空格隔開呢!中文漢字一個(gè)挨一個(gè)的,nltk在分詞這一關(guān)就過不去了,分詞沒法分,剩下的就都做不了。唯一能做的, 就是對(duì)網(wǎng)上現(xiàn)有的中文語料進(jìn)行處理,這些語料都分好了詞,可以使用nltk進(jìn)行類似與英文的處理。
python處理中文首先需要設(shè)置一下文本的編碼, 文件的首行加上: #coding utf-8 這個(gè)是給python解釋器識(shí)別的,然后文件保存的時(shí)候,還需要保存為utf-8的編碼。
這些編碼設(shè)置完了, ntlk還是處理不了中文。
nltk處理中文的第一步障礙就是中文資料不是分好詞的, 詞語與詞語之間沒有空格。要使用nltk對(duì)中文進(jìn)行處理, 首先的第一步就是中文分詞(臺(tái)灣叫中文斷詞)。
目前python中文分詞的包,我推薦使用結(jié)巴分詞。 使用結(jié)巴分詞,之后,就可以對(duì)輸出文本使用nltk進(jìn)行相關(guān)處理。
當(dāng)然中文分詞, 不應(yīng)該成為使用nltk的障礙,或許很多人認(rèn)為,既然用nltk,那么nltk就應(yīng)該支持中文。但是我們得認(rèn)清現(xiàn)實(shí),現(xiàn)實(shí)就是nltk就是不支持處理中文,因此,這個(gè)給國內(nèi)很多自然語言處理的研究人員有了研究的空間了,nltk既然沒做中文分詞,那么中國人就應(yīng)該自己做了這個(gè)。一個(gè)口碑比較好的中文分詞工具就是ICTCLAS中文分詞。
當(dāng)然,我個(gè)人覺得中國人自己開發(fā)的純python實(shí)現(xiàn)的結(jié)巴分詞也不錯(cuò)。
總的來說,nltk不提供中文分詞,不應(yīng)該糾結(jié)于此,并止步不前,我們完全可以使用其他的中文分詞工具,將需要處理的資料分好詞,然后再使用nltk進(jìn)行處理,因此,這里就不多說中文分詞的那點(diǎn)事了。如果你因?yàn)橹形姆衷~而分心,并轉(zhuǎn)向到中文分詞的研究之中,那么你就掉入了另外一個(gè)深坑之中。牢記本文的主題是nltk。當(dāng)然需要多啰嗦一點(diǎn)的就是,nltk的默認(rèn)詞性標(biāo)注集使用的是Penn Treebank 的詞性標(biāo)注集,因此,你選用中文分詞模塊的時(shí)候,最好能夠使用和penn詞性標(biāo)注集差不多的中文分詞工具,當(dāng)然,不一樣也沒事。