Como pesquisar incorporações para a correspondência mais próxima

Como Pesquisar Incorporacoes Para A Correspondencia Mais Proxima



Pesquisar as incorporações para a correspondência mais próxima significa localizar as incorporações que têm o significado mais próximo umas das outras. Os embeddings são a representação vetorial de uma sentença que é alimentada aos modelos de linguagem como entradas para tarefas específicas. Discutiremos aqui o método e as técnicas que podem ser usadas para encontrar os embeddings semelhantes.

Sintaxe

Existem muitas técnicas e ferramentas que podemos utilizar para encontrar a diferença entre os embeddings com base em sua diferença em termos de similaridade. A seguir estão os métodos e sua sintaxe envolvida que usaremos para encontrar as semelhanças de incorporação.







A partir desses pontos mencionados, conhecemos os modelos que podemos usar para encontrar a correspondência de similaridade para os embeddings. Agora, aprenderemos a utilizar cada um desses modelos e implementar os exemplos individuais em cada um desses modelos.



Exemplo 1: incorporando a correspondência mais próxima por meio de incorporações do Word

Antes de implementarmos a palavra embeddings para a correspondência de similaridade, precisamos saber sobre a palavra embeddings. A incorporação de palavras é o processo de converter o texto na forma de um vetor (valores numéricos), pois nossos sistemas só entendem a entrada na forma de dígitos numéricos.



Existem várias outras maneiras de fazer essa tarefa que incluem codificação one-hot, mas usaremos a palavra embeddings. Desta forma, a incorporação está sendo aprendida pelos modelos da rede neural (por exemplo, word2vec ou Glove) a partir dos textos. As palavras são mapeadas para o espaço vetorial de dimensão superior. Todas as palavras que são semelhantes no contexto são mapeadas para os pontos mais próximos. Dessa forma, os embeddings podem capturar as relações e as analogias entre as diferentes palavras do texto.





Vamos criar uma incorporação de palavras para uma frase. Para criar a palavra embedding, o Python fornece o framework “gensim”. Gensim é um pacote de bibliotecas que permite a utilização do modelo “word2vec” que auxilia na criação dos embeddings. Para implementar a incorporação, primeiro nos certificamos de instalar o gensim em nossos compiladores Python. Então, do gensim, importamos o modelo “word2vec”.

O modelo “word2vec” é um tipo de algoritmo que utiliza apenas dois argumentos de entrada onde o primeiro argumento requer o texto ou a frase cuja incorporação queremos criar, e o segundo argumento especifica a contagem mínima que especifica o número mínimo de vezes que um palavra é necessária para aparecer ou ser visto.



Depois de importar o modelo “word2vec”, especificamos o “texto”. Depois de especificar o texto, treinamos esse modelo “word2vec” passando-o com o texto e definindo a contagem mínima igual a “1”. Agora, chamamos esse modelo treinado de “word2vec.wv.most_similar(‘consume’)” e alimentamos a palavra cujos embeddings mais próximos queremos verificar, que neste exemplo é “consume”. Para verificar os resultados da incorporação, imprimimos a saída do modelo:

de como uma nação modelos importar Word2Vec
texto = [ [ 'coelho' , 'tem' , 'dentes' ] ]
modelo = Word2Vec ( texto , min_count = 1 )
similar_embedding = modelo. wv . mais_semelhantes ( 'coelho' )
imprimir ( similar_embedding )

Neste exemplo, criamos a palavra embedding para um texto usando o modelo “word2vec” para verificar sua similaridade em termos de contexto e isso pode ser visto no trecho anexado anteriormente que é a saída do código que verifica se há embeddings semelhantes da palavra “consumir”.

Exemplo 2: incorporando a pesquisa mais próxima por meio do modelo BERT

Existem os modelos de processamento de linguagem natural pré-treinados que podem ser utilizados para calcular a similaridade entre os textos, pois podem entender e aprender a relação contextual entre as palavras. O BERT é um dos modelos de linguagem pré-treinados dos “sentence_transformers” e pode aprender as semelhanças entre os textos. Para encontrar a semelhança entre os textos, primeiro temos que ajustar esse modelo ao texto ou às frases.

Feito isso, podemos usar esse modelo para aprender os embeddings. Então, podemos calcular a similaridade entre os textos usando a função “semelhança de cosseno”. Implementamos este exemplo na plataforma Python online que é “google colab”. Para ajustar o modelo, carregamos o modelo (BERT). Para isso, primeiro instalamos e importamos os “SentenceTransformers”. Em seguida, carregamos o modelo de seu modelo pré-treinado usando o SentenceTransformer. Para carregar o modelo, chamamos o SentenceTransformer e o modelo BERT juntos como “$SentenceTransformer('bert-base-nli-mean-tokens')” onde especificamos o nome do modelo pré-treinado de BERT no parâmetro de entrada e então salvamos isso na variável “BERTmodel”.

Depois de terminar de carregar este modelo, agora especificamos os quatro textos, cada um consistindo em uma frase para verificar a semelhança entre eles. Depois de especificar os textos, por exemplo, agora criamos os embeddings para este texto. Criamos individualmente os embeddings para cada um dos textos usando a função “encode”.

Chamamos a função de codificação com o prefixo do modelo BERT como “BERTmodel.encoding ()”. Em seguida, passamos o “texto” e o “comprimento máximo” que fixamos para ser igual a “512” para os parâmetros desta função. Chamamos essa função de codificação em cada um dos textos e ela converte o texto em incorporações.

Agora, utilizamos cada uma dessas incorporações e as substituímos na função de similaridade de cosseno para encontrar a similaridade entre essas incorporações. A função de similaridade de cosseno é amplamente utilizada em todas as tarefas de processamento de linguagem natural para classificações e agrupamentos de textos/documentos.

Para encontrar a similaridade entre esses embeddings, usamos a função de similaridade de cosseno e substituímos o valor da sentença incorporada pelo índice “0” e a outra sentença incorporada pelo índice “1 a 3” para verificar a similaridade da sentença 0 com as outras 3 frases. Os valores de saída da função de similaridade de cosseno variam de -1 a 1. Aqui, 1 informa que as duas incorporações são semelhantes e -1 indica que as duas incorporações não são semelhantes. Anexamos o trecho de código que mostra o método para implementar a função de similaridade de cosseno usando as quatro incorporações de sentença que acabamos de criar nos exemplos usando o modelo BERT pré-treinado.

!pip instalar sentença_transformadores
frases = [
'quatro anos antes, a garrafa estava mesmo cheia e .',
'A cachorra sonhou que estava fugindo da jaula e na rua onde viu a amiga indo.',
'A pessoa brincou com água-viva por muitos meses.',
'Ele encontrou um caracol em seu guarda-roupa.']
de sentença_transformers import SentenceTransformer
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
sentença_embeddings = Bertmodel.encode(sentenças)
frase_embeddings.shape
de sklearn.metrics.pairwise import cosine_similarity
# calculando a similaridade do cosseno para a sentença 0:
cosseno_semelhança(
[sentence_embeddings[0]],
frase_embeddings[1:])

A matriz na saída exibe o valor de similaridade da “sentença 0” com as outras três sentenças, por exemplo 1, 2 e 3.

Conclusão

Discutimos os métodos para encontrar a similaridade entre os embeddings. Mostramos dois exemplos diferentes para procurar a correspondência mais próxima da incorporação usando o modelo gensim “word2vec” e o modelo BERT pré-treinado.