Объяснение примера Spark word2vec и как получить сходство между строками


person LonsomeHell    schedule 05.06.2017    source источник


Ответы (1)


Выходной вектор (с использованием преобразования набора данных) представляет собой представление документа (возможно, предложения или предложений), который предоставляется модели. Итак; по сути, этот вывод представляет собой комбинацию всех векторных представлений каждого из слов в данном документе (скорее всего, простая векторная сумма).

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

Чтобы вычислить сходство между двумя строками как своего рода нет. вам нужно будет реализовать некоторую вариацию метода findSynonyms. Текущая реализация генерирует cosVec, соответствующий входной строке, а затем пытается найти слово Vec, которое ближе всего к этому vec.

Я не уверен в том, может ли он создавать только положительные векторы и вообще требуется/(имеет ли смысл) генерировать только положительные векторы.

person sourabh    schedule 07.06.2017
comment
Word2VecModel transform() возвращает векторное представление предложений, усредняющее векторные представления слов. Чтобы вычислить сходство между предложениями Имеет ли смысл усреднение косинусного сходства? Или поиск другой меры сходства с использованием представления плотных векторов имеет больше смысла? - person LonsomeHell; 07.06.2017
comment
Усреднение не косинусного сходства. По сути, это: SentenceVector = Avg векторного представления всех слов, образующих это предложение... представление слова в виде вектора - это то, что модель изучает. Для сходства предложений вы бы необходимо найти косинус между векторами, выводимыми моделью. - person sourabh; 07.06.2017