W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
詞袋 - 英文為:Bag of Word(BoW) ,它是自然語言處理中的一個模型,基本上用于從文本中提取特征,以便文本可用于建模,以便在機器學(xué)習(xí)算法中使用。
現(xiàn)在問題出現(xiàn)了,為什么我們需要從文本中提取特征。 這是因為機器學(xué)習(xí)算法不能處理原始數(shù)據(jù),他們需要數(shù)字數(shù)據(jù),以便可以從中提取有意義的信息。 將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字數(shù)據(jù)稱為特征提取或特征編碼。
它是怎么運行的 這是從文本中提取特征的非常簡單的方法。 假設(shè)我們有一個文本文檔,并且希望將其轉(zhuǎn)換為數(shù)字數(shù)據(jù)或者說想從中提取特征,那么首先這個模型從文檔中的所有單詞中提取詞匯。 然后通過使用文檔術(shù)語矩陣,它將建立一個模型。通過這種方式,BoW 僅將文件表示為一袋文字。 丟棄關(guān)于文檔中單詞的順序或結(jié)構(gòu)的任何信息。
文檔術(shù)語矩陣的概念
BoW 算法通過使用文檔術(shù)語矩陣來建立模型。 顧名思義,文檔術(shù)語矩陣就是文檔中出現(xiàn)的各種字數(shù)的矩陣。 在這個矩陣的幫助下,文本文檔可以表示為各種單詞的加權(quán)組合。 通過設(shè)置閾值并選擇更有意義的單詞,我們可以構(gòu)建文檔中可用作特征向量的所有單詞的直方圖。 以下是了解文檔術(shù)語矩陣概念的示例 -
示例
假設(shè)有以下兩個句子 -
現(xiàn)在,通過考慮這兩句子,有以下13個不同的單詞 -
現(xiàn)在,我們需要使用每個句子中的單詞計數(shù)為每個句子建立一個直方圖 -
這樣,就得到了已經(jīng)提取的特征向量。每個特征向量都是 13 維的,因為這里有 13 個不同的單詞。
統(tǒng)計學(xué)的概念稱為 TermFrequency-Inverse Document Frequency(tf-idf)。 每個單詞在文檔中都很重要。 統(tǒng)計數(shù)據(jù)有助于我們理解每個詞的重要性。
術(shù)語頻率(tf) 這是衡量每個單詞出現(xiàn)在文檔中的頻率。 它可以通過將每個詞的計數(shù)除以給定文檔中的詞的總數(shù)來獲得。
逆文檔頻率(idf) 這是衡量在給定的文檔集中這個文檔有多獨特的一個單詞。要計算 idf 和制定一個特征向量,我們需要減少像這樣的常見詞的權(quán)重,并權(quán)衡稀有詞。
在本節(jié)中,我們將使用 CountVectorizer 從這些句子中創(chuàng)建矢量來定義字符串集合。
導(dǎo)入必要的軟件包 -
from sklearn.feature_extraction.text import CountVectorizer
現(xiàn)在定義一組句子。
Sentences = ['We are using the Bag of Word model', 'Bag of Word model is
used for extracting the features.']
vectorizer_count = CountVectorizer()
features_text = vectorizer.fit_transform(Sentences).todense()
print(vectorizer.vocabulary_)
上述程序生成如下所示的輸出。它表明在上述兩句話中有13個不同的單詞 -
{'we': 11, 'are': 0, 'using': 10, 'the': 8, 'bag': 1, 'of': 7,
'word': 12, 'model': 6, 'is': 5, 'used': 9, 'for': 4, 'extracting': 2, 'features': 3}
這些是可以用于機器學(xué)習(xí)的特征向量(文本到數(shù)字形式)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: