Как искать встраивания для ближайшего совпадения

Kak Iskat Vstraivania Dla Blizajsego Sovpadenia



Поиск вложений для ближайшего соответствия означает нахождение тех вложений, которые имеют наиболее близкое значение друг к другу. Вложения — это векторное представление предложения, которое передается языковым моделям в качестве входных данных для конкретных задач. Мы обсудим здесь метод и приемы, которые можно использовать для нахождения подобных вложений.

Синтаксис

Существует множество методов и инструментов, которые мы можем использовать, чтобы найти разницу между вложениями на основе их различия с точки зрения сходства. Ниже приведены методы и их сложный синтаксис, которые мы будем использовать для поиска сходства встраивания.







Из этих упомянутых моментов мы знаем модели, которые мы можем использовать, чтобы найти совпадение подобия для вложений. Теперь мы научимся использовать каждую из этих моделей и реализуем отдельные примеры для каждой из этих моделей.



Пример 1. Встраивание ближайшего совпадения с помощью встраивания Word

Прежде чем мы реализуем вложения слов для сопоставления подобия, нам нужно знать о вложениях слов. Встраивание слов — это процесс преобразования текста в форму вектора (числовых значений), поскольку наши системы понимают ввод только в виде числовых цифр.



Есть несколько других способов выполнить эту задачу, которые включают однократное кодирование, но мы будем использовать встраивание слов. Таким образом, встраивание изучается моделями нейронной сети (например, word2vec или Glove) из текстов. Слова отображаются в многомерное векторное пространство. Все те слова, которые похожи по контексту, сопоставляются с ближайшими точками. Таким образом, вложения могут фиксировать отношения и аналогии между разными словами в тексте.





Давайте создадим вложение слова для предложения. Для создания встраивания слов Python предоставляет структуру «gensim». Gensim — это пакет библиотеки, который позволяет использовать модель «word2vec», которая помогает в создании вложений. Чтобы реализовать встраивание, мы сначала обязательно устанавливаем gensim на наши компиляторы Python. Затем из gensim импортируем модель «word2vec».

Модель «word2vec» — это своего рода алгоритм, который использует только два входных аргумента, где первый аргумент требует текст или предложение, вложение которого мы хотим создать, а второй аргумент задает минимальное количество, которое указывает минимальное количество раз, которое слово должно появиться или быть увиденным.



После импорта модели «word2vec» указываем «текст». Как только мы указываем текст, мы затем обучаем эту модель «word2vec», передавая ее с текстом и устанавливая минимальное количество равным «1». Теперь мы называем эту обученную модель «word2vec.wv.most_similar(‘consume’)» и передаем слово, ближайшее вложение которого мы хотим проверить, в этом примере это «consume». Чтобы проверить результаты встраивания, мы печатаем вывод модели:

от как нация модели Импортировать Word2Vec
текст '=' [ [ 'кролик' , 'имеет' , 'зубы' ] ]
модель '=' Word2Vec ( текст , min_count '=' 1 )
подобное_встраивание '=' модель. wv . наиболее_похожий ( 'кролик' )
Распечатать ( подобное_встраивание )

В этом примере мы создаем вложение слова для текста, используя модель «word2vec», чтобы проверить их сходство с точки зрения контекста, и это можно увидеть в ранее прикрепленном фрагменте, который является результатом кода, проверяющего похожие вложения. слова «потреблять».

Пример 2. Внедрение ближайшего поиска с помощью модели BERT

Существуют предварительно обученные модели обработки естественного языка, которые можно использовать для вычисления сходства между текстами, поскольку они могут понимать и изучать контекстные отношения между словами. BERT — это одна из предварительно обученных языковых моделей от «sentence_transformers», которая может изучать сходство между текстами. Чтобы найти сходство между текстами, мы сначала должны точно настроить эту модель на текст или предложения.

Как только это будет сделано, мы можем использовать эту модель для изучения вложений. Затем мы можем вычислить сходство между текстами, используя функцию «косинусного сходства». Мы реализуем этот пример на онлайн-платформе Python, которая называется «google colab». Для точной настройки модели мы загружаем модель (BERT). Для этого мы сначала устанавливаем и импортируем «SentenceTransformers». Затем мы загружаем модель из ее предварительно обученной модели с помощью SentenceTransformer. Чтобы загрузить модель, мы вызываем SentenceTransformer и модель BERT вместе как «$SentenceTransformer('bert-base-nli-mean-tokens')», где мы указываем имя предварительно обученной модели BERT во входном параметре и затем мы сохраняем это в переменной «BERTmodel».

После того, как мы закончили загрузку этой модели, мы теперь указываем четыре текста, каждый из которых состоит из одного предложения, чтобы проверить сходство между ними. Например, после того, как мы укажем тексты, теперь мы создаем вложения для этого текста. Мы индивидуально создаем вложения для каждого текста с помощью функции «кодировать».

Мы вызываем функцию кодирования с префиксом модели BERT как «BERTmodel.encoding()». Затем мы передаем «текст» и «максимальную длину», которые мы установили равными «512», в параметры этой функции. Мы вызываем эту функцию кодирования для каждого из текстов, и она преобразует текст во вложения.

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

Чтобы найти сходство между этими вложениями, мы используем функцию сходства косинуса и заменяем значение встроенного предложения индексом «0», а другое встроенное предложение индексом «от 1 до 3», чтобы проверить сходство предложения 0 с другими 3 предложения. Выходные значения функции подобия косинуса находятся в диапазоне от -1 до 1. Здесь 1 говорит, что два вложения похожи, а -1 говорит, что два вложения не похожи. Мы прикрепили фрагмент кода, который показывает метод реализации функции подобия косинуса с использованием четырех вложений предложений, которые мы только что создали в примерах с использованием предварительно обученной модели BERT.

!pip установить предложение_трансформеры
предложения = [
'Четыре года назад бутылка была даже полной и .',
'Собаке приснился побег из клетки и на улице, где она увидела, что идет ее друг.',
«Человек много месяцев играл с медузами .»,
«Он нашел улитку в своем шкафу».]
из предложения_трансформеров импортировать SentenceTransformer
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
предложение_embeddings = Bertmodel.encode (предложения)
предложение_embeddings.shape
из sklearn.metrics.pairwise импортировать cosine_similarity
# вычислить косинусное сходство для предложения 0:
cosine_similarity(
[предложение_встраивания[0]],
вложение_предложения[1:])

Массив в выходных данных отображает значение сходства «предложения 0» с тремя другими предложениями, например. 1, 2 и 3.

Заключение

Мы обсудили методы поиска сходства между вложениями. Мы показали два разных примера поиска ближайшего соответствия встраивания с использованием модели gensim «word2vec» и предварительно обученной модели BERT.