Τρόπος αναζήτησης ενσωματώσεων για την πλησιέστερη αντιστοίχιση

Tropos Anazeteses Ensomatoseon Gia Ten Plesiestere Antistoichise



Η αναζήτηση στις ενσωματώσεις για την πλησιέστερη αντιστοίχιση σημαίνει την εύρεση εκείνων των ενσωματώσεων που έχουν το πλησιέστερο νόημα μεταξύ τους. Οι ενσωματώσεις είναι η διανυσματική αναπαράσταση μιας πρότασης που τροφοδοτείται στα γλωσσικά μοντέλα ως είσοδοι για συγκεκριμένες εργασίες. Θα συζητήσουμε εδώ τη μέθοδο και τις τεχνικές που μπορούν να χρησιμοποιηθούν για την εύρεση παρόμοιων ενσωματώσεων.

Σύνταξη

Υπάρχουν πολλές τεχνικές και εργαλεία που μπορούμε να χρησιμοποιήσουμε για να βρούμε τη διαφορά μεταξύ των ενσωματώσεων με βάση τη διαφορά τους ως προς την ομοιότητα. Ακολουθούν οι μέθοδοι και η εμπλεκόμενη σύνταξη που θα χρησιμοποιήσουμε για να βρούμε τις ομοιότητες ενσωμάτωσης.







Από αυτά τα σημεία που αναφέρθηκαν, γνωρίζουμε τα μοντέλα που μπορούμε να χρησιμοποιήσουμε για να βρούμε την αντιστοιχία ομοιότητας για τις ενσωματώσεις. Τώρα, θα μάθουμε να χρησιμοποιούμε καθένα από αυτά τα μοντέλα και να εφαρμόζουμε τα μεμονωμένα παραδείγματα σε καθένα από αυτά τα μοντέλα.



Παράδειγμα 1: Ενσωμάτωση της πλησιέστερης αντιστοίχισης μέσω ενσωματώσεων λέξεων

Προτού εφαρμόσουμε τη λέξη ενσωματώσεις για την αντιστοίχιση ομοιότητας, πρέπει να γνωρίζουμε για τη λέξη ενσωματώσεις. Η ενσωμάτωση λέξεων είναι η διαδικασία μετατροπής του κειμένου σε μορφή διανύσματος (αριθμητικές τιμές) αφού τα συστήματά μας κατανοούν την είσοδο μόνο με τη μορφή αριθμητικών ψηφίων.



Υπάρχουν αρκετοί άλλοι τρόποι για να κάνετε αυτήν την εργασία, οι οποίοι περιλαμβάνουν κωδικοποίηση μίας δέσμης, αλλά θα χρησιμοποιήσουμε τη λέξη ενσωματώσεις. Με αυτόν τον τρόπο, η ενσωμάτωση μαθαίνεται από τα μοντέλα του νευρωνικού δικτύου (π.χ. word2vec ή Glove) από τα κείμενα. Οι λέξεις αντιστοιχίζονται στον διανυσματικό χώρο υψηλότερης διάστασης. Όλες αυτές οι λέξεις που είναι παρόμοιες στο πλαίσιο αντιστοιχίζονται στα πλησιέστερα σημεία. Με αυτόν τον τρόπο, οι ενσωματώσεις μπορούν να αποτυπώσουν τις σχέσεις και τις αναλογίες μεταξύ των διαφορετικών λέξεων του κειμένου.





Ας δημιουργήσουμε μια ενσωμάτωση λέξης για μια πρόταση. Για τη δημιουργία της λέξης ενσωμάτωσης, η Python παρέχει το πλαίσιο 'gensim'. Το Gensim είναι ένα πακέτο βιβλιοθήκης που επιτρέπει τη χρήση του μοντέλου «word2vec» που βοηθά στη δημιουργία των ενσωματώσεων. Για να υλοποιήσουμε την ενσωμάτωση, φροντίζουμε πρώτα να εγκαταστήσουμε το gensim στους μεταγλωττιστές μας Python. Στη συνέχεια, από το gensim, εισάγουμε το μοντέλο «word2vec».

Το μοντέλο 'word2vec' είναι ένα είδος αλγορίθμου που χρησιμοποιεί μόνο δύο ορίσματα εισόδου όπου το πρώτο όρισμα απαιτεί το κείμενο ή την πρόταση της οποίας την ενσωμάτωση θέλουμε να δημιουργήσουμε και το δεύτερο όρισμα καθορίζει τον ελάχιστο αριθμό που καθορίζει τον ελάχιστο αριθμό φορών που λέξη απαιτείται για να εμφανιστεί ή να δει.



