Computer >> Máy Tính >  >> Lập trình >> Python

Python - Nhúng Word bằng Word2Vec

Nhúng từ là một kỹ thuật mô hình hóa ngôn ngữ được sử dụng để ánh xạ từ sang vectơ của số thực. Nó đại diện cho các từ hoặc cụm từ trong không gian vectơ với một số chiều. Nhúng từ có thể được tạo bằng nhiều phương pháp khác nhau như mạng nơ-ron, ma trận đồng xuất hiện, mô hình xác suất, v.v.

Word2Vec bao gồm các mô hình để tạo nhúng từ. Các mô hình này là mạng nơ-ron hai lớp nông có một lớp đầu vào, một lớp ẩn và một lớp đầu ra.

Ví dụ

# importing all necessary modules
from nltk.tokenize import sent_tokenize, word_tokenize
import warnings
warnings.filterwarnings(action = 'ignore')
import gensim
from gensim.models import Word2Vec  
#  Reads ‘alice.txt’ file
sample = open("C:\\Users\\Vishesh\\Desktop\\alice.txt", "r")
s = sample.read()  
# Replaces escape character with space
f = s.replace("\n", " ")
data = []  
# iterate through each sentence in the file
for i in sent_tokenize(f):
   temp = []    
   # tokenize the sentence into words
   for j in word_tokenize(i):
      temp.append(j.lower())  
   data.append(temp)  
# Create CBOW model
model1 = gensim.models.Word2Vec(data, min_count = 1,  size = 100, window = 5)  
# Print results
print("Cosine similarity between 'alice' " + "and 'wonderland' - CBOW : ", model1.similarity('alice', 'wonderland'))    
print("Cosine similarity between 'alice' " + "and 'machines' - CBOW : ", model1.similarity('alice', 'machines'))  
# Create Skip Gram model
model2 = gensim.models.Word2Vec(data, min_count = 1, size = 100, window =5, sg = 1)
# Print results
print("Cosine similarity between 'alice' " + "and 'wonderland' - Skip Gram : ", model2.similarity('alice', 'wonderland'))      
print("Cosine similarity between 'alice' " + "and 'machines' - Skip Gram : ", model2.similarity('alice', 'machines'))