Расстояние Метрика сходства

Цель этой статьи - проанализировать, насколько похожи два слова или термина друг на друга. Метрики расстояния - наиболее распространенные методы, которые можно использовать для определения сходства между словами. За это отвечает область под названием Сходство документа. для поиска сходств между предложениями или абзацами текста эта статья фокусируется только на отдельных словах или терминах. Стоит отметить, что эти методы можно использовать для проверки орфографии или автозаполнения слов предложений.

Расстояние Метрика сходства

Существует множество показателей расстояния, которые можно использовать для вычисления и измерения сходства между объектами текста. Мера d называется дистанционной метрикой подобия тогда и только тогда, когда удовлетворяет следующим кодификациям:

  • Расстояние между любыми двумя словами, например X и Y, всегда должно быть неотрицательным.
  • Расстояние между двумя словами всегда должно быть равно нулю, если и только если они идентичны.
  • Измерение расстояния всегда должно быть симметричным, расстояние между X и Y может быть равно расстоянию между Y и X
  • Мера расстояния должна удовлетворять свойству неравенства треугольника.

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

все меры сходства расстояния подобия не являются метриками расстояния подобия.

Функциональная инженерия

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

Представим себе следующую группу слов:

words = ['Similar', 'similares', 'iguales', 'parecidas', 'similaridad', 'isimral', 'similat', 'somiral']

Преобразование в вектор числовых значений с помощью векторизации символов

Преобразование в вектор числовых значений с помощью пакета векторизации символов:

Расстояние Хэмминга

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

Манхэттен Расстояние

Аналогично расстоянию Хэмминга, без подсчета количества несовпадающих символов и вычитания разницы между каждой парой символов в каждой позиции двух слов.

Евклидово расстояние

Это расстояние по кратчайшему прямому пути между двумя точками.

Расстояние Левенштейна или алгоритм Вагнера-Фишера

Это несколько похоже на расстояние Хэмминга, используется для измерения расстояния между двумя последовательностями слов на основе их различий. Короче говоря, это минимальное количество редакций, необходимых (удалений, замен или добавлений) для преобразования одного слова в другое, длина обоих слов не обязательно должна быть одинаковой.

Косинусное расстояние и косинусное подобие

Помните, что:

Сходство между двумя словами уменьшается, когда расстояние между их векторами увеличивается.

Сходство между двумя словами увеличивается, когда расстояние между их векторами уменьшается.

Если у нас есть два слова, представленные как векторы, используя их числовое представление (Сумка векторизации символов), косинусное подобие даст нам меру косинуса угла между векторами.

  • Угол, близкий к 0, означает, что косинусное сходство близко к 1, оба слова очень похожи.
  • Угол, близкий к 90, означает, что косинусное сходство близко к 0, оба слова не похожи.
  • Угол, близкий к 180, означает, что косинусное сходство близко к -1, оба слова не связаны.

Загляните в мой репозиторий GitHub для получения дополнительной информации о коде.

Резюме

  • Зеленый - первый вариант, желтый - второй, оранжевый - третий.
  • Хэмминг, согласен с первым вариантом, согласен со вторым вариантом.
  • Манхэттен, согласен с первым вариантом, не согласен со вторым и третьим вариантом.
  • Евклидов, согласен с первым вариантом, не согласен со вторым вариантом.
  • Левенштейн, согласен с первым вариантом и согласен со вторым вариантом.
  • Косинус, не согласен с первым вариантом.
  • В испанском языке слова «similares», «iguales» и «parecidas» имеют одинаковое значение, по этой причине методы, основанные на семантике, могут дать лучшие результаты в зависимости от намерений искателя.
  • Я бы порекомендовал прочитать книгу: Анализ текста с помощью Python, автор: Дипанджан Саркар.

Загляните в мой репозиторий GitHub для получения дополнительной информации о коде.

Больше контента на plainenglish.io