Nieznane słowa w wyuczonym osadzaniu słów (Gensim) do użycia w Keras

Dec 19 2020

Trenuję osadzanie słów za pomocą GENSIM (word2vec) i używam wytrenowanego modelu w sieci neuronowej w KERAS. Problem pojawia się, gdy mam nieznane (spoza słownictwa) słowo, więc sieć neuronowa już nie działa, ponieważ nie może znaleźć wag dla tego konkretnego słowa. Myślę, że jednym ze sposobów rozwiązania tego problemu jest dodanie nowego słowa ( <unk>) do wstępnie wyuczonego osadzania słowa z zerową wagą (lub może losowymi wagami? Która jest lepsza?) Czy to podejście jest w porządku? Ponadto w przypadku osadzania tego słowa wagi nie są trenowane w tej sieci neuronowej.

Odpowiedzi

1 gojomo Dec 20 2020 at 04:17

Najbardziej typowe jest ignorowanie nieznanych słów. (Zastąpienie ich słowem wtyczki lub wektorem pochodzenia jest bardziej zniekształcające).

Możesz także rozważyć FastTextzamiast tego trenowanie trybu, który zawsze będzie syntetyzował jakiś wektor zgadywania dla słowa spoza słownictwa z wektorów znak-n-gramowych utworzonych podczas treningu. (Te wektory syntetyczne są często lepsze niż nic, zwłaszcza gdy słowo ma nakładające się rdzenie słów z pokrewnymi słowami - ale uzyskanie większej ilości danych szkoleniowych z przykładami wszystkich odpowiednich zastosowań jest lepsze, a ignorowanie rzadkich nieznanych słów nie jest takie złe).