Comment rechercher les représentations incorporées pour la correspondance la plus proche

Comment Rechercher Les Representations Incorporees Pour La Correspondance La Plus Proche



Rechercher dans les plongements la correspondance la plus proche signifie trouver les plongements qui ont la signification la plus proche les uns des autres. Les incorporations sont la représentation vectorielle d'une phrase qui est transmise aux modèles de langage en tant qu'entrées pour des tâches spécifiques. Nous aborderons ici la méthode et les techniques qui peuvent être utilisées pour trouver les plongements similaires.

Syntaxe

Il existe de nombreuses techniques et outils que nous pouvons utiliser pour trouver la différence entre les intégrations en fonction de leur différence en termes de similitude. Voici les méthodes et leur syntaxe impliquée que nous utiliserons pour trouver les similitudes d'intégration.







À partir de ces points mentionnés, nous connaissons les modèles que nous pouvons utiliser pour trouver la correspondance de similarité pour les plongements. Maintenant, nous allons apprendre à utiliser chacun de ces modèles et mettre en œuvre les exemples individuels sur chacun de ces modèles.



Exemple 1 : intégration de la correspondance la plus proche via des incorporations de mots

Avant d'implémenter les intégrations de mots pour la correspondance de similarité, nous devons connaître les intégrations de mots. L'incorporation de mots est le processus de conversion du texte sous la forme d'un vecteur (valeurs numériques) puisque nos systèmes ne comprennent l'entrée que sous la forme de chiffres numériques.



Il existe plusieurs autres façons d'effectuer cette tâche, notamment l'encodage à chaud, mais nous utiliserons les incorporations de mots. De cette façon, l'intégration est apprise par les modèles du réseau de neurones (par exemple word2vec ou Glove) à partir des textes. Les mots sont mappés sur l'espace vectoriel de dimension supérieure. Tous ces mots dont le contexte est similaire sont mappés aux points les plus proches. De cette façon, les plongements peuvent capturer les relations et les analogies entre les différents mots du texte.





Créons un mot incorporé pour une phrase. Pour créer le mot incorporation, Python fournit le framework « gensim ». Gensim est un package de bibliothèque qui permet l'utilisation du modèle 'word2vec' qui aide à créer les intégrations. Pour implémenter l'intégration, nous nous assurons d'abord d'installer gensim sur nos compilateurs Python. Ensuite, depuis le gensim, nous importons le modèle « word2vec ».

Le modèle 'word2vec' est une sorte d'algorithme qui n'utilise que deux arguments d'entrée où le premier argument nécessite le texte ou la phrase dont nous voulons créer l'intégration, et le deuxième argument spécifie le nombre minimum qui spécifie le nombre minimum de fois qu'un mot est nécessaire pour apparaître ou être vu.



Après avoir importé le modèle 'word2vec', nous spécifions le 'texte'. Une fois que nous avons spécifié le texte, nous formons ensuite ce modèle 'word2vec' en le passant avec le texte et en définissant le nombre minimum égal à '1'. Maintenant, nous appelons ce modèle formé 'word2vec.wv.most_similar('consume')' et alimentons le mot dont nous voulons vérifier les imbrications les plus proches dans lequel dans cet exemple est 'consommer'. Pour vérifier les résultats d'intégration, nous imprimons la sortie du modèle :

depuis en tant que nation des modèles importer Word2Vec
texte = [ [ 'lapin' , 'a' , 'dents' ] ]
modèle = Word2Vec ( texte , min_count = 1 )
similar_embedding = modèle. wv . les plus_similaires ( 'lapin' )
imprimer ( similar_embedding )

Dans cet exemple, nous créons le mot embedding pour un texte en utilisant le modèle 'word2vec' pour vérifier leur similitude en termes de contexte et cela peut être vu dans l'extrait précédemment joint qui est la sortie du code qui vérifie les incorporations similaires du mot « consommer ».

Exemple 2 : Intégrer la recherche la plus proche via le modèle BERT

