Come cercare gli incorporamenti per la corrispondenza più vicina

Come Cercare Gli Incorporamenti Per La Corrispondenza Piu Vicina



Cercare gli incorporamenti per la corrispondenza più vicina significa trovare quegli incorporamenti che hanno il significato più vicino l'uno all'altro. Gli incorporamenti sono la rappresentazione vettoriale di una frase che viene fornita ai modelli linguistici come input per compiti specifici. Discuteremo qui il metodo e le tecniche che possono essere utilizzate per trovare gli incorporamenti simili.

Sintassi

Esistono molte tecniche e strumenti che possiamo utilizzare per trovare la differenza tra gli incorporamenti in base alla loro differenza in termini di somiglianza. I seguenti sono i metodi e la loro sintassi coinvolta che useremo per trovare le somiglianze di incorporamento.







Da quei punti menzionati, conosciamo i modelli che possiamo utilizzare per trovare la corrispondenza di somiglianza per gli incorporamenti. Ora impareremo a utilizzare ciascuno di questi modelli e ad implementare i singoli esempi su ciascuno di questi modelli.



Esempio 1: incorporamento della corrispondenza più vicina tramite incorporamenti di parole

Prima di implementare gli incorporamenti di parole per la corrispondenza di somiglianza, dobbiamo conoscere gli incorporamenti di parole. L'incorporamento di parole è il processo di conversione del testo nella forma di un vettore (valori numerici) poiché i nostri sistemi comprendono solo l'input sotto forma di cifre numeriche.



Esistono molti altri modi per eseguire questa attività che includono la codifica one-hot, ma utilizzeremo la parola incorporamenti. In questo modo, l'incorporamento viene appreso dai modelli della rete neurale (ad esempio word2vec o Glove) dai testi. Le parole sono mappate nello spazio vettoriale di dimensione superiore. Tutte quelle parole che sono simili nel contesto sono mappate ai punti più vicini. In questo modo, gli incorporamenti possono catturare le relazioni e le analogie tra le diverse parole nel testo.





Creiamo una parola incorporata per una frase. Per creare la parola incorporata, Python fornisce il framework 'gensim'. Gensim è un pacchetto di libreria che consente l'utilizzo del modello 'word2vec' che aiuta nella creazione degli incorporamenti. Per implementare l'incorporamento, per prima cosa ci assicuriamo di installare gensim sui nostri compilatori Python. Poi, dal gensim, importiamo il modello “word2vec”.

Il modello 'word2vec' è un tipo di algoritmo che utilizza solo due argomenti di input in cui il primo argomento richiede il testo o la frase di cui vogliamo creare l'incorporamento e il secondo argomento specifica il conteggio minimo che specifica il numero minimo di volte che un la parola è necessaria per apparire o essere visti.



Dopo aver importato il modello “word2vec”, specifichiamo il “testo”. Una volta specificato il testo, addestriamo questo modello 'word2vec' passandolo con il testo e impostando il conteggio minimo uguale a '1'. Ora, chiamiamo questo modello addestrato 'word2vec.wv.most_similar('consume')' e alimentiamo la parola di cui vogliamo controllare gli incorporamenti più vicini, che in questo esempio è 'consume'. Per verificare i risultati dell'incorporamento, stampiamo l'output dal modello:

da come nazione Modelli importare Parola2Vec
testo = [ [ 'coniglio' , 'ha' , 'denti' ] ]
modello = Parola2Vec ( testo , min_count = 1 )
simile_incorporamento = modello. wv . most_similar ( 'coniglio' )
stampa ( simile_incorporamento )

In questo esempio, creiamo l'incorporamento di parole per un testo utilizzando il modello 'word2vec' per verificarne la somiglianza in termini di contesto e che può essere visto nello snippet allegato in precedenza che è l'output del codice che controlla gli incorporamenti simili della parola “consumare”.

Esempio 2: incorporare la ricerca più vicina attraverso il modello BERT