Μετά την εισαγωγή του μοντέλου «word2vec», καθορίζουμε το «κείμενο». Αφού καθορίσουμε το κείμενο, εκπαιδεύουμε αυτό το μοντέλο «word2vec» περνώντας το με το κείμενο και ορίζοντας το ελάχιστο πλήθος ίσο με «1». Τώρα, ονομάζουμε αυτό το εκπαιδευμένο μοντέλο 'word2vec.wv.most_similar('καταναλώνω')' και τροφοδοτούμε τη λέξη της οποίας οι πλησιέστερες ενσωματώσεις θέλουμε να ελέγξουμε ποιες σε αυτό το παράδειγμα είναι 'καταναλώνουν'. Για να ελέγξουμε τα αποτελέσματα της ενσωμάτωσης, εκτυπώνουμε την έξοδο από το μοντέλο:

από ως έθνος μοντέλα εισαγωγή Word2Vec
κείμενο = [ [ 'κουνέλι' , 'έχει' , 'δόντια' ] ]
μοντέλο = Word2Vec ( κείμενο , min_count = 1 )
παρόμοια_ενσωμάτωση = μοντέλο. wv . περισσότερα_παρόμοια ( 'κουνέλι' )
Τυπώνω ( παρόμοια_ενσωμάτωση )

Σε αυτό το παράδειγμα, δημιουργούμε την ενσωμάτωση λέξης για ένα κείμενο χρησιμοποιώντας το μοντέλο 'word2vec' για να ελέγξουμε την ομοιότητά τους ως προς το περιβάλλον και αυτό μπορεί να φανεί στο απόσπασμα που επισυνάπτεται προηγουμένως, το οποίο είναι η έξοδος του κώδικα που ελέγχει για παρόμοιες ενσωματώσεις της λέξης «καταναλώνω».

Παράδειγμα 2: Ενσωμάτωση της πλησιέστερης αναζήτησης μέσω του μοντέλου BERT

Υπάρχουν τα προεκπαιδευμένα μοντέλα επεξεργασίας φυσικής γλώσσας που μπορούν να χρησιμοποιηθούν για τον υπολογισμό της ομοιότητας μεταξύ των κειμένων, καθώς μπορούν να κατανοήσουν και να μάθουν τη σχέση συμφραζομένων μεταξύ των λέξεων. Το BERT είναι ένα από τα προεκπαιδευμένα γλωσσικά μοντέλα από τους «transformers_sentence» και μπορεί να μάθει τις ομοιότητες μεταξύ των κειμένων. Για να βρούμε την ομοιότητα μεταξύ των κειμένων, πρέπει πρώτα να συντονίσουμε αυτό το μοντέλο με το κείμενο ή τις προτάσεις.

Μόλις γίνει αυτό, μπορούμε να χρησιμοποιήσουμε αυτό το μοντέλο για να μάθουμε τις ενσωματώσεις. Στη συνέχεια, μπορούμε να υπολογίσουμε την ομοιότητα μεταξύ των κειμένων χρησιμοποιώντας τη συνάρτηση «ομοιότητα συνημιτόνου». Εφαρμόζουμε αυτό το παράδειγμα στην ηλεκτρονική πλατφόρμα Python που είναι το «google colab». Για να ρυθμίσουμε με ακρίβεια το μοντέλο, φορτώνουμε το μοντέλο (BERT). Για το σκοπό αυτό, πρώτα εγκαθιστούμε και εισάγουμε το 'SentenceTransformers'. Στη συνέχεια, φορτώνουμε το μοντέλο από το προεκπαιδευμένο μοντέλο του χρησιμοποιώντας το SentenceTransformer. Για να φορτώσουμε το μοντέλο, καλούμε το SentenceTransformer και το μοντέλο BERT συνολικά ως '$SentenceTransformer('bert-base-nli-mean-tokens')', όπου καθορίζουμε το όνομα του προεκπαιδευμένου μοντέλου BERT στην παράμετρο εισόδου και τότε το αποθηκεύουμε στη μεταβλητή “BERTmodel”.

