Слова, которые всегда встречаются в R - PullRequest
0 голосов
/ 16 апреля 2019

Я использую R, и в моем наборе данных есть текстовый столбец, и мне нужно знать, есть ли какой-нибудь способ узнать, какие слова всегда собираются вместе. как большинство двух слов или три слова ... и т. д.

Например:

Happy birthday to you 
Happy weekend 
Have a nice day
Be close 
Be smart 
Happy birthday 
It was a nice day
Happy birthday mama

Таким образом, результаты должны быть примерно такими:

Happy birthday  - freq 3 
Nice day - freq 2

1 Ответ

3 голосов
/ 16 апреля 2019

Похоже, что вам нужно создать би-граммы и подсчитать функции.Вот способ сделать с quanteda.


library(quanteda) 
text <- c("Happy birthday to you ", "Happy weekend ", "Have a nice day", 
          "Be close ", "Be smart ", "Happy birthday ", "It was a nice day", 
          "Happy birthday mama")
text %>% tokens() %>% 
  tokens_ngrams(n = 2, concatenator = " ") %>% dfm() %>% topfeatures()

## happy birthday         a nice       nice day    birthday to         to you       be smart 
##              3              2              2              1              1              1 
##  happy weekend         it was          was a         have a 
##              1              1              1              1 

Что он делает:

  1. Tokenize
  2. Создать биграммы (объединенные с одним пробелом))
  3. Создать матрицу будущего документа (как этого требует topfeatures)
  4. Подсчет наиболее частых функций
...