Python - 使用 Word2Vec 进行词嵌入

pythonserver side programmingprogramming

词嵌入是一种语言建模技术,用于将单词映射到实数向量。它在具有多个维度的向量空间中表示单词或短语。可以使用各种方法生成词嵌入,例如神经网络、共现矩阵、概率模型等。

Word2Vec 由用于生成词嵌入的模型组成。这些模型是浅层两层神经网络,具有一个输入层、一个隐藏层和一个输出层。

示例

# 导入所有必需的模块
from nltk.tokenize import sent_tokenize, word_tokenize
import warnings
warnings.filterwarnings(action = 'ignore')
import gensim
from gensim.models import Word2Vec  
#  读取 ‘alice.txt’ 文件
sample = open("C:\Users\Vishesh\Desktop\alice.txt", "r")
s = sample.read()  
# 将转义符替换为空格
f = s.replace("\n", " ")
data = []  
# 遍历文件中的每个句子
for i in sent_tokenize(f):
   temp = []    
   # 将句子标记为单词
   for j in word_tokenize(i):
      temp.append(j.lower())  
   data.append(temp)  
# 创建 CBOW 模型
model1 = gensim.models.Word2Vec(data, min_count = 1,  size = 100, window = 5)  
# 打印结果
print("'alice' " + "与'wonderland' 之间的余弦相似度 - CBOW : ", model1.similarity('alice', 'wonderland'))    
print("'alice' " + "与'machines' 之间的余弦相似度 - CBOW : ", model1.similarity('alice', 'machines'))  
# 创建 Skip Gram 模型
model2 = gensim.models.Word2Vec(data, min_count = 1, size = 100, window =5, sg = 1)
# 打印结果
print("'alice' " + "and 'wonderland' 之间的余弦相似度 - Skip Gram : ", model2.similarity('alice', 'wonderland'))      
print("'alice' " + "and 'machines' 之间的余弦相似度 - Skip Gram : ", model2.similarity('alice', 'machines'))

相关文章