NLP-詞向量:詞袋模型

一、前言

詞袋模型是早些年使用的詞向量模型,該模型假設(shè)每個(gè)詞都是獨(dú)立的,僅僅使用詞在文章中的頻率來(lái)決定如何表達(dá)詞,并將每個(gè)詞的表達(dá)通過(guò)組合來(lái)表征文章。

二、原理以及實(shí)現(xiàn)

該模型的具體構(gòu)建流程如下:
假設(shè)我們有如下三篇簡(jiǎn)短文章

1、今天 我們 去 唱歌 明天 我們 去 爬山
2、 我們 去 爬山
3、小名 喜歡 打球

1、構(gòu)建詞袋

將文章的所有詞提取出來(lái)放在一個(gè)袋子中:

dict = ['今天', '唱歌', '喜歡', '小名', '我們', '打球', '明天', '爬山']

共得到包含有8個(gè)詞的詞袋,那么每篇文章的維度就固定為8

2、統(tǒng)計(jì)文章詞頻

使用詞袋的每個(gè)詞去文章中一一統(tǒng)計(jì),并按照順序記錄詞頻,比如文章1中,“今天”出現(xiàn)1次,“唱歌”出現(xiàn)1次...“爬山”出現(xiàn)1次
得到三篇文章的詞向量分別如下:

1、[1 1 0 0 2 0 1 1]
2、[0 0 0 0 1 0 0 1]
3、[0 0 1 1 0 1 0 0]

3、代碼實(shí)戰(zhàn)

使用sklearn進(jìn)行實(shí)戰(zhàn)

from sklearn.feature_extraction.text import CountVectorizer
corpus = ['今天 我們 去 唱歌,明天 我們 去 爬山',
            '我們 去 爬山',
            '小名 喜歡 打球']
vec=CountVectorizer()
X = vec.fit_transform(corpus)
print(X.toarray())

三、特點(diǎn)

1、優(yōu)點(diǎn)

  • 簡(jiǎn)單快捷,易于理解

2、缺點(diǎn)

  • 向量稀疏度較高,當(dāng)詞袋較大時(shí),容易出現(xiàn)維度災(zāi)難
  • 假設(shè)了文本中詞與詞之間相互獨(dú)立,上下文沒(méi)有關(guān)聯(lián)性,有悖于人類語(yǔ)言
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容