Как получить похожие слова в предварительно обученном встраивании ELMO?
Как получить подобное слово для данного слова в предварительно обученном ELMO Embedding? Например: в Glove у нас есть glove_model.most_simil (), чтобы найти наиболее похожее слово и его вложение для любого данного слова. Точно так же у нас есть что-нибудь в ELMO?
1 ответ
В отличие от GloVe, который имеет отдельную запись для каждого слова из ограниченного словаря, ELMo вычисляет встраивание слов динамически, используя символьный CNN, поэтому теоретически ELMo должен иметь возможность обрабатывать неограниченный словарный запас. На практике он работает только со словами, с которыми он столкнулся во время обучения, и со словами, похожими на них, но он все же может получить вектор или произвольную строку.
Таким образом, нет смысла иметь метод, как у GloVe. Однако вы можете предварительно рассчитать векторы для интересующего вас словаря и самостоятельно выполнить поиск ближайшего соседа, например, используя scipy.spatial.cKDTree
,