2012-05-06 70 views
24

我是一名文學研究生,我一直在閱讀O'Reilly出版的自然語言處理書(nltk.org/book)。它看起來非常有用。我已經在第1章中討論過所有示例文本和示例任務,例如協調一致。我現在知道莫比迪克用了多少次「鯨魚」。問題是,我無法弄清楚如何在我自己的文本中進行這些計算。我找到了關於如何創建自己的語料庫的信息(O'Reilly書第2章),但我不認爲這正是我想要做的。換句話說,我希望能夠做到如何從文本文件創建我自己的NLTK文本?

import nltk 
text1.concordance('yellow') 

,並得到這裏所說的「黃」在我的文字使用的地方。目前我可以用示例文本來做到這一點,但不是我自己的。

我很新的蟒蛇和編程,所以這個東西是非常令人興奮的,但非常混亂。

回答

43

我自己找到了答案。這很尷尬。或者真棒。

從Ch。 3:

f=open('my-file.txt','rU') 
raw=f.read() 
tokens = nltk.word_tokenize(raw) 
text = nltk.Text(tokens) 

是否有竅門。

+4

優秀。我只是想自己回答這個問題;很高興我偶然發現了你的(自己)答案。 - 另一種文學學者 – cforster

+0

這個工作,我首先需要下載「PUNKT」: nltk.download(「PUNKT」) –

+0

什麼茹呢? 找到了: f = open('myfile.txt','rU')#rU表示「讀取」,並處理行結束 – ProfVersaggi

13

對於多個文件的結構化導入:

from nltk.corpus import PlaintextCorpusReader 

# RegEx or list of file names 
files = ".*\.txt" 

corpus0 = PlaintextCorpusReader("/path/", files) 
corpus = nltk.Text(corpus0.words()) 

看到:NLTK 3 book/1.9節

+0

我很高興看到這一點,因爲前面的方法(上面)沒有工作爲了我。唉,另一個錯誤信息。它不喜歡涉及PlaintextCorpusReader的行:UnicodeDecodeError:'utf8'編解碼器無法解碼位置50中的字節0xe8:無效的繼續字節 –