生活随笔
收集整理的這篇文章主要介紹了
十六、词向量总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
詞向量總結(jié)
1. 基于離散的詞向量表示方法
1.1 單詞的向量化
- One-Hot編碼:每一個詞使用一個長度為N的向量表示,N表示詞典的數(shù)量。假設(shè)我們有一個文檔:深度學習,那么進行one-hot處理后的結(jié)果如下:
1.2 文本的向量化
- 詞袋模型:使用詞頻作為文本的向量表示.
- TF-IDF:使用詞權(quán)重作為文本的向量表示.
- 詞匯表:{'orange':3,‘banana’:1,‘a(chǎn)pple’:0, 'grape':2}
1.3 詞向量表示方法的缺點
- 無法衡量詞向量之間的關(guān)系
- 詞表維度隨著語料庫增長膨脹
- 數(shù)據(jù)稀疏問題
2. 基于分布式的詞向量表示方法
2.1 分布式的詞向量表示方法
- CBOW:根據(jù)上下文預測中心詞
- Skip-Gram:根據(jù)中心詞預測上下文
2.2 分布式的詞向量表示的優(yōu)缺點
- 優(yōu)點:
- 由于 Word2vec 會考慮上下文,比之前的方法維度更少,所以速度更快.
- 通用性很強,可以用在各種 NLP 任務中.
- 缺點:
- 由于詞和向量是一對一的關(guān)系,所以多義詞的問題無法解決.
- Word2vec 是一種靜態(tài)的方式,雖然通用性強,但是無法針對特定任務做動態(tài)優(yōu)化.
2.3 Word Embeding的表示
- Word Embedding使用了浮點型的稠密句子表示詞向量.
- 形象的表示就是:
2.4 Word Embedding的實現(xiàn)過程
- 首先把單詞使用數(shù)字來表示,再把數(shù)字使用向量來表示.
- 單詞–>數(shù)字----->向量:
2.5 Wode Embeding數(shù)據(jù)的形狀變化
2.6 完整代碼
from sklearn
.feature_extraction
.text
import CountVectorizer
import torch
from torch
import nn
as nntexts
= ["orange banana apple grape dineapple",] cv
= CountVectorizer
()
cv_fit
= cv
.fit_transform
(texts
)
print(cv
.vocabulary_
)
print(cv_fit
.toarray
()) """
詞向量
"""
embedding
= nn
.Embedding
(len(cv
.vocabulary_
), 7)
input = torch
.tensor
(cv_fit
.toarray
())output
= embedding
(input)
print(output
)
print(embedding
.weight
.size
())
總結(jié)
以上是生活随笔為你收集整理的十六、词向量总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。