Использование Bert и косинусного сходства для идентификации похожих документов - PullRequest
0 голосов
/ 29 марта 2020

у нас есть новостной веб-сайт, где мы должны сопоставлять новости конкретному пользователю.

Мы должны использовать для сопоставления только текстовую информацию пользователя, как, например, интересы пользователя или краткое описание о них.

Я думал об угрозе как текстовой информации пользователя и текст новости как документ и найти сходство документа.

Таким образом, я надеюсь, что если в своем профиле я напишу такие предложения: Мне понравилась речь президента в Чике go в прошлом году , и в новостях говорится о: Трамп собирается выступить в Иллинойсе У меня может быть матч (пример чисто случайный).

Сначала я попытался встроить свои документы с помощью TF-IDF, а затем попытался kmeans, чтобы выяснить, есть ли что-то, что имеет смысл, но мне не очень нравятся результаты.

Я думаю, что проблема связана с плохим внедрением, которое дает мне TF-IDF.

Таким образом, я думал об использовании встраивания BERT для извлечения встраивания моих документов, а затем использовал косинусное сходство, чтобы проверить сходство двух документов (документа о профиле пользователя и новости).

Это подход, который может иметь смысл? Берт можно использовать для извлечения вложенных предложений, но есть способ встроить целый документ?

Что бы вы мне посоветовали?

Спасибо

1 Ответ

0 голосов
/ 30 марта 2020

BERT обучается парам предложений, поэтому вряд ли можно обобщать для более длинных текстов. Кроме того, BERT требует квадратичной c памяти с длиной текста, использование слишком длинных текстов может привести к проблемам с памятью. В большинстве реализаций он не принимает последовательности длиннее 512 подслов.

Обеспечение эффективной работы предварительно обученных трансформеров для длинных текстов является активной областью исследований, вы можете взглянуть на статью под названием Докберт чтобы понять, что люди пытаются. Но потребуется некоторое время, пока не будет красиво упакованного рабочего решения.

Существуют и другие методы для встраивания документов, например Gensim реализует doc2ve c. Тем не менее, я все еще придерживаюсь TF-IDF.

TF-IDF обычно очень чувствителен к предварительной обработке данных. Вам, безусловно, нужно удалить стоп-слова, во многих языках это также окупается, чтобы делать лемматизацию. Учитывая специфику c домена ваших текстов, вы также можете попытаться расширить стандартный список стоп-слов словами, которые часто встречаются в новостях. Вы можете добиться дальнейших улучшений, обнаруживая и сохраняя вместе именованные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...