關於word2vec的原理網上很詳細了
本文**共2種詞向量轉換方式
1、獨熱編碼
2、word2vec
from sklearn.preprocessing import labelencoder
one-hot = labelencoder()
# 輸入為列表好像也可以
word_vector = one-hot.fit_transform(df[『列名』].values)
import numpy as np
import gensim
x_train = ['字串1', 『字串2』]
#輸出是乙個字典, key是詞, 值是長度為size的列表
word2vec = gensim.models.word2vec(x_train, min_count =2, window=5, size=30)
def sent2vec(words):
words = [w for w in words]
vector =
# 轉換為陣列
for w in words:
try:
except:
continue
# 此時的陣列是(n, size), n是words的詞數
vector = np.array(vector)
# 要把(n,size)-> (1,size)
# 對每一列求和後標準化
v = vector.sum(axis=0)
return v / np.sqrt((v ** 2).sum())
參考資料: NLP 如何評估詞向量
目前詞向量的評估一般分為兩大類 extrinsic evaluation和 intrinsic evaluation。即內部評估和外部評估。內部評估直接衡量單詞之間的句法和語義關係。這些任務通常涉及一組預先選擇的查詢術語和語義相關的目標詞彙,我們將其稱為query inventory。當前絕大部分工...
nlp期末複習 詞向量
1 不能體現詞的含義進行編碼 one hot 2 單詞按照含義進行編碼成向量的方式稱為word embedding word embedding word2vec cbow skip gram glove 3 從word embedding到bert模型 無法解決詞的多義問題 缺點 word emb...
莫煩nlp 詞向量 skim gram
將訓練的句子人工分為兩派 數字派,字母派 雖然都是文字,但是期望模型能自動區分出在空間上,數字和字母是有差別的。因為數字總是和數字一同出現,而字母總是和字母一同出現。臥底數字 9 的任務就是把字母那邊的情報向數字通風報信。所以期望的樣子就是數字 9 不但靠近數字,而且也靠近字母。上一節已經介紹了cb...