bag-of-words
一、bag-of-words
1.1 詞袋特性
- 詞袋是統計文字中每個單詞出現的次數
- 實質上是將文字展平為一維向量
- 詞袋沒有順序
- 詞袋也沒有詞語之間意思上的包含關係。比如動物包含狗,貓等。
二、過濾
2.1 stopwords
2.1.1 停用詞是什麼
- 將資料轉換為計算機可以理解的內容的過程稱為預處理。預處理的主要形式之一是過濾掉無用的資料。在自然語言處理中,無用的單詞(資料)稱為停用詞。
- 停用詞是指搜尋引擎已程式設計忽略的常用詞(例如“the”,“a”,“an”,“in”)。
- 我們不希望這些單詞佔用我們資料庫中的空間,或佔用寶貴的處理時間。為此,我們可以通過儲存要停止使用的單詞的列表輕鬆刪除它們。
- python中的NLTK(自然語言工具包)具有以16種不同語言儲存的停用詞列表。可以在nltk_data目錄中找到它們。home / pratima / nltk_data / corpora / stopwords是目錄地址(不要忘記更改你的主目錄名稱)
2.1.2 停用詞使用情景
-
對於分類任務,可以刪除停止詞
-
但對於情感分析等需要分析語義的任務,則需要另外考慮
2.1.3 NLTK使用
- 其中的停用詞包含了don’t的撇號,所以使用時文字要保留撇號
- 其中停用詞都是小寫,使用時需要將文字都轉換為小寫
2.1.4 從一段文字中刪除停用詞
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example_sent = "This is a sample sentence, showing off the stop words filtration."
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(example_sent)
filtered_sentence = [w for w in word_tokens if not w in stop_words]
print(word_tokens)
print(filtered_sentence)
輸出
['This', 'is', 'a', 'sample', 'sentence', ',', 'showing',
'off', 'the', 'stop', 'words', 'filtration', '.']
['This', 'sample', 'sentence', ',', 'showing', 'stop',
'words', 'filtration', '.']
ce', ',', 'showing', 'stop',
'words', 'filtration', '.']