Hướng dẫn how to convert word to vector in python - làm thế nào để chuyển đổi từ thành vectơ trong python

Giả sử tôi có một khung dữ liệu được hiển thị bên dưới:

| Văn bản

| Storm in Ri tệ hơn cơn bão cuối cùng

| Xuất hiện đường màu xanh lá cây ở Chicago

| Triển vọng thời tiết nguy hiểm

Tôi đã tạo mô hình Word2VEC bằng mã dưới đây:

def sent_to_words(sentences):
    for sentence in sentences:
        yield(gensim.utils.simple_preprocess(str(sentence), deacc=True))

text_data = sent_to_words(df['Text'])
w2v_model = gensim.models.Word2Vec(text_data, size=100, min_count=1, window=5, iter=50)

Bây giờ làm thế nào tôi sẽ chuyển đổi văn bản có trong cột 'văn bản' thành các vectơ bằng mô hình Word2VEC này?

Trong bài trước, chúng tôi đã xem xét biểu diễn vectơ của văn bản với các từ nhúng bằng cách sử dụng Word2VEC. Một cách tiếp cận khác có thể được sử dụng để chuyển đổi từ sang vector là sử dụng găng tay - vectơ toàn cầu để biểu diễn từ. Mỗi tài liệu từ trang chủ của găng tay [1] Găng tay là một thuật toán học tập không giám sát để có được các biểu diễn vectơ cho các từ. Đào tạo được thực hiện trên các số liệu thống kê tổng hợp từ từ toàn cầu từ một kho văn bản. Do đó, chúng ta có thể chuyển đổi từ thành vector bằng găng tay.word2vec. Another approach that can be used to convert word to vector is to use GloVe – Global Vectors for Word Representation. Per documentation from home page of GloVe [1] “GloVe is an unsupervised learning algorithm for obtaining vector representations for words. Training is performed on aggregated global word-word co-occurrence statistics from a corpus”. Thus we can convert word to vector using GloVe.

Tại bài đăng này, chúng tôi sẽ xem xét cách sử dụng tệp dữ liệu găng tay đã có thể được tải xuống từ [1]. Chúng tôi sẽ xem xét làm thế nào để có được biểu diễn Vector Word từ DataFile đã tải xuống này. Chúng tôi cũng sẽ xem xét làm thế nào để có được những từ gần nhất. Tại sao chúng ta cần biểu diễn vector của văn bản? Bởi vì đây là những gì chúng tôi nhập vào các thuật toán khoa học máy học hoặc dữ liệu - chúng tôi cung cấp các vectơ số vào các thuật toán như phân loại văn bản, phân cụm máy học hoặc các thuật toán phân tích văn bản khác.pretrained GloVe data file that can be downloaded from [1].

Hướng dẫn how to convert word to vector in python - làm thế nào để chuyển đổi từ thành vectơ trong python
We will look how to get word vector representation from this downloaded datafile. We will also look how to get nearest words. Why do we need vector representation of text? Because this is what we input to machine learning or data science algorithms – we feed numerical vectors to algorithms such as text classification, machine learning clustering or other text analytics algorithms.

Tải găng tay DataFile

Mã mà tôi đặt ở đây dựa trên một số ví dụ mà tôi tìm thấy trên StackOverflow [2].

Vì vậy, trước tiên bạn cần mở tệp và tải dữ liệu vào mô hình. Sau đó, bạn có thể nhận được biểu diễn vector và những thứ khác.

Dưới đây là mã nguồn đầy đủ cho Găng tay Python Script:

file = "C:\\Users\\glove\\glove.6B.50d.txt"
import numpy as np
def loadGloveModel(gloveFile):
    print ("Loading Glove Model")
   
    
    with open(gloveFile, encoding="utf8" ) as f:
       content = f.readlines()
    model = {}
    for line in content:
        splitLine = line.split()
        word = splitLine[0]
        embedding = np.array([float(val) for val in splitLine[1:]])
        model[word] = embedding
    print ("Done.",len(model)," words loaded!")
    return model
    
    
model= loadGloveModel(file)   

print (model['hello'])

"""
Below is the output of the above code
Loading Glove Model
Done. 400000  words loaded!
[-0.38497   0.80092   0.064106 -0.28355  -0.026759 -0.34532  -0.64253
 -0.11729  -0.33257   0.55243  -0.087813  0.9035    0.47102   0.56657
  0.6985   -0.35229  -0.86542   0.90573   0.03576  -0.071705 -0.12327
  0.54923   0.47005   0.35572   1.2611   -0.67581  -0.94983   0.68666
  0.3871   -1.3492    0.63512   0.46416  -0.48814   0.83827  -0.9246
 -0.33722   0.53741  -1.0616   -0.081403 -0.67111   0.30923  -0.3923
 -0.55002  -0.68827   0.58049  -0.11626   0.013139 -0.57654   0.048833
  0.67204 ]
"""  

Vì vậy, chúng tôi đã nhận được đại diện số của từ ‘xin chào. Chúng ta cũng có thể sử dụng gấu trúc để tải tệp găng tay. Dưới đây là các chức năng để tải với gấu trúc và nhận thông tin vector.
We can use also pandas to load GloVe file. Below are functions for loading with pandas and getting vector information.

import pandas as pd
import csv

words = pd.read_table(file, sep=" ", index_col=0, header=None, quoting=csv.QUOTE_NONE)


def vec(w):
  return words.loc[w].as_matrix()
 

print (vec('hello'))    #this will print same as print (model['hello'])  before
 

Tìm từ hoặc từ gần nhất

