Każdy algorytm, który zajmuje się danymi tekstowymi, ma słownictwo. W przypadku word2vec słownictwo składa się ze wszystkich słów w korpusie wejściowym lub przynajmniej tych powyżej progu minimalnej częstotliwości.
Algorytmy zwykle ignorują słowa spoza ich słownictwa. Istnieją jednak sposoby na przeformułowanie problemu, tak aby w zasadzie nie było żadnych słów spoza słownictwa.
Pamiętaj, że słowa są po prostu „tokenami” w word2vec. Mogą to być ngramy lub litery. Jednym ze sposobów zdefiniowania słownictwa jest powiedzenie, że każde słowo, które występuje co najmniej X razy, znajduje się w słowniku. Następnie do Twojego słownika dodawane są najczęstsze „sylaby” (ngramy liter). Następnie dodajesz poszczególne litery do swojego słownictwa.
W ten sposób możesz zdefiniować dowolne słowo jako jedno z nich
- Słowo w twoim słowniku
- Zestaw sylab w twoim słowniku
- Połączony zestaw liter i sylab w Twoim słowniku
Korpus treningowy musi zawierać wszystkie słowa, których chcesz znaleźć podobieństwo.
źródło
Word2Vec i FastText zawodzą, jeśli słowa tego nie ma w słowniku. Zgłasza błąd. Daje listę wyników dla powiązanych słów. Ale niewidoczne słowo nie będzie w słowniku, prawda? Jak więc rozwiązuje problem niewidocznych słów?
źródło