Добрый день! Позволяет ли библиотека решать на претренированной модели (RuBert) задачу предсказания следует ли второе предложение за первым? Не удалось найти среди конфигурационных файлов что-то подобное. Спасибо!
Привет!
Конфига в чистом виде под эту задачу нет, но этот функционал все равно доступен.
В модели bert_as_summarizer есть необходимый метод: https://github.com/deepmipt/DeepPavlov/blob/master/deeppavlov/models/bert/bert_as_summarizer.py#L145
Им можно воспользоваться следующим образом:
# установить зависимости, по умолчанию поставит cpu версию tensorflow
! python -m deeppavlov install bert_as_summarizer
from deeppavlov import build_model, configs
model = build_model(configs.summarization.bert_as_summarizer, download=True)
# вызвать нужный метод у модели
model.pipe[-1][-1]._get_nsp_predictions(['Hey', 'Hey'], ['Hello', 'Goodbye'])
этот метод вернет вероятности того, что предложение Hello
следует за Hey
и Goodbye
за Hey
Спасибо, код сработал!
Однако обнаружил другую особенность: попробовал проверить на двух, как мне кажется, простых примерах значения вероятностей, которые возвращает метод, и получил, что вероятности практически не отличаются. Пробовал разные предложения, результаты были те же.
Пример:
text1 = ‘Привет, как твои дела?’
text2 = ‘Привет, у меня все хорошо’
text3 = ‘В 2019 году лигу чемпионов выиграл английский клуб’
model.pipe[-1][-1]._get_nsp_predictions([text1, text1], [text2, text3])
Получаю:
array([0.49546054, 0.47375688], dtype=float32)