У меня есть уникальный набор слов в символьном векторе (который был «stemmed»), и я хочу знать, сколько из них появилось в строке.Подсчитайте количество слов в одном списке, которые появляются в строке
Вот что я до сих пор:
library(RTextTools)
string <- "Players Information donation link controller support years fame glory addition champion Steer leader gang ghosts life Power Pellets tables gobble ghost"
wordstofind <- c("player","fame","field","donat")
# I created a stemmed list of the string
string.stem <- colnames(create_matrix(string, stemWords = T, removeStopwords = F))
Я знаю, что следующий шаг, вероятно, включает в себя grepl("\\bword\\b,value")
или некоторое использование регулярных выражений, но я не уверен, что самый быстрый вариант в данном случае.
Вот мои критерии:
- Я должен сделать это много раз, так что время так быстро, как это возможно, вызывает беспокойство.
- Он должен соответствовать всему слову («es» не должен соответствовать «тесту»).
Любой толчок в правильном направлении будет отличным.
Результат должен быть 3, так что это не работает, но может быть просто, что вы использовали 'string', а не vector. – Optimus
Как вы получаете 3? В приведенном примере единственное точное и целочисленное совпадение - слава. –
Извините, я не был ясен в объяснении, где я остановил строку для сравнения. 'sum (wordstofind% in% unlist (string.stem))' Это работает, и похоже, что ваше решение быстрее моего. См. Мой ответ ниже. – Optimus