Документы о сходстве косинусов и сложенный TDM в LSA в R - PullRequest
0 голосов
/ 15 сентября 2018

Мне нужно вычислить косинусное сходство документов, включенных в пространство LSA, с новым TDM, сложенным в том же пространстве.Это набросок моего кода:

## First data set to create space

data1<-read.csv(file="path/Minus500.csv",header=TRUE)

corpus.train = Corpus(VectorSource(data1$Text))

tdm.train = TermDocumentMatrix(
  corpus.train,
  control = list(
    removePunctuation = TRUE,
    stopwords = stopwords(kind = "en"),
    stemming = FALSE,
    removeNumbers = TRUE, 
    tolower = TRUE,
    weighting = weightTfIdf,
    bounds=list(global=c(5,Inf)))
)

lsa.train = lsa(tdm.train, dimcalc_share())


## Second data set Best500

data2<-read.csv(file="path/Best500.csv",header=TRUE)

corpus.test = Corpus(VectorSource(data2$Text))

tdm.test = TermDocumentMatrix(
    corpus.test,
    control = list(
      removePunctuation = TRUE,
      stopwords = stopwords(kind = "en"),
      stemming = FALSE,
      removeNumbers = TRUE, 
      tolower = TRUE,
      weighting = weightTfIdf,
      dictionary=rownames(tdm.train)
    )
)

test_matrix = as.matrix(tdm.test)

## Fold second tdm in the space

projected.test = fold_in(docvecs = test_matrix, LSAspace = lsa.train)

myDocs2 <- rownames(lsa.train$dk)

Вот проблема и то, чего я пытаюсь достичь:

multicos(myDocs2,projected.test,tvectors=lsa.train$dk,breakdown=FALSE)

Полученное сообщение об ошибке:

[1] NA
Warning message:
In multicos(myDocs2, projected.test, tvectors = lsa.train$dk, breakdown = FALSE) :
  no element of y found in rownames(tvectors)

Большое спасибо за помощь!

...