Gestire parole sconosciute nelle attività di modellazione del linguaggio usando LSTM


11

Per un'attività di elaborazione del linguaggio naturale (NLP) si usano spesso i vettori word2vec come incorporamento per le parole. Tuttavia, potrebbero esserci molte parole sconosciute che non vengono catturate dai vettori word2vec semplicemente perché queste parole non vengono visualizzate abbastanza spesso nei dati di addestramento (molte implementazioni usano un conteggio minimo prima di aggiungere una parola al vocabolario). Questo può essere il caso in particolare del testo, ad esempio Twitter, in cui le parole sono spesso errate.

Come dovrebbero essere gestite parole così sconosciute quando si modella un task NLP come la previsione del sentiment usando una rete a breve termine (LSTM)? Vedo due opzioni:

  1. Aggiunta di un token "parola sconosciuta" al dizionario word2vec.
  2. Eliminare queste parole sconosciute in modo tale che LSTM non sappia nemmeno che la parola era nella frase.

Qual è il modo preferito di gestire queste parole?


2
Ho risposto a una domanda simile in precedenza; mentre la domanda non era specifica per gli LSTM, sembra che la maggior parte di ciò che ho scritto lì sarebbe applicabile: stats.stackexchange.com/questions/163005/…
fnl

Risposte:


12

L'opzione 1 (aggiunta di un token di parola sconosciuta) è il modo in cui la maggior parte delle persone risolve questo problema.

L'opzione 2 (eliminazione delle parole sconosciute) è una cattiva idea perché trasforma la frase in un modo non coerente con il modo in cui è stato formato l'LSTM.

Un'altra opzione che è stata recentemente sviluppata è quella di creare una parola incorporando al volo per ogni parola usando una rete neurale convoluzionale o un LSTM separato che elabora i caratteri di ogni parola uno alla volta. Usando questa tecnica il tuo modello non incontrerà mai una parola per la quale non è possibile creare un incorporamento.


Ciao Aaron, puoi darmi un paio di puntatori (documenti o codice) che usano la tua terza opzione?
Profezie,



1
Un altro recente (EMNLP 2017) arxiv.org/abs/1707.06961 con codice github.com/yuvalpinter/Mimick
jayelm

-1

Mappare parole rare su significa semplicemente eliminare quelle parole e sostituirle con il token nei dati di addestramento. Pertanto il nostro modello non è a conoscenza di parole rare. È una forma grezza di livellamento perché il modello presuppone che il token non si verifichi mai in realtà in dati reali o meglio, ma ignora del tutto questi n-grammi.


4
Si prega di aggiungere sostanzialmente a questa risposta. Ad esempio, sostenere l'affermazione secondo cui "l'aggiunta di un token di parole sconosciute è l'opzione migliore".
Jim,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.