摘要:詞袋模型詞袋模型簡稱,所謂的詞袋模型是一種用機(jī)器學(xué)習(xí)算法對文本進(jìn)行建模時(shí)表示文本數(shù)據(jù)的方法。再進(jìn)行一些其他的特征工程后,就可以將數(shù)據(jù)帶入機(jī)器學(xué)習(xí)算法進(jìn)行分類聚類了??偨Y(jié)下詞袋模型的三部曲分詞,統(tǒng)計(jì)修訂詞特征值與標(biāo)準(zhǔn)化。
詞袋模型
詞袋模型(Bag of Words,簡稱BoW),所謂的詞袋模型是一種用機(jī)器學(xué)習(xí)算法對文本進(jìn)行建模時(shí)表示文本數(shù)據(jù)的方法。
詞袋模型假設(shè)我們不考慮文本中詞與詞之間的上下文關(guān)系,僅僅只考慮所有詞的權(quán)重。而權(quán)重與詞在文本中出現(xiàn)的頻率有關(guān)。
與詞袋模型非常類似的一個(gè)模型是詞集模型(Set of Words,簡稱SoW),和詞袋模型唯一的不同是它僅僅考慮詞是否在文本中出現(xiàn),而不考慮詞頻。也就是一個(gè)詞在文本在文本中出現(xiàn)1次和多次特征處理是一樣的。在大多數(shù)時(shí)候,我們使用詞袋模型。
向量化詞袋模型首先會進(jìn)行分詞,在分詞之后,通過統(tǒng)計(jì)每個(gè)詞在文本中出現(xiàn)的次數(shù),我們就可以得到該文本基于詞的特征,如果將各個(gè)文本樣本的這些詞與對應(yīng)的詞頻放在一起,就是我們常說的向量化。向量化完畢后一般也會使用TF-IDF進(jìn)行特征的權(quán)重修正,再將特征進(jìn)行標(biāo)準(zhǔn)化。 再進(jìn)行一些其他的特征工程后,就可以將數(shù)據(jù)帶入機(jī)器學(xué)習(xí)算法進(jìn)行分類聚類了。
總結(jié)下詞袋模型的三部曲:分詞(tokenizing),統(tǒng)計(jì)修訂詞特征值(counting)與標(biāo)準(zhǔn)化(normalizing)。
在詞袋模型的統(tǒng)計(jì)詞頻這一步,我們會得到該文本中所有詞的詞頻,有了詞頻,我們就可以用詞向量表示這個(gè)文本。這里我們舉一個(gè)例子,例子直接用scikit-learn的CountVectorizer類來完成,這個(gè)類可以幫我們完成文本的詞頻統(tǒng)計(jì)與向量化,代碼如下:
from sklearn.feature_extraction.text import CountVectorizer vectorizer=CountVectorizer() corpus=["I come to China to travel", "This is a car polupar in China", "I love tea and Apple ", "The work is to write some papers in science"] print vectorizer.fit_transform(corpus)
我們看看對于上面4個(gè)文本的處理輸出如下:
(0, 16) 1 (0, 3) 1 (0, 15) 2 (0, 4) 1 (1, 5) 1 (1, 9) 1 (1, 2) 1 (1, 6) 1 (1, 14) 1 (1, 3) 1 (2, 1) 1 (2, 0) 1 (2, 12) 1 (2, 7) 1 (3, 10) 1 (3, 8) 1 (3, 11) 1 (3, 18) 1 (3, 17) 1 (3, 13) 1 (3, 5) 1 (3, 6) 1 (3, 15) 1
可以看出4個(gè)文本的詞頻已經(jīng)統(tǒng)計(jì)出,在輸出中,左邊的括號中的第一個(gè)數(shù)字是文本的序號,第2個(gè)數(shù)字是詞的序號,注意詞的序號是基于所有的文檔的。第三個(gè)數(shù)字就是我們的詞頻。
我們可以進(jìn)一步看看每個(gè)文本的詞向量特征和各個(gè)特征代表的詞,代碼如下:
print vectorizer.fit_transform(corpus).toarray() print vectorizer.get_feature_names()
輸出如下
[[0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 1 0 0] [0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0] [1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0] [0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1]] [u"and", u"apple", u"car", u"china", u"come", u"in", u"is", u"love", u"papers", u"polupar", u"science", u"some", u"tea", u"the", u"this", u"to", u"travel", u"work", u"write"]
可以看到我們一共有19個(gè)詞,所以4個(gè)文本都是19維的特征向量。而每一維的向量依次對應(yīng)了下面的19個(gè)詞。另外由于詞"I"在英文中是停用詞,不參加詞頻的統(tǒng)計(jì)。
由于大部分的文本都只會使用詞匯表中的很少一部分的詞,因此我們的詞向量中會有大量的0。也就是說詞向量是稀疏的。在實(shí)際應(yīng)用中一般使用稀疏矩陣來存儲。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19793.html
摘要:在自然語言處理詞袋模型與向量化中我們講到在文本挖掘的預(yù)處理中,向量化之后一般都伴隨著的處理,那么什么是,為什么一般我們要加這一步預(yù)處理呢這里就對的原理做一個(gè)總結(jié)。 TF-IDF 在自然語言處理——詞袋模型與向量化中我們講到在文本挖掘的預(yù)處理中,向量化之后一般都伴隨著TF-IDF的處理,那么什么是TF-IDF,為什么一般我們要加這一步預(yù)處理呢?這里就對TF-IDF的原理做一個(gè)總結(jié)。 文本...
閱讀 2900·2021-11-23 09:51
閱讀 3419·2021-11-22 09:34
閱讀 3319·2021-10-27 14:14
閱讀 1519·2019-08-30 15:55
閱讀 3352·2019-08-30 15:54
閱讀 1080·2019-08-30 15:52
閱讀 1897·2019-08-30 12:46
閱讀 2856·2019-08-29 16:11