Извлечение синонимов (похожих слов) из текста с использованием BERT и NMSLIB 🔥

Извлечение синонимов с использованием BERT и NMSLIB

Подход к извлечению похожих или синонимичных слов из нескольких рядов текста с использованием BERT и NMSLIB.

Иллюстрация Камила Сипена

Мы начнем с токенизации текста на отдельные слова, так как нам нужны однословные результаты. Затем мы будем использовать BERT (семантические трансформеры) для встраивания наиболее часто встречающихся слов, а затем мы будем использовать NMBLIB, чтобы получить наиболее близкие совпадения для каждого из них. Мы будем использовать набор данных твитов из Twitter, чтобы найти похожие слова внутри него.

ПРИМЕЧАНИЕ – В этой статье мы ищем похожие слова или синонимы внутри всего набора данных. Поэтому мы возьмем все строки и извлечем наиболее часто встречающиеся существительные и будем работать с ними в целом. Не будет понятия строк. Кроме того, полученные слова не обязательно будут идеально заменяемыми синонимами, а просто похожими словами, которые могут или не могут быть прямыми заменами в предложении. Например, мы получим что-то вроде «превосходство» и «качество» или «soundcloud» и «spotify».

Очистка твитов

Мы начинаем с очистки данных. Я удаляю стоп-слова и числа, а также привожу текст к нижнему регистру.

код для очистки текста

Создание списка слов из всех твитов

После того, как мы очистили каждый твит, мы токенизируем каждый твит на слова и создаем из них список.

Уменьшение списка слов

Так как у нас много слов, с которыми нужно работать, не имеет смысла находить похожие слова для всех из них. Поэтому я взял наиболее часто встречающиеся слова (10k) и далее отфильтровал только существительные.

создание списка слов

Создание векторных представлений слов