Я рекомендую использовать замену регулярных выражений для очистки текста перед тем, как превратить его в корпус.Хитрость в вашем тексте состоит в том, чтобы выяснить, где вы хотите удалить переводы строк и где вы хотите их сохранить.Я догадываюсь из твоего вопроса, что ты хочешь удалить вхождения "50", но также, возможно, объединить слова, разделенные дефисами и новой строкой.Вы, вероятно, также хотите сохранить две новые строки между текстами?
Многие пользователи предпочитают более простой интерфейс пакета stringr , но я всегда имел тенденцию использовать stringi (на котором строится stringr ).Он допускает векторизованную замену, поэтому вы можете передать ему вектор сопоставляемых шаблонов и замен в одном вызове функции.
library("stringi")
sample2 <- stri_replace_all_regex(sample, c("\\-\\n+", "\\n+", "50"), c("", "\n", "\n"),
vectorize_all = FALSE
)
cat(sample2)
## Hello my name is Christina.
## Sometimes we get some weirdness
## Hello my name is Michael,
## sometimes we get some weird,
## and odd, results--
## I want to replace the
##
## s
Здесь вы сопоставляете "\\n"
как регулярное выражение pattern , но в качестве (буквального) замены . *1017*.
используйте только "\n"
. В замененном тексте перед последними "s" стоят две новые строки, потому что a) уже был одинпосле "s" в "50s" и b) мы добавили один, заменив 50 новым "\n"
.
Теперь вы можете создать корпус с quanteda::corpus(sample2)
.