R - парсинг ключевых слов из udpipe RAKE по статье обратно в фрейм данных - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь использовать RAKE в udpipe, чтобы сгенерировать список из 25 токенов RAKE на документ в кадре данных и записать эти токены (плюс простой str_count) обратно в кадр данных.Я создал цикл for для обработки, но вместо этого я записываю один и тот же результат в каждую строку, а не в разные результаты для каждой строки.

Установленные и используемые пакеты: udpipe, dplyr, stringi, stringr, data.таблица.

annotation$length <- nchar(annotation$token)

annotation <- annotation %>% filter(length >= 3 )

counter <- textdf$doc_id

for (i in counter) {
  subannotation <- annotation %>% filter(doc_id == i)
  stats <-
    keywords_rake(
      x = subannotation,
      term = "token", #token or lemma
      group = "doc_id",
      ngram_max = 3,
      n_min = 1,
      relevant = subannotation$upos %in% c("NOUN", "VERB", "ADV", "ADJ")
    )
  stats <- stats %>% top_n(25,rake)
  checktopics <- paste(stats$keyword, collapse =  " ")
  textdf$topics <- checktopics
  textdf$score <- str_count(checktopics,"cheese")

}

Предполагаемый результат должен быть примерно таким:

id score topics
1  12    chocolate chocoholics cheese
2  1     plastic waste cheese
3  3     neuroscientists data system

Текущий результат:

id score topics
1  3     neuroscientists data system
2  3     neuroscientists data system
3  3     neuroscientists data system

Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 10 февраля 2019

Соответствующее исправление - добавить указатель на строку в цикле.Сумасшедший.

textdf$topics[i] <- checktopics
textdf$score[i] <- str_count(checktopics,"cheese")
...