Поводження з невідомими словами в задачах моделювання мови за допомогою LSTM


11

Для завдання з обробки природних мов (NLP) часто використовуються вектори word2vec як вбудовування для слів. Однак може бути багато невідомих слів, які не фіксуються векторами word2vec просто тому, що ці слова бачать недостатньо часто в навчальних даних (у багатьох реалізаціях використовується мінімальна кількість, перш ніж додати слово до словника). Особливо це може бути з текстом, наприклад, з Twitter, де слова часто неправильно написані.

Як слід поводитися з такими невідомими словами при моделюванні завдання NLP, такого як прогнозування настроїв за допомогою довготривалої короткострокової (LSTM) мережі? Я бачу два варіанти:

  1. Додавання лексеми "невідомого слова" до словника word2vec.
  2. Видалення цих невідомих слів таким чином, що LSTM навіть не знає, яке слово було у реченні.

Який переважний спосіб поводження з цими словами?


2
Я відповів на подібне питання раніше; хоча питання тоді не було специфічним для LSTM, здається, що більшість того, що я написав там, було б так само застосовно: stats.stackexchange.com/questions/163005/…
fnl

Відповіді:


12

Варіант 1 (додавання лексеми невідомого слова) - це те, як більшість людей вирішують цю проблему.

Варіант 2 (видалення невідомих слів) є поганою ідеєю, оскільки він перетворює речення таким чином, що не відповідає тому, як навчався LSTM.

Ще один варіант, який нещодавно був розроблений, - створити слово, яке вбудовується на льоту, для кожного слова, використовуючи звивисту нейронну мережу або окремий LSTM, який обробляє символи кожного слова по одному. Використовуючи цю техніку, ваша модель ніколи не зустріне слово, яке не може створити вбудовування.


Привіт Аарон, ти можеш дати мені кілька покажчиків (паперів або код), які використовують ваш третій варіант?
Пророцтва



1
Ще один останній (EMNLP 2017) arxiv.org/abs/1707.06961 з кодом github.com/yuvalpinter/Mimick
jayelm

-1

Зіставлення рідкісних слів просто означає, що ми видаляємо ці слова і замінюємо їх лексемою в навчальних даних. Таким чином, наша модель не знає жодного рідкісного слова. Це сира форма згладжування, оскільки модель передбачає, що маркер ніколи насправді не з’явиться у реальних даних, а ще краще, але ці ігрові n-грами взагалі ігноруються.


4
Будь ласка, додайте істотно до цієї відповіді. Наприклад, створіть резервну копію твердження про те, що "додати маркер невідомого слова - найкращий варіант".
Джим
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.