Мой вопрос, как правило, касается разложения по сингулярным значениям (SVD) и, в частности, латентного семантического индексирования (LSI).
Скажем, у меня есть который содержит частоты 5 слов для 7 документов.
A = matrix(data=c(2,0,8,6,0,3,1,
1,6,0,1,7,0,1,
5,0,7,4,0,5,6,
7,0,8,5,0,8,5,
0,10,0,0,7,0,0), ncol=7, byrow=TRUE)
rownames(A) <- c('doctor','car','nurse','hospital','wheel')
Я получаю матрицу разложение для с помощью SVD: .A = U ⋅ D ⋅ V T
s = svd(A)
D = diag(s$d) # singular value matrix
S = diag(s$d^0.5 ) # diag matrix with square roots of singular values.
дает матрицу подобия слов , где строки представляют разные слова.
WordSim = s$u %*% S
дает матрицу сходства документов, где столбцы представляют разные документы.
DocSim = S %*% t(s$v)
Вопросов:
- Алгебраически, почему и DocSimS имеют слов / документов? Есть ли интуитивное объяснение?D уплотнительное гр S я м S
- Основываясь на приведенном примере R, можем ли мы сделать какие-либо интуитивные наблюдения за количеством слов / подобием, просто взглянув на и (без использования косинусного сходства или коэффициента корреляции между строками / столбцами)?
D=svd(A)$d
в R возвращает квадратные корни ненулевых собственных значений, поэтому я использовал . У меня нет проблем с аспектом уменьшения размерности, и я понимаю, что аппроксимация A более низкого ранга может быть сформирована так, как они описывают. Я нашел ответ по этой ссылке, частично отвечает на мой вопрос.