Bây giờ làm thế nào để chúng ta tìm thấy từ gần nhất với từ trên bảng bảng? Chúng tôi lặp lại thông qua gấu trúc DataFrame, tìm Deltas và sau đó sử dụng hàm argmin numpy. Từ gần nhất với một số từ sẽ luôn luôn là từ này (như delta = 0) vì vậy tôi cần phải bỏ từ ‘bảng, và từ gần nhất tiếp theo‘ bảng. Đầu ra cuối cùng cho từ gần nhất là "Place Place"closest word to word “table”? We iterate through pandas dataframe, find deltas and then use numpy argmin function.
The closest word to some word will be always this word itself (as delta = 0) so I needed to drop the word ‘table’ and also next closest word ‘tables’. The final output for the closest word was “place”

words = words.drop("table", axis=0)  
words = words.drop("tables", axis=0)  

words_matrix = words.as_matrix()

def find_closest_word(v):
  diff = words_matrix - v
  delta = np.sum(diff * diff, axis=1)
  i = np.argmin(delta)
  return words.iloc[i].name 


print (find_closest_word(model['table']))
#output:  place

#If we want retrieve more than one closest words here is the function:

def find_N_closest_word(v, N, words):
  Nwords=[]  
  for w in range(N):  
     diff = words.as_matrix() - v
     delta = np.sum(diff * diff, axis=1)
     i = np.argmin(delta)
     Nwords.append(words.iloc[i].name)
     words = words.drop(words.iloc[i].name, axis=0)
    
  return Nwords
  
  
print (find_N_closest_word(model['table'], 10, words)) 

#Output:
#['table', 'tables', 'place', 'sit', 'set', 'hold', 'setting', 'here', 'placing', 'bottom']

Chúng tôi cũng có thể sử dụng các chức năng thư viện GENSIM Word2VEC sau khi chúng tôi tải tệp găng tay.gensim word2vec library functionalities after we load GloVe file.

from gensim.scripts.glove2word2vec import glove2word2vec
glove2word2vec(glove_input_file=file, word2vec_output_file="gensim_glove_vectors.txt")

###Finally, read the word2vec txt to a gensim model using KeyedVectors:

from gensim.models.keyedvectors import KeyedVectors
glove_model = KeyedVectors.load_word2vec_format("gensim_glove_vectors.txt", binary=False)

Sự khác biệt giữa Word2Vec và găng tay

Cả hai mô hình đều học mã hóa hình học (vectơ) của các từ từ thông tin xảy ra sự xuất hiện của chúng. Chúng khác nhau theo cách họ học thông tin này. Word2VEC đang sử dụng mô hình dự đoán của người Viking (mạng thần kinh chuyển tiếp nguồn cấp dữ liệu), trong khi găng tay đang sử dụng mô hình dựa trên đếm đếm (giảm kích thước trên ma trận số lượng xuất hiện). [3]

Tôi hy vọng bạn thích đọc bài viết này về cách chuyển đổi từ sang vector bằng găng tay và Python. Nếu bạn có bất kỳ lời khuyên hoặc bất cứ điều gì khác để thêm, xin vui lòng để lại nhận xét bên dưới.

TÀI LIỆU THAM KHẢO 1. Găng tay: Các vectơ toàn cầu cho biểu diễn từ 2. Tải các vectơ găng tay đã được xử lý trước trong Python 3. Găng tay khác với Word2VEC 4. Don mệnh đếm, dự đoán! Một so sánh có hệ thống về đếm ngữ cảnh so với các vectơ ngữ nghĩa dự đoán theo ngữ cảnh 5. Các từ nhúng
1. GloVe: Global Vectors for Word Representation
2. Load pretrained glove vectors in python
3. How is GloVe different from word2vec
4. Don’t count, predict! A systematic comparison of
context-counting vs. context-predicting semantic vectors
5. Words Embeddings

Làm thế nào để bạn chuyển đổi các từ thành vectơ?

Chuyển đổi các từ sang vectơ, hoặc vectơ từ, là một quá trình xử lý ngôn ngữ tự nhiên (NLP). Quá trình sử dụng các mô hình ngôn ngữ để ánh xạ các từ vào không gian vector. Một không gian vector đại diện cho mỗi từ bằng một vectơ của các số thực. Nó cũng cho phép các từ có nghĩa tương tự có biểu diễn tương tự.uses language models to map words into vector space. A vector space represents each word by a vector of real numbers. It also allows words with similar meanings have similar representations.

Làm cách nào để vectorize văn bản trong NLP?

Kỹ thuật vector hóa..
Túi từ.Đơn giản nhất trong tất cả các kỹ thuật ngoài kia.....
TF-IDF.TF-idf hoặc tần số tần số tần số tần số, là một thống kê số nhằm phản ánh mức độ quan trọng của một từ đối với một tài liệu.....
Word2VEC.....
Găng tay.....
FastText..

Word2VEC trong Python là gì?

Word2VEC bao gồm các mô hình để tạo từ nhúng từ.Các mô hình này là các mạng thần kinh 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.models for generating word embedding. These models are shallow two-layer neural networks having one input layer, one hidden layer, and one output layer.

Nó có nghĩa là gì khi vector hóa một từ?

Word nhúng hoặc vector từ là một phương pháp trong NLP để ánh xạ các từ hoặc cụm từ từ từ vựng đến một vectơ tương ứng của các số thực được sử dụng để tìm dự đoán từ, tương tự từ/ngữ nghĩa.Quá trình chuyển đổi từ thành các số được gọi là vector hóa.a methodology in NLP to map words or phrases from vocabulary to a corresponding vector of real numbers which used to find word predictions, word similarities/semantics. The process of converting words into numbers are called Vectorization.