Я хочу измерить сходство между предложениями. Могу ли я использовать sklearn и евклидово расстояние для измерения семантического сходства между предложениями. Я также читал о косинусном сходстве. Может ли кто-нибудь объяснить разницу между этими измерениями и каким подходом лучше всего использовать?
Измеряет ли евклидово расстояние семантическое сходство?
Ответы (1)
Есть несколько вариантов расчета семантического сходства. Это зависит от того, чего вы хотите достичь и какие ресурсы хотите использовать.
Вы имеете в виду смысловое сходство, поскольку в словах «лодка плывет по морю» аналогично «корабль плывет по озеру»?
Вложения слов, такие как word2vec, создают векторы для каждого слова. Векторы слов располагаются в векторном пространстве таким образом, что «слова, которые имеют общий контекст в корпусе, расположены в непосредственной близости друг от друга в пространстве» (Википедия). .
Евклидово или косинусное расстояние может определять расстояние между двумя векторами слов. Это часто рассматривается как семантическое сходство между словами. Чтобы измерить расстояние или сходство между предложениями, вы можете использовать расстояние перемещения слов, которое реализуется с помощью gensim. word mover distance вычисляет расстояние от одного набора векторов слов (предложения) до другого с помощью того, что называется расстоянием земного движителя.
Другой способ вычислить схожесть предложений - doc2vec. См. Также: Как чтобы вычислить схожесть предложений, используя word2vec модель gensim с python