Esistono modelli di elaborazione del linguaggio naturale pre-addestrati che possono essere utilizzati per calcolare la somiglianza tra i testi poiché possono comprendere e apprendere la relazione contestuale tra le parole. BERT è uno dei modelli linguistici pre-addestrati dai “sentence_transformers” e può apprendere le somiglianze tra i testi. Per trovare la somiglianza tra i testi, dobbiamo prima mettere a punto questo modello con il testo o le frasi.

Una volta fatto questo, possiamo usare questo modello per apprendere gli incorporamenti. Quindi, possiamo calcolare la somiglianza tra i testi usando la funzione 'somiglianza del coseno'. Implementiamo questo esempio sulla piattaforma Python online che è 'google colab'. Per mettere a punto il modello, carichiamo il modello (BERT). A tale scopo, prima installiamo e importiamo i 'SentenceTransformers'. Quindi, carichiamo il modello dal suo modello pre-addestrato usando SentenceTransformer. Per caricare il modello, chiamiamo SentenceTransformer e il modello BERT insieme come '$SentenceTransformer('bert-base-nli-mean-tokens')' dove specifichiamo il nome del modello pre-addestrato di BERT nel parametro di input e quindi lo salviamo nella variabile 'BERTmodel'.

Dopo aver finito di caricare questo modello, ora specifichiamo i quattro testi, ciascuno composto da una frase per verificare la somiglianza tra di loro. Una volta specificati i testi, ad esempio, ora creiamo gli incorporamenti per questo testo. Creiamo individualmente gli incorporamenti per ciascuno dei testi utilizzando la funzione 'codifica'.

Chiamiamo la funzione di codifica con il prefisso del modello BERT come 'BERTmodel.encoding ()'. Passiamo quindi il “testo” e la “lunghezza massima” che abbiamo fissato pari a “512” ai parametri di questa funzione. Chiamiamo questa funzione di codifica su ciascuno dei testi e converte il testo in incorporamenti.

Ora, utilizziamo ciascuno di questi incorporamenti e li sostituiamo nella funzione di somiglianza del coseno per trovare la somiglianza tra questi incorporamenti. La funzione di somiglianza del coseno è ampiamente utilizzata in tutte le attività di elaborazione del linguaggio naturale per classificazioni e raggruppamento di testi/documenti.

Per trovare la somiglianza tra queste incorporazioni, usiamo la funzione di somiglianza del coseno e sostituiamo il valore della frase incorporata con l'indice '0' e l'altra frase incorporata con l'indice 'da 1 a 3' per verificare la somiglianza della frase 0 con le altre 3 frasi. I valori di output della funzione di somiglianza del coseno vanno da -1 a 1. Qui, 1 indica che i due incorporamenti sono simili e -1 indica che i due incorporamenti non sono simili. Abbiamo allegato il frammento di codice che mostra il metodo per implementare la funzione di somiglianza del coseno utilizzando i quattro incorporamenti di frasi che abbiamo appena creato negli esempi utilizzando il modello BERT preaddestrato.

!pip installa frasi_trasformatori
frasi = [
'quattro anni prima, la bottiglia era addirittura piena e.',
'Il cane ha sognato la fuga dalla gabbia e nella strada dove vedeva passare la sua amica.',
'La persona ha giocato con le meduse per molti  mesi.',
'Ha trovato una lumaca nel suo guardaroba.']
da phrase_transformers import SentenceTransformer
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
frase_embeddings = Bertmodel.encode(frasi)
frase_embeddings.shape
da sklearn.metrics.pairwise importa cosine_similarity
# calcola=somiglianza del coseno per la frase 0:
coseno_somiglianza(
[frase_incorporamenti[0]],
frasi_incorporamenti[1:])

L'array nell'output mostra il valore di somiglianza della 'frase 0' con le altre tre frasi, ad es. 1, 2 e 3.

Conclusione

Abbiamo discusso i metodi per trovare la somiglianza tra gli incorporamenti. Abbiamo mostrato due diversi esempi per cercare la corrispondenza più vicina dell'incorporamento utilizzando il modello gensim 'word2vec' e il modello BERT preaddestrato.