Esplorazione di NLP – Avviamento di NLP (Passo #2)

NLP Exploration - NLP Start (Step #2)

Se sei nuovo nella mia serie “Esplorando NLP”, ti prego di leggere il mio articolo introduttivo qui.

Esplorare e Padroneggiare NLP – Un viaggio nelle profondità

Ciao, sono Deepthi Sudharsan, una studentessa di terzo anno che frequenta il corso di laurea in Intelligenza Artificiale. Dato che sono già…

VoAGI.com

Recentemente, come parte di un processo di selezione, mi è stato chiesto di esplorare due domande e lungo il percorso ho imparato alcuni nuovi concetti. Ecco il mio resoconto delle due domande.

DOMANDA 1:

Foto di Claudio Schwarz su Unsplash

Abbiamo alcuni dati etichettati in Hindi e in inglese. Voglio sapere come ottenere etichette per contenuti in altre lingue. Prendiamo un esempio.

Osserva gli argomenti proposti in Hindu e in inglese. Ci sono categorie come “Intrattenimento”, “Governo”, “Salute” ecc. Molte di queste sono classificate (alcune a mano e altre da classificatori neurali profondi). Quindi, dato che abbiamo dati etichettati in inglese, posso usarli come addestramento per trovare, ad esempio, contenuti legati all’intrattenimento in Tamil o Kannada? I modelli multilingue possono essere di aiuto?

Ad esempio, diciamo che ho molti dati in Hindi e in inglese, cosa posso fare con questi dati in modo che in qualche modo possano aiutare a capire quali sono le etichette in altre lingue, come Tamil, Kannada, Telugu, ecc? Diciamo che prendo dati etichettati in Hindi/inglese e li traduco in Tamil. L’etichetta originale in inglese in Koo dice “Intrattenimento” e la traduco in Tamil. E diciamo che nessuno ha scritto questo contenuto sulla piattaforma, ma ci sono contenuti simili scritti sulla piattaforma? Aiuterà se prendo la versione tradotta da Koo, dall’inglese al Tamil? Non ci sono contenuti con questa etichetta in Tamil, ma ci sono contenuti simili a cui potrebbe essere correlata? È possibile?

I MIEI APPRENDIMENTI E LA MIA RICERCA:

È possibile prendere contenuti correlati alla categoria “பொழுதுபோக்கு” che significa “intrattenimento” in Tamil (e dato che non ci sono contenuti sulla categoria intrattenimento già presenti).

Possiamo utilizzare modelli multilingue come BERT. Possiamo persino eseguire la traduzione automatica e etichettare i dati e utilizzare tecniche come l’apprendimento a zero-shot (se non abbiamo alcun dato di addestramento, è possibile etichettare i dati utilizzando questa tecnica. È la tecnologia utilizzata da Google Translate per tradurre una frase da una lingua a un’altra). Supponiamo che tu voglia tradurre una frase in Tamil in una lingua africana. Non troverai mai un set di dati che contiene frasi in Tamil e le relative traduzioni in quella lingua africana. Tuttavia, con la tecnica di apprendimento a zero-shot, Google Translate può fare la traduzione. Pertanto, se abbiamo un modello multilingue, è possibile etichettare dati in un’altra lingua utilizzando tecniche come l’apprendimento a zero-shot, ecc.

Per trovare contenuti “correlati”, possiamo utilizzare word embeddings (ad esempio, l’approccio distribuzionale, Word2vec che può imparare le associazioni tra parole da un grande corpus, GloVe, ecc.). Per trovare word embeddings per corpora in lingue indiane, possono essere utilizzati word embeddings pre-addestrati come fastText, iNLTK, indicBERT, ecc. Possiamo utilizzare modelli di word embeddings pre-addestrati da librerie come HuggingFace. BERT è un esempio di un tale modello che può essere utilizzato poiché utilizza il concetto di similarità basata sul contesto. Con questo, possiamo trovare categorie e contenuti correlati.

DOMANDA 2:

Cortesia: https://www.techslang.com/definition/what-is-named-entity-recognition-ner/

Diciamo che prendiamo contenuti in hindi e li traduciamo in inglese e poi eseguiamo un riconoscitore di entità nominate su questo. Ma, come iNLTK, dobbiamo sviluppare i nostri riconoscitori di entità nominate per le lingue indiane. Identifica i nomi delle persone, luoghi e altre entità utilizzando i riconoscitori di entità nominate per le lingue indiane. Prendiamo la classificazione e il riconoscimento di entità nominate (NER) per il tamil come esempio.

I MIEI APPRENDIMENTI E RICERCHE:

I NER vengono utilizzati per identificare i nomi propri da un testo e classificarli in categorie appropriate a seconda del dominio (Generale, Cybersecurity, ecc.). Non tutti i nomi propri devono essere nomi propri, poiché ci sono entità come entità collettive, importi, date, ecc. Identificare i “nomi propri” utilizzando i NER ha alcuni svantaggi che devono essere affrontati durante la progettazione e lo sviluppo dei NER.

Il numero di nomi propri per frase è molto limitato. Quindi, se prendiamo un grande dataset, il numero di nomi propri sarà in larga maggioranza, il che significa che le parole che ricadono nella categoria “altro” saranno più dei nomi propri, portando a uno squilibrio dei dati enorme. Lo squilibrio può essere affrontato utilizzando l’apprendimento sensibile al costo, ecc. (L’oversampling per il corpus estremamente ampio non è fattibile).

Il problema successivo è l’ambiguità. Washington potrebbe essere un luogo o un nome di una persona. Ma questo può anche essere gestito comprendendo il contesto. A questo scopo, possiamo utilizzare RNN bidirezionali, LSTMs, HMM, campi casuali condizionali, ecc. I trasformatori, come BERT, che possono catturare il contesto/informazioni bidirezionali, possono essere utilizzati. Per la pre-elaborazione, possiamo utilizzare i POS tagger e quindi passare alla classificazione una volta completata la pre-elaborazione.

Passando al problema dello sviluppo dei NER per le lingue indiane (ad esempio, le lingue dravidiche), il problema che ostacola il processo è la mancanza di dati standard di oro o argento per le lingue dravidiche. Il vocabolario delle lingue dravidiche è più ampio dell’inglese e le lingue sono morfologicamente ricche. A causa della complessità della lingua, è difficile sviluppare NER accurati, rendendo il loro sviluppo un processo in corso.

Possiamo ancora convertire il testo nell’altra lingua in inglese e farlo passare attraverso un NER, anche se ciò sarebbe fattibile solo se la traduzione è sufficientemente accurata. Le entità come i nomi saranno uguali indipendentemente dalla lingua. “Curry” è “curry” sia in tamil che in inglese. Quindi, dobbiamo tradurre accuratamente il testo in tamil in inglese, per farlo passare attraverso un NER. Possiamo utilizzare modelli di traduzione di testo multilingue pre-addestrati per questo processo, anche se non sono garantiti risultati accurati per lingue con corpora di dimensioni ridotte. Quindi, saremo in grado di sviluppare efficientemente un NER per le lingue indiane se siamo in grado di raccogliere dati standard di oro e siamo in grado di tradurre in modo efficiente e comprendere accuratamente l’uso delle parole polisemiche.

Parti precedenti di questa serie:

Parte n. 1 : https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-1-e4ad0029694f