Αφού ολοκληρώσουμε τη φόρτωση αυτού του μοντέλου, καθορίζουμε τώρα τα τέσσερα κείμενα, το καθένα αποτελούμενο από μία πρόταση για να ελέγξουμε την ομοιότητα μεταξύ τους. Αφού καθορίσουμε τα κείμενα για παράδειγμα, δημιουργούμε τώρα τις ενσωματώσεις για αυτό το κείμενο. Δημιουργούμε ξεχωριστά τις ενσωματώσεις για κάθε κείμενο χρησιμοποιώντας τη συνάρτηση 'encode'.

Ονομάζουμε τη συνάρτηση κωδικοποίησης με το πρόθεμα του μοντέλου BERT ως 'BERTmodel.encoding ()'. Στη συνέχεια περνάμε το «κείμενο» και το «μέγιστο μήκος» που καθορίσαμε να είναι ίσο με «512» στις παραμέτρους αυτής της συνάρτησης. Ονομάζουμε αυτή τη συνάρτηση κωδικοποίησης σε καθένα από τα κείμενα και μετατρέπει το κείμενο σε ενσωματώσεις.

Τώρα, χρησιμοποιούμε καθεμία από αυτές τις ενσωματώσεις και τις αντικαθιστούμε στη συνάρτηση ομοιότητας συνημιτόνου για να βρούμε την ομοιότητα μεταξύ αυτών των ενσωματώσεων. Η συνάρτηση ομοιότητας συνημιτόνου χρησιμοποιείται ευρέως σε όλες τις εργασίες επεξεργασίας φυσικής γλώσσας για ταξινομήσεις και ομαδοποίηση κειμένων/εγγράφων.

Για να βρούμε την ομοιότητα μεταξύ αυτών των ενσωματώσεων, χρησιμοποιούμε τη συνάρτηση ομοιότητας συνημιτόνου και αντικαθιστούμε την τιμή της ενσωματωμένης πρότασης με τον δείκτη '0' και την άλλη ενσωματωμένη πρόταση με τον δείκτη '1 έως 3' για να ελέγξουμε την ομοιότητα της πρότασης 0 με τις άλλες 3 προτάσεις. Οι τιμές εξόδου της συνάρτησης ομοιότητας συνημιτόνου κυμαίνονται από -1 έως 1. Εδώ, το 1 λέει ότι οι δύο ενσωματώσεις είναι παρόμοιες και το -1 λέει ότι οι δύο ενσωματώσεις δεν είναι παρόμοιες. Επισυνάψαμε το απόσπασμα κώδικα που δείχνει τη μέθοδο υλοποίησης της συνάρτησης ομοιότητας συνημιτόνου χρησιμοποιώντας τις τέσσερις ενσωματώσεις προτάσεων που μόλις δημιουργήσαμε στα παραδείγματα χρησιμοποιώντας το προεκπαιδευμένο μοντέλο BERT.

!pip install sentence_transformers
προτάσεις = [
'Τέσσερα χρόνια πριν, το μπουκάλι ήταν ακόμη γεμάτο και .',
«Η σκυλίτσα ονειρεύτηκε τη φυγή από το κλουβί και στο δρόμο που είδε τη φίλη της να πηγαίνει».
'Το άτομο έπαιζε με μέδουσες για πολλούς μήνες.',
«Βρήκε ένα σαλιγκάρι στην ντουλάπα του.»]
από πρόταση_μετασχηματιστές εισαγωγή SentenceTransformer
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
sentence_embeddings = Bertmodel.encode(προτάσεις)
πρόταση_ενσωματώσεις.σχήμα
από το sklearn.metrics.pairwise import cosine_similarity
#calcul=ing συνημιτονική ομοιότητα για την πρόταση 0:
συνημίτονο_ομοιότητα(
[sentence_embeddings[0]],
πρόταση_ενσωματώσεις[1:])

Ο πίνακας στην έξοδο εμφανίζει την τιμή ομοιότητας της «πρότασης 0» με τις άλλες τρεις προτάσεις, π.χ. 1, 2 και 3.

συμπέρασμα

Συζητήσαμε τις μεθόδους για να βρούμε την ομοιότητα μεταξύ των ενσωματώσεων. Δείξαμε δύο διαφορετικά παραδείγματα για την αναζήτηση της πλησιέστερης αντιστοίχισης της ενσωμάτωσης χρησιμοποιώντας το μοντέλο gensim 'word2vec' και το προεκπαιδευμένο μοντέλο BERT.