как найти похожие предложения / фразы в R? - PullRequest
6 голосов
/ 26 января 2012

Например, у меня есть миллиарды коротких фраз, и я хочу, чтобы их группы были похожими.

> strings.to.cluster <- c("Best Toyota dealer in bay area. Drive out with a new car today",
                        "Largest Selection of Furniture. Stock updated everyday" , 
                        " Unique selection of Handcrafted Jewelry",
                        "Free Shipping for orders above $60. Offer Expires soon",
                        "XXXX is where smart men buy anniversary gifts",
                        "2012 Camrys on Sale. 0% APR for select customers",
                        "Closing Sale on office desks. All Items must go" 
                         )

предположим, что этот вектор состоит из сотен тысяч строк. Есть ли в R пакет для кластеризации этих фраз по смыслу? или кто-то может предложить способ ранжировать «похожие» фразы по значению для данной фразы.

Ответы [ 2 ]

7 голосов
/ 26 января 2012

Вы можете просматривать свои фразы как «пакеты слов», то есть строить матрицу (матрицу «term-document»), с одной строкой на фразу, одним столбцом на слово, с 1, если слово встречается в фразеи 0 в противном случае.(Вы можете заменить 1 некоторым весом, который будет учитывать длину фразы и частоту слов).Затем вы можете применить любой алгоритм кластеризации.Пакет tm может помочь вам построить эту матрицу.

library(tm)
library(Matrix)
x <- TermDocumentMatrix( Corpus( VectorSource( strings.to.cluster ) ) )
y <- sparseMatrix( i=x$i, j=x$j, x=x$v, dimnames = dimnames(x) )  
plot( hclust(dist(t(y))) )
1 голос
/ 26 января 2012

Может быть, глядя на этот документ: http://www.inside -r.org / HOWTO / горно-твиттер-авиакомпания-потребительское настроение может помочь, он использует R и смотрит на настроения рынка для авиакомпаний, использующих твиттер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...