我有一个数据框,已在 R 中转换为整洁的文本格式,以消除停用词。我现在想将该数据框“整理”回其原始格式。
unnest_tokens 的相反/反向命令是什么?我在这个论坛上提出的另一个类似问题中检查了答案,我可以执行以下操作:
如果我想使用 purrr 中的 map 函数在经过整理的形式处理后将文本恢复为原始形式。
首先,让我们从原始文本转换为经过整理的格式。
library(tidyverse)
library(tidytext)
tidy_austen <- janeaustenr::austen_books() %>%
group_by(book) %>%
mutate(linenumber = row_number()) %>%
ungroup() %>%
unnest_tokens(word, text)
tidy_austen
#> # A tibble: 725,055 x 3
#> book linenumber word
#> <fctr> <int> <chr>
#> 1 Sense & Sensibility 1 sense
#> 2 Sense & Sensibility 1 and
#> 3 Sense & Sensibility 1 sensibility
#> 4 Sense & Sensibility 3 by
#> 5 Sense & Sensibility 3 jane
#> 6 Sense & Sensibility 3 austen
#> 7 Sense & Sensibility 5 1811
#> 8 Sense & Sensibility 10 chapter
#> 9 Sense & Sensibility 10 1
#> 10 Sense & Sensibility 13 the
#> # ... with 725,045 more rows
文字现在很整齐!但是我们可以把它弄乱,回到某种类似于它的原始形式的东西。我通常使用 tidyr 中的 nest,然后使用 purrr 中的一些 map 函数来解决这个问题。
nested_austen <- tidy_austen %>%
nest(word) %>%
mutate(text = map(data, unlist),
text = map_chr(text, paste, collapse = " "))
nested_austen
#> # A tibble: 62,272 x 4
#> book linenumber data
#> <fctr> <int> <list>
#> 1 Sense & Sensibility 1 <tibble [3 x 1]>
#> 2 Sense & Sensibility 3 <tibble [3 x 1]>
#> 3 Sense & Sensibility 5 <tibble [1 x 1]>
#> 4 Sense & Sensibility 10 <tibble [2 x 1]>
#> 5 Sense & Sensibility 13 <tibble [12 x 1]>
#> 6 Sense & Sensibility 14 <tibble [13 x 1]>
#> 7 Sense & Sensibility 15 <tibble [11 x 1]>
#> 8 Sense & Sensibility 16 <tibble [12 x 1]>
#> 9 Sense & Sensibility 17 <tibble [11 x 1]>
#> 10 Sense & Sensibility 18 <tibble [15 x 1]>
#> # ... with 62,262 more rows, and 1 more variables: text <chr>
如果我将其标记为 n 克,其中 n 可以是 2 或 3,请有人帮我更改上面的代码。
我想做的是:
第 1 步:将文本拆分为三元组
第 2 步:查看三元组,看看哪个有意义(这里我需要手动检查它,我只会替换那些对我有意义的)
步骤:3 将原文中的这些三元组替换为一个由_连接的单词
第 4 步:对二元组重复上述操作
第 5 步:然后再次标记化