python 英语分词_NLTK(一):英文分词分句
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
一、NLTK 的安裝
如果是python 2.x 的環境,安裝命令如下:
sudo pip install nltk
如果是python 3.x 的環境,安裝命令如下:
sudo pip3 install nltk
成功地執行了上述命令后,NLTK 的安裝還沒有徹底地完成,還需要在 python 中執行如下的代碼:
import nltk
nltk.download()
代碼執行后,會彈出如下的界面:
NLTKInstall.png
點擊 “all” 這一行,然后點擊 “Download” 按鈕進行下載。“Download Directory” 一開始可以先隨便設置,但文件夾的名字必須是 nltk_data,下載完成后可以先執行一段分詞的代碼(隨后將會提到這段代碼),代碼會報錯,錯誤提示說找不到相應的資源文件,并在這段錯誤提示中告訴我們應該把剛才下載下來的資源放到哪里。你可能會疑惑:為什么不在下載之前將 “Download Directory” 設置正確呢?這是因為我們一開始也不知道正確的 “Download Directory” 是什么,所以先隨便設置了一個,然后通過錯誤提示再將下載好的資源放到正確的路徑下面。
資源下載過程中可能會多次出現下載異常的情況,每次遇到這種情況后,關掉正在執行的代碼,然后重新執行代碼進行下載即可。
二、分詞
1、分詞方式
分詞使用的方法是 word_tokenize(),分詞的代碼如下:
from nltk.tokenize import word_tokenize
data = "All work and no play makes jack a dull boy, all work and no play"
print(word_tokenize(data))
代碼執行結果如下:
['All', 'work', 'and', 'no', 'play', 'makes', 'jack', 'a', 'dull', 'boy', ',', 'all', 'work', 'and', 'no', 'play']
注意:上述結果集中有一個 “逗號”,也被當做了一個詞。
2、停用詞
英文中的停用詞如 “the”,“is”,“are” 等等。在自然語言處理(NLP)中沒有通用的停用詞列表,然而這里,在 NLTK 模塊有其自帶的停用詞列表。
去停用詞的代碼如下:
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
data = "All work and no play makes jack dull boy. All work and no play makes jack a dull boy."
stopWords = set(stopwords.words('english'))
words = word_tokenize(data)
wordsFiltered = []
for w in words:
if w not in stopWords:
wordsFiltered.append(w)
print(wordsFiltered)
提示:
1、如果我們想要修改 NLTK 的停用詞列表,可以去我們一開始提到的下載的資源中去修改。具體位置是在 nltk_data --> corpora --> stopwords 文件夾中,進入這個文件夾后,我們會發現很多種語言的停用詞列表,然后按照自己的需要進行修改即可。
2、NLTK 不支持對中文的分詞,如果想要對中文進行分詞,可以考慮使用結巴(jieba)分詞,這里不再做過多闡述。
三、分句
分句使用的方法是 sent_tokenize(),分句的代碼如下:
from nltk.tokenize import sent_tokenize
data = "All work and no play makes jack dull boy. All work and no play makes jack a dull boy."
print(sent_tokenize(data))
代碼執行結果如下:
['All work and no play makes jack dull boy.', 'All work and no play makes jack a dull boy.']
提示:和分詞一樣,NLTK 同樣不支持對中文的分句。具體支持哪些語言的分句,可以參考 nltk_data --> tokenizers --> punkt,進入這個文件夾后就一目了然了。
多說一點:
NLTK 支持的分句方式不止這一種類型,但無論哪種類型,都是相對簡單的。如果直接應用到工業中一般都會多少出現一些這樣或那樣的問題。因為在現實當中存在很多習慣性的非正式的縮寫,同時一個詞里面可能包含某些特殊符號等,這些因素都會導致分詞的錯誤。目前的解決方案主要是通過自定義詞典來彌補上述的不足。
相關文檔
總結
以上是生活随笔為你收集整理的python 英语分词_NLTK(一):英文分词分句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA查看maven依赖关系的方法
- 下一篇: python 英语分词_英文分词算法(P