Как мне разрешить ошибку нижнего индекса для GloVe в R? - PullRequest
0 голосов
/ 17 июня 2020

Я пишу функцию с for l oop, которая продолжает возвращать ошибку «in cos_sim [a, document]: нижний индекс вне границ» при запуске »all.gloveterms (merged [, 4], merged [, 3]) ".
Примером первого элемента объединенного [, 4] является" угловая скобка ", а объединенного [, 3] -" Simpson Strong-T ie 12-Gauge Angle "
Это мой код:

all.gloveterms <- function (queries, docs) 
{
  n <- length(queries)
  m <- length(docs)
  queryscores <- c(0)
  scores <- c(0)
  for(i in 1:n){
    query <- removePunctuation(queries[i])
    querywords <- unique(tolower(query))
    a <- intersect(querywords, dimnames(cos_sim)[[1]])
    p <- length(querywords)
    for(j in 1:m){
      document <- removePunctuation(docs[j])
      docwords <- unique(tolower(document))
      maxval <- max(cos_sim[a, document])
      queryscores <- append(queryscores, unlist(maxval))
      print(a)
      print(document)

      #cannot seem to get these print statements to work inside the for-loop either..

      scores <- append(scores, max(unlist(queryscores)))
      assign("querywords", NULL, envir = .GlobalEnv)
      flush.console()
    }
  }
  y <- as.integer(0)
  score <- sum(unlist(scores))/n
  feature[i] <- if (length(score)) score else y
}  

С сегодняшнего утра я пробовал множество различных решений. Я подумал, что одно из слов, которые я использую в своей функции косинуса, может отсутствовать в моем списке слов cos_sim, но я считаю, что функция пересечения, образующая «a», решает эту проблему.
Тогда я подумал, что, может быть, я не понимал, как работают входные «запросы» и «документы», и я попытался разбить вход [i] на разные строки, но это тоже не решило проблему, поэтому я удалил его из своего кода.

Я застрял в этой проблеме в течение последних нескольких дней, и мне очень трудно понять, что я делаю не так.
Сообщите мне, есть ли еще какие-то данные, которые вам нужны, чтобы помочь мне вне! :)

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