Я бы собрал весь текст в один столбец, прежде чем начать его чистить:
некоторые примеры данных
Обычно легче продемонстрировать проблему, когда вы предоставляете некоторые данные, которые выглядят как ваши.Я использую произвольный текст для имитации того, как я думаю, что ваши данные выглядят.
library(tm)
library(stringi)
library(dplyr)
library(tidyr)
my_con <- data.frame(
col1 = stri_rand_lipsum(nparagraphs = 3, start_lipsum = FALSE),
col2 = stri_rand_lipsum(nparagraphs = 3, start_lipsum = FALSE),
col3 = stri_rand_lipsum(nparagraphs = 3, start_lipsum = FALSE),
stringsAsFactors = FALSE
)
подготовка данных
Два простых преобразования, чтобы получить данные в более удобном формате.Проверьте ?mutate
из dplyr
и ?pivot_longer
из tidyr
, если вы не знакомы с командами.
# add id and use tidyr to get text in one column
my_con_clean <- my_con %>%
mutate(id = seq_along(col1)) %>% # add id column to data.frame
pivot_longer(col1:col3, "column", values_to = "Verba")
my_con_clean
#> # A tibble: 9 x 3
#> id column Verba
#> <int> <chr> <chr>
#> 1 1 col1 Praesent dignissim fames lectus nec enim lacus sem aenean t…
#> 2 1 col2 Cubilia per fringilla. At ante, vulputate et morbi, tortor.…
#> 3 1 col3 Nisi duis gravida egestas ipsum maximus metus. Eget eget pr…
#> 4 2 col1 Elit purus suspendisse scelerisque diam sapien, nullam, int…
#> 5 2 col2 Purus nunc sit et, tortor a. Porttitor maecenas libero viva…
#> 6 2 col3 Urna sed amet elementum faucibus himenaeos urna elit at et.…
#> 7 3 col1 Massa ac ligula ut nunc nam tincidunt. Amet in, in proin od…
#> 8 3 col2 Duis volutpat, bibendum. Turpis faucibus vulputate velit ri…
#> 9 3 col3 Sed aenean eu eros arcu parturient vestibulum justo congue …
Теперь вы можете использовать тот же конвейер, что и раньше, но для всего текста
con_corpus <- Corpus(VectorSource(my_con$Verba))
corpus_clean <- tm_map(con_corpus, tolower)
corpus_clean <- tm_map(corpus_clean, removeNumbers)
corpus_clean <- tm_map(corpus_clean, removeWords, stopwords('english'))
corpus_clean <- tm_map(corpus_clean, removePunctuation)
corpus_clean <- tm_map(corpus_clean, stripWhitespace)
# corpus_clean <- tm_map(corpus_clean, trim)
Создан в 2019-09-20 пакетом Представить (v0.3.0)