日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 英语分词_NLTK(一):英文分词分句

發布時間:2023/12/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(一):英文分词分句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。