Access spaCy Маскированная языковая модель - PullRequest
0 голосов
/ 24 мая 2019

Начиная с версии 2.1, у spaCy есть языковая модель в стиле BERT (LM). Он предсказывает слова-слова вместо слов, поэтому я собираюсь использовать слова и слова здесь взаимозаменяемо.

Мне нужно взять предложение с замаскированным словом и список слов, и ранжировать слова по вероятности их появления в замаскированном слоте. В настоящее время я использую BERT для этого (аналогично bert-синтаксис ). Я хотел бы видеть, приемлемо ли выполнение spaCy для этой задачи. Между этим файлом и этим Я почти уверен, что можно что-то построить. Однако мне кажется, что я хочу проникнуть внутрь библиотеки глубже, чем хотелось бы.

Существует ли простой способ взаимодействия с замаскированной языковой моделью spaCy?

1 Ответ

1 голос
/ 01 июня 2019

Это в основном недостаток приближения LMAO.Я на самом деле не осознавал этого, пока на меня не указал кто-то из /r/machinelearning subreddit.

Поскольку мы предсказываем вектор, мы действительно можем предсказать только одну точку в векторном пространстве.,Это действительно отличается от предсказания распределения по словам.Представьте, что у нас был разрыв, такой как The __ of corn. Скажем, хорошим распределением наполнителей для этого было бы {kernel, ear, piece}.Векторы для этих слов не особенно близки, так как алгоритм word2vec строит векторное пространство на основе всех контекстов слов, и слова являются взаимозаменяемыми только в этом контексте.В подавляющем большинстве случаев использования piece слово ear было бы очень плохой заменой.

Если вероятные наполнители не находятся близко друг к другу в векторном пространстве, не будет никакого способа длямодель LMAO для возврата вам ответа, соответствующего этому набору слов.

Если вам нужен только 1-лучший ответ, алгоритм в spacy pretrain имеет хорошие шансы дать его вам.Но если вам нужно распределение, аппроксимация нарушается, и вы должны использовать что-то вроде BERT.

...