Как я могу построить функцию, которая вычисляет косинусное сходство на языке R?

          ios d.0 d.1 d.2 d.3 d.4 d.5
1   190371877 HDa 2Pb   2 BxU BuQ Bve
2   190890807 HCK 2Pb   2  09   F   G
3   193999742 HDa 2Pb   2 1wL 1ye    
4   192348099 HDa 2Pb   2 2WP        
5   194907960 HDa 2Pb   2   Y   F   G
6   194306872 HDa 2Pb   2 2WP        
7   190571682 HDa 2Pb   2   i   F   C
8   195878080 HDa 2Pb   2   Y   F   G
9   195881580 HDa 2Pb   2   Y   F   G
10  193746161 HDa 2Pb   2 1wL     

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

library('lsa')
td = tempfile()
dir.create(td)
write( c("HDa","2Pb","2","BxU","BuQ","Bve"), file=paste(td, "D1", sep="/"))
write( c("HCK","2Pb","2","09","F","G"), file=paste(td, "D2", sep="/"))


myMatrix = textmatrix(td, minWordLength=1)
res <- lsa::cosine(myMatrix[,1], myMatrix[,2])
res
#0.3333

У меня есть матрица из 266 строк и 7 столбцов, как указано выше. Первый столбец - это идентификатор моего продукта, а остальные - окончательные теги продукта. Если я хочу иметь свою собственную функцию и дать 2 входа, один из них - это окончательный вектор тегов (например, c ("HDa", "2Pb", "2", "BxU", "BuQ", "Bve")) и другой - идентификатор продукта (ios). В результате я хочу видеть true или false (1 или 0) среди 8 лучших продуктов, которые наиболее похожи на вектор идентификатора продукта.

Может ли кто-нибудь дать мне подсказку о том, что я должен сделать для решения моей проблемы?


person Ozgur Alptekın    schedule 03.12.2015    source источник
comment
Что вы пробовали сами? Почему это не сработало? Первая подсказка - выбрать, какой язык использовать....   -  person Heroka    schedule 03.12.2015
comment
Я хочу использовать R для своей проблемы. Я только что смог сравнить 2 вектора, теперь я хочу создать функцию. Вот мои коды ниже библиотеки ('lsa') td = tempfile() dir.create (td) write ( c (HDa,2Pb,2,BxU,BuQ,Bve), file=paste(td, D1, sep=/)) write(c(HCK,2Pb,2,09,F,G), file=paste(td, D2, sep=/)) myMatrix = textmatrix(td, minWordLength=1) res=lsa::cosine(myMatrix[,1], myMatrix[,2]) res #0,3333   -  person Ozgur Alptekın    schedule 03.12.2015
comment
Вы хотите запустить в своей матрице функцию, которая даст вам в качестве вывода top8 ios на основе косинусного сходства?   -  person user2380782    schedule 09.12.2015