刪除停用詞
停用詞是英語單詞,對句子沒有多大意義。 在不犧牲句子含義的情況下,可以安全地忽略它們。 例如,the
, he
, have
等等的單詞已經在名爲語料庫的語料庫中捕獲了這些單詞。 我們首先將它下載到python環境中。如下代碼 -
import nltk
nltk.download('stopwords')
它將下載帶有英語停用詞的文件。
驗證停用詞
from nltk.corpus import stopwords
stopwords.words('english')
print stopwords.words() [620:680]
當運行上面的程序時,得到以下輸出 -
[u'your', u'yours', u'yourself', u'yourselves', u'he', u'him', u'his', u'himself', u'she',
u"she's", u'her', u'hers', u'herself', u'it', u"it's", u'its', u'itself', u'they', u'them',
u'their', u'theirs', u'themselves', u'what', u'which', u'who', u'whom', u'this',
u'that', u"that'll", u'these', u'those', u'am', u'is', u'are', u'was', u'were', u'be',
u'been', u'being', u'have', u'has', u'had', u'having', u'do', u'does', u'did', u'doing',
u'a', u'an', u'the', u'and', u'but', u'if', u'or', u'because', u'as', u'until',
u'while', u'of', u'at']
除了英語之外,具有這些停用詞的各種語言如下。
from nltk.corpus import stopwords
print stopwords.fileids()
當運行上面的程序時,我們得到以下輸出 -
[u'arabic', u'azerbaijani', u'danish', u'dutch', u'english', u'finnish',
u'french', u'german', u'greek', u'hungarian', u'indonesian', u'italian',
u'kazakh', u'nepali', u'norwegian', u'portuguese', u'romanian', u'russian',
u'spanish', u'swedish', u'turkish']
示例
參考下面的示例來說明如何從單詞列表中刪除停用詞。
from nltk.corpus import stopwords
en_stops = set(stopwords.words('english'))
all_words = ['There', 'is', 'a', 'tree','near','the','river']
for word in all_words:
if word not in en_stops:
print(word)
當運行上面的程序時,我們得到以下輸出 -
There
tree
near
river