【发布时间】:2018-12-19 16:57:45
【问题描述】:
我有一个如下所示的数据集:
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]>
我想使用这个数据集来找出每一行代表一个文档的余弦相似度。 lsa 包中的 cosine 函数似乎是一种很好/简单的方法,但是我需要将每个文档表示为一列。我想简单地做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 - list to data frame,但我不确定如何将其应用于这种情况。
背景是我在 python 中使用 gensim 执行了 doc2vec,但在工作中对我们的环境做了,如果我想为客户端构建一些交互式的东西,它需要在 R 中。
【问题讨论】:
标签: r list cosine-similarity doc2vec