2017-08-13 3 views
2

J'essaie d'utiliser à la fois un bigram et un trigramme en utilisant tidytext. Quel code puis-je utiliser pour que le jeton recherche 2 et 3 mots?Comment utiliser les bigrammes et les trigrammes en utilisant du texte propre

Ceci est le code pour l'utilisation bigrams seulement:

library(tidytext) 
library(janeaustenr) 

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

austen_bigrams 

Répondre

3

Si vous regardez ?unnest_tokens, il vous indique ... est des paramètres passés à la tokenizer. Pour ngrams, c'est tokenizers::tokenize_ngrams, et si vous regardez la page d'aide, il a un paramètre n_min, vous pouvez donc faire

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