Il existe des modèles de traitement du langage naturel pré-formés qui peuvent être utilisés pour calculer la similitude entre les textes puisqu'ils peuvent comprendre et apprendre la relation contextuelle entre les mots. BERT est l'un des modèles de langage pré-formés des 'sentence_transformers' et il peut apprendre les similitudes entre les textes. Pour trouver la similitude entre les textes, nous devons d'abord affiner ce modèle au texte ou aux phrases.

Une fois cela fait, nous pouvons utiliser ce modèle pour apprendre les plongements. Ensuite, nous pouvons calculer la similarité entre les textes en utilisant la fonction « cosinus similarity ». Nous implémentons cet exemple sur la plateforme Python en ligne qui est 'google colab'. Pour affiner le modèle, nous chargeons le modèle (BERT). Pour cela, nous installons et importons d'abord les 'SentenceTransformers'. Ensuite, nous chargeons le modèle à partir de son modèle pré-formé à l'aide du SentenceTransformer. Pour charger le modèle, nous appelons le SentenceTransformer et le modèle BERT en tant que '$SentenceTransformer('bert-base-nli-mean-tokens')' où nous spécifions le nom du modèle pré-formé de BERT dans le paramètre d'entrée et puis nous l'enregistrons dans la variable 'BERTmodel'.

Une fois que nous avons fini de charger ce modèle, nous spécifions maintenant les quatre textes, chacun composé d'une phrase pour vérifier la similitude entre eux. Une fois que nous avons spécifié les textes par exemple, nous créons maintenant les incrustations pour ce texte. Nous créons individuellement les incorporations pour chacun des textes en utilisant la fonction 'encoder'.

Nous appelons la fonction d'encodage avec le préfixe du modèle BERT comme 'BERTmodel.encoding ()'. On passe ensuite le 'texte' et la 'longueur maximale' que l'on a fixée égale à '512' aux paramètres de cette fonction. Nous appelons cette fonction d'encodage sur chacun des textes, et elle convertit le texte en incorporations.

Maintenant, nous utilisons chacun de ces plongements et les substituons dans la fonction de similarité cosinus pour trouver la similitude entre ces plongements. La fonction de similarité cosinus est largement utilisée dans toutes les tâches de traitement du langage naturel pour les classifications et le regroupement des textes/documents.

Pour trouver la similitude entre ces plongements, nous utilisons la fonction de similarité cosinus et substituons la valeur de la phrase incorporée avec l'indice '0' et l'autre phrase incorporée avec l'indice '1 à 3' pour vérifier la similitude de la phrase 0 avec les 3 autres phrases. Les valeurs de sortie de la fonction de similarité cosinus vont de -1 à 1. Ici, 1 indique que les deux plongements sont similaires et le -1 indique que les deux plongements ne sont pas similaires. Nous avons joint l'extrait de code qui montre la méthode pour implémenter la fonction de similarité cosinus en utilisant les quatre incorporations de phrases que nous venons de créer dans les exemples en utilisant le modèle BERT pré-entraîné.

!pip installer phrase_transformers
phrases = [
'quatre ans avant, la bouteille était même pleine et .',
'La chienne a rêvé de s'échapper de la cage et dans la rue où elle a vu son amie aller.',
'La personne a joué avec des méduses pendant plusieurs mois.',
'Il a trouvé un escargot dans son armoire.']
de phrase_transformers importer SentenceTransformer
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
phrase_embeddings = Bertmodel.encode(phrases)
phrase_embeddings.forme
de sklearn.metrics.pairwise importer cosine_similarity
# calcul=ing cosinus similarité pour la phrase 0 :
cosinus_similitude(
[sentence_embeddings[0]],
phrase_embeddings[1:])

Le tableau dans la sortie affiche la valeur de similarité de la 'phrase 0' avec les trois autres phrases, par ex. 1, 2 et 3.

Conclusion

Nous avons discuté des méthodes pour trouver la similarité entre les plongements. Nous avons montré deux exemples différents pour rechercher la correspondance la plus proche de l'intégration à l'aide du modèle de gensim 'word2vec' et du modèle BERT pré-entraîné.