NLP(四)詞向量

2021-09-22 22:31:31 字數 846 閱讀 6520

關於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...