Если у вас уже есть список многословных слов и вы хотите вычислить их частоту в тексте, вы можете использовать str_extract_all
:
text <- "Environmental Research Environmental Research Environmental Research study science energy, economics, agriculture, ecology, and biology"
library(stringr)
str_extract_all(text, "[Ee]nvironmental [Rr]esearch")
[[1]]
[1] "Environmental Research" "Environmental Research" "Environmental Research"
Если вы хотите знать, как часто встречается многословие, вы можете сделайте это:
length(unlist(str_extract_all(text, "[Ee]nvironmental [Rr]esearch")))
[1] 3
Если вы заинтересованы в извлечении всех составных слов сразу, вы можете поступить следующим образом:
Сначала определите вектор со всеми составными словами:
multiwords <- c("[Ee]nvironmental [Rr]esearch", "study science energy")
Затем используйте paste0
, чтобы свернуть их в одну строку альтернативных шаблонов, и используйте str_extract_all
в этой строке:
str_extract_all(text, paste0(multiwords, collapse = "|"))
[[1]]
[1] "Environmental Research" "Environmental Research" "Environmental Research" "study science energy"
Чтобы получить частоты многословных слов, вы можете использовать table
:
table(str_extract_all(text, paste0(multiwords, collapse = "|")))
Environmental Research study science energy
3 1