У меня есть набор данных, который выглядит следующим образом:
library(tidyverse)
data <- tibble(id = 1:10,
vectors = list(rnorm(25)))
# A tibble: 25 x 2
id vectors
<int> <list>
1 1 <dbl [25]>
2 2 <dbl [25]>
3 3 <dbl [25]>
4 4 <dbl [25]>
5 5 <dbl [25]>
6 6 <dbl [25]>
7 7 <dbl [25]>
8 8 <dbl [25]>
9 9 <dbl [25]>
10 10 <dbl [25]>
Я хотел бы использовать этот набор данных, чтобы найти косинусное сходство, где каждая строка представляет документ.Функция cosine
из пакета lsa
кажется хорошим / простым способом сделать это, однако мне нужно, чтобы каждый документ был представлен в виде столбца.Я хотел бы просто сделать data %>% t()
, чтобы получить желаемый результат, но это не работает.Я также попытался "распространить" столбец списка сначала, используя unest
и spread
.Я также пытался flatten
безрезультатно.Первая строка моего желаемого результата будет выглядеть примерно так:
1 2 3 4 5 6 7 8 9 10
0.1 0.3 0.7 0.3 0.1 0.1 0.3 0.7 0.3 0.1
Если есть функция из другого пакета, которая обрабатывает данные в этом формате, я бы во всех случаях просто использовал ее вместо этого, хотя на этом этапе мне бы хотелосьчтобы понять это с точки зрения любопытства.Я смотрел на R - список к фрейму данных , но я не уверен, как я могу применить это к этой ситуации.
Предпосылкой для этого является то, что я выполнил doc2vecв Python с Gensim, но делать с нашей средой в работе, если я хочу построить что-то интерактивное для клиента, это должно быть в R.