У меня есть кадр данных, который выглядит немного как это:Как суммировать (dplyr) colums путем получения 10 лучших биграмм (ngrams) для каждой группы?
df <- structure(list(group = structure(c(1L, 1L, 2L, 2L), .Label = c("1",
"2"), class = "factor"), text = structure(c(2L, 1L, 4L, 3L), .Label = c("hello hi four five",
"hi hello one two three", "one three four five", "one two three"
), class = "factor")), .Names = c("group", "text"), row.names = c(NA,
-4L), class = "data.frame")
df
group text
1 1 hi hello one two three
2 1 hello hi four five
3 2 one two three
4 2 one three four five
Теперь я хочу подвести итог этого кадра данных путем извлечения сверху (максимум 10) bibrams в каждой группе.
Нечто подобное (make_bigrams мнимая функция):
df <- group_by(df, group)
summarise(df, make_bigrams(text))
Результат должен быть что-то вроде этого:
group text
1 1 hi_hello, hi_one, hi_two_etc.
2 2 one_three, one_two, etc.
Я попытался функции, как Tokenizer из RWeka, но никто не сделал ват Я намеревался. У кого-нибудь есть идея? Спасибо заранее!
cf http://tm.r-forge.r-project.org/faq.html#Bigrams. Тем не менее, вы, кажется, хотите, чтобы каждое совместное происхождение, а не только bigrams (например, hi_one в первой группе: два слова никогда не встречаются один за другим). – scoa
Правильно, мне нужно каждое совместное происшествие. Я проверю ссылку. – rdatasculptor
Я все попробовал 'ngrams (words (x), 2)', но каким-то образом я не смог заставить эту функцию работать должным образом в контексте summary() (dplyr). – rdatasculptor