Вопрос или проблема
Как реализовать STS (Семантическое Текстовое Сходство) на неразмеченном наборе данных? Столбец набора данных содержит Unique_id
, text1
(содержит абзац) и text2
(содержит абзац).
Пример: Представление столбца: Unique_id | Text1 | Text2
Unique_id 0
Text1
публичное шоу приостановления лицензии тренера Рейнольдса. портрет сэра Джошуа Рейнольдса портрет омаи будет публично представлен после опасений, что он останется скрытым из-за спорной экспортной ситуации.
Text2
затем по просьбе антивандальной комиссии Испании. Штраф был значительно меньше ожидаемой суммы в около 22 000 фунтов или даже приостановки его лицензии тренера.
Unique_id 1
Text1
Гронинг. Жерве уже начал писать сценарий, но держит его в строжайшей тайне. Он также напишет для себя роль в эпизоде. У меня есть общая идея, но это самый страшный проект в моей карьере.
Text2
Филадельфия заявила, что они не нашли достаточных доказательств для поддержки заявлений женщины об инциденте, который якобы произошел в январе 2004 года. Женщина сообщила об обвинениях канадским властям в прошлом месяце. Адвокат Косби Уолтер М. Филлипс младший сказал, что комик был доволен решением.
В указанной проблеме я должен сравнить два абзаца текстов, то есть Text1
& Text2
, и затем сравнить семантическое сходство между двумя текстами. Если они семантически схожи, то будет напечатано ‘1’, если нет, то ‘0’
Любая ссылка на реализацию или предложения!
Заранее спасибо!
Вы можете использовать заранее обученный эмбеддер и искать расстояния между эмбеддингами. Есть LASER от Facebook. Это неофициальный пакет pypi
, он заменяет некоторые внутренние инструменты, используемые для токенизации и BPE-кодировок. Я использовал его много раз, и он работает отлично. Он кодирует ваш текст в виде числового вектора из 1024 элементов. Затем вы можете просто вычислить метрику расстояния между эмбеддингами, например Евклидово расстояние.
Попробуйте универсальный энкодер предложений от Google, посмотрите Colab версию UC и просто замените пример запроса на ваши два запроса, и он выдаст оценку сходства между любыми двумя предложениями. Это лучший инструмент для расчета семантического текстового сходства.
Ответ или решение
Вопрос о том, как выполнить Semantic Textual Similarity (STS) на ненаметенном наборе данных с помощью глубокого обучения, предполагает использование подходов, позволяющих вычислять семантическую близость текстов на основе их содержимого. Рассмотрим шаги, которые необходимо предпринять для решения данной задачи, учитывая данные, представленные в виде столбцов: Unique_id
, text1
и text2
.
Шаги для реализации Semantic Textual Similarity (STS)
1. Выбор предварительно обученной модели
Первым шагом является выбор подходящей модели для генерации эмбеддингов текстов. К числу популярных моделей относятся:
- LASER от Facebook: предлагает многозадачные эмбеддинги для различных языков, что делает его подходящим для работы с текстами на разных языках.
- Google Universal Sentence Encoder: эффективный инструмент для вычисления семантической близости между предложениями, доступный в Google Colab, который обеспечивает простой способ интеграции и быстрое получение результатов.
2. Подготовка данных
Необходимо загрузить данные, содержащие столбцы text1
и text2
, представляющие два текста для сравнения. Убедитесь, что текст прошел все нужные стадии предобработки, такие как удаление пунктуации и ненужных символов.
3. Получение эмбеддингов
Используйте выбранную модель для получения эмбеддингов каждого текста. Эти эмбеддинги представляют собой числовые векторы фиксированной длины. Например, модель LASER генерирует 1024-элементные числовые векторы.
4. Вычисление сходства
Рассчитайте семантическое сходство между двумя текстами, применяя подходящие меры дистанции:
- Косинусное сходство: популярный метод, который измеряет косинус угла между двумя векторами в многомерном пространстве. Чем ближе значение к 1, тем более семантически близки тексты.
- Евклидова дистанция: может использоваться для оценки различий между векторами.
5. Интерпретация результата
На основе вычисленного сходства назначьте метку (например, ‘1’ для сходных текстов и ‘0’ для несходных) в зависимости от заранее заданного порогового значения.
Заключение
Предложенные шаги предоставляют практическое руководство по реализации задачи STS на неразмеченном наборе данных, сохраняя баланс между глубиной анализа и легкостью внедрения. Использование современных предварительно обученных моделей позволяет минимизировать потребность в обширных вычислительных ресурсах, предоставляя при этом высокую точность в оценке семантической близости.