Как использовать биграммы и триграммы, используя аккуратный текст

Я пытаюсь использовать как биграмм, так и триграмму, используя тидитекст. Какой код я могу использовать для токена, чтобы искать 2 и 3 слова.

Это код для использования только биграмм:

library(tidytext)
library(janeaustenr)

austen_bigrams <- austen_books() %>%
  unnest_tokens(bigram, text, token = "ngrams", n = 2)

austen_bigrams

1 ответ

Решение

Если вы посмотрите на ?unnest_tokensэто говорит вам ... для параметров, передаваемых токенизатору Для нграмм это tokenizers::tokenize_ngramsи если вы посмотрите на его страницу помощи, он имеет n_min параметр, так что вы можете сделать

library(magrittr)
library(tidytext)
library(janeaustenr)

austen_bigrams <- austen_books() %>% 
    head(1000) %>%    # otherwise this will get very large
    unnest_tokens(bigram, text, token = "ngrams", n = 3, n_min = 2)

austen_bigrams
#> # A tibble: 19,801 x 2
#>                   book                bigram
#>                 <fctr>                 <chr>
#>  1 Sense & Sensibility             sense and
#>  2 Sense & Sensibility sense and sensibility
#>  3 Sense & Sensibility       and sensibility
#>  4 Sense & Sensibility    and sensibility by
#>  5 Sense & Sensibility        sensibility by
#>  6 Sense & Sensibility   sensibility by jane
#>  7 Sense & Sensibility               by jane
#>  8 Sense & Sensibility        by jane austen
#>  9 Sense & Sensibility           jane austen
#> 10 Sense & Sensibility      jane austen 1811
#> # ... with 19,791 more rows
Другие вопросы по тегам