2015-02-08 31 views
1

我是新來的python和書中的例子練習。 我可以幹一個字:通過Porter Stemmer運行一個文件

>>> from nltk.stem import PorterStemmer 
>>> stemmer=PorterStemmer() 
>>> stemmer.stem('programming') 
'program' 

但通過波特詞幹我不能例如運行一個文本文件的第一個50個字。

編輯:有沒有其他方式分裂()。 split()有時會給出錯誤的結果。

+0

'在開放( '/路徑/到/文件')字讀()分裂()。[50]:打印(stemmer.stem(字) )' – falsetru 2015-02-08 18:03:48

+0

*請注意file.read().span()假定標記化; P – alvas 2015-02-09 13:22:31

回答

-1

什麼

wholefile = open("text.txt", "r").read() 
words = wholefile.split() 
stems = [ stemmer.stem(word) for word in words] 

編輯:實際上,講評海報給你相同,但更全面。用他的解決方案。

EDIT2:謝謝,falsetru :)

+0

@ user2064809:編號falsetru的代碼是正確和完整的,我不打算抄襲它。 Falsetru決定發表評論,我尊重這一選擇。假如他的意圖是將他的代碼張貼在答案中,他/她可以自己做,而無需進一步的工作。 – 2015-02-08 18:18:19

+0

它不正確。例如'_Melody_'應該轉換爲'Melodi'。但它仍然是'旋律'。有時候它不會從字尾中刪除's'。是因爲split()?這個問題嗎?! – user2064809 2015-02-09 19:11:06

+0

不,分割只是將文件分割成單詞。 – 2015-02-10 11:25:33

相關問題