У меня есть data.frame
с номерами недель, week
, и текстовыми отзывами, text
. Я хотел бы рассматривать переменную week
как свою группирующую переменную и запускать для нее базовый текстовый анализ (например, qdap::polarity
). Часть текста обзора состоит из нескольких предложений; однако меня волнует только полярность недели «в целом».
Как связать вместе несколько текстовых преобразований перед запуском qdap::polarity
и придерживаться его предупреждающих сообщений? Я могу объединить преобразования с помощью tm::tm_map
и tm::tm_reduce
-- есть ли что-то похожее в qdap
? Каков правильный способ предварительной обработки/преобразования этого текста перед запуском qdap::polarity
и/или qdap::sentSplit
?
Подробнее в следующем коде/воспроизводимом примере:
library(qdap)
library(tm)
df <- data.frame(week = c(1, 1, 1, 2, 2, 3, 4),
text = c("This is some text. It was bad. Not good.",
"Another review that was bad!",
"Great job, very helpful; more stuff here, but can't quite get it.",
"Short, poor, not good Dr. Jay, but just so-so. And some more text here.",
"Awesome job! This was a great review. Very helpful and thorough.",
"Not so great.",
"The 1st time Mr. Smith helped me was not good."),
stringsAsFactors = FALSE)
docs <- as.Corpus(df$text, df$week)
funs <- list(stripWhitespace,
tolower,
replace_ordinal,
replace_number,
replace_abbreviation)
# Is there a qdap function that does something similar to the next line?
# Or is there a way to pass this VCorpus / Corpus directly to qdap::polarity?
docs <- tm_map(docs, FUN = tm_reduce, tmFuns = funs)
# At the end of the day, I would like to get this type of output, but adhere to
# the warning message about running sentSplit. How should I pre-treat / cleanse
# these sentences, but keep the "week" grouping?
pol <- polarity(df$text, df$week)
## Not run:
# check_text(df$text)