Это проблема с нахождением id
s, соответствующих word
s, из списка из 5 слов для каждого id
.
У нас есть длинная структура данных из проекта интеллектуального анализа текста с id
и word
. Каждый идентификатор группы состоит из 5 слов. Мы хотели бы измерить, какие word
с одного идентификатора находятся в другом id
. то есть, какие идентификаторы похожи на основе этих слов.
Мы пытались использовать цикл for для [строки, столбца], но, похоже, есть лучший способ.
library(tidyverse)
data <- tibble(id = factor(c(1234, 1234, 1234, 1234, 1234,
4523, 4523, 4523, 4523, 4523,
0984, 0984, 0984, 0984, 0984)),
word = c("hello", "today", "the", "monkey", "boy",
"go", "me", "key", "wind", "hello",
"monkey", "yes", "no", "wild", "quit"))
output <- matrix(1, length(data$id), length(data$id))
for (j in 1 : length(data$id)) {
for (i in 1 : length(data$id)) {
output[i,j] <- data[i,2] == data[j,2]
}
}
output
## from the output we see that 4 and 11 match.
data[4,]
data[11,]
Моя конечная цель - получить матрицу с id
на id
, а пересечения - это количество подходящих слов (0-5).
Это желаемый результат:
# 1234 4523 0984
# 1234 5 1 1
# 4523 1 5 0
# 0984 1 0 5
Приветствуются любые предложения по полной реорганизации структуры данных или решений с этой структурой. Спасибо!