AI人工智能 詞袋(BOW)模型

2020-09-24 09:32 更新

詞袋 - 英文為:Bag of Word(BoW) ,它是自然語言處理中的一個(gè)模型,基本上用于從文本中提取特征,以便文本可用于建模,以便在機(jī)器學(xué)習(xí)算法中使用。

現(xiàn)在問題出現(xiàn)了,為什么我們需要從文本中提取特征。 這是因?yàn)闄C(jī)器學(xué)習(xí)算法不能處理原始數(shù)據(jù),他們需要數(shù)字?jǐn)?shù)據(jù),以便可以從中提取有意義的信息。 將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)稱為特征提取或特征編碼。

它是怎么運(yùn)行的 這是從文本中提取特征的非常簡單的方法。 假設(shè)我們有一個(gè)文本文檔,并且希望將其轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)或者說想從中提取特征,那么首先這個(gè)模型從文檔中的所有單詞中提取詞匯。 然后通過使用文檔術(shù)語矩陣,它將建立一個(gè)模型。通過這種方式,BoW 僅將文件表示為一袋文字。 丟棄關(guān)于文檔中單詞的順序或結(jié)構(gòu)的任何信息。

文檔術(shù)語矩陣的概念

BoW 算法通過使用文檔術(shù)語矩陣來建立模型。 顧名思義,文檔術(shù)語矩陣就是文檔中出現(xiàn)的各種字?jǐn)?shù)的矩陣。 在這個(gè)矩陣的幫助下,文本文檔可以表示為各種單詞的加權(quán)組合。 通過設(shè)置閾值并選擇更有意義的單詞,我們可以構(gòu)建文檔中可用作特征向量的所有單詞的直方圖。 以下是了解文檔術(shù)語矩陣概念的示例 -

示例

假設(shè)有以下兩個(gè)句子 -

  • 句子1 - 正在使用詞袋模型。
  • 句子2 - Bag of Words模型用于提取特征。

現(xiàn)在,通過考慮這兩句子,有以下13個(gè)不同的單詞 -

  • we
  • are
  • using
  • the
  • bag
  • of
  • words
  • model
  • is
  • used
  • for
  • extracting
  • features

現(xiàn)在,我們需要使用每個(gè)句子中的單詞計(jì)數(shù)為每個(gè)句子建立一個(gè)直方圖 -

  • 子句1 ? [1,1,1,1,1,1,1,1,0,0,0,0,0]
  • 子句2 ? [0,0,0,1,1,1,1,1,1,1,1,1,1]

這樣,就得到了已經(jīng)提取的特征向量。每個(gè)特征向量都是 13 維的,因?yàn)檫@里有 13 個(gè)不同的單詞。

統(tǒng)計(jì)概念

統(tǒng)計(jì)學(xué)的概念稱為 TermFrequency-Inverse Document Frequency(tf-idf)。 每個(gè)單詞在文檔中都很重要。 統(tǒng)計(jì)數(shù)據(jù)有助于我們理解每個(gè)詞的重要性。

術(shù)語頻率(tf) 這是衡量每個(gè)單詞出現(xiàn)在文檔中的頻率。 它可以通過將每個(gè)詞的計(jì)數(shù)除以給定文檔中的詞的總數(shù)來獲得。

逆文檔頻率(idf) 這是衡量在給定的文檔集中這個(gè)文檔有多獨(dú)特的一個(gè)單詞。要計(jì)算 idf 和制定一個(gè)特征向量,我們需要減少像這樣的常見詞的權(quán)重,并權(quán)衡稀有詞。

在NLTK中建立一個(gè)詞袋模型

在本節(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個(gè)不同的單詞 -

{'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}

這些是可以用于機(jī)器學(xué)習(xí)的特征向量(文本到數(shù)字形式)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號