| name | r-nlp-text |
| description | R text mining with tidytext, tm, quanteda. Use for tokenization, TF-IDF, document-term matrices. |
R Text Mining
Text processing and analysis.
tidytext
library(tidytext)
library(dplyr)
df %>% unnest_tokens(word, text)
df %>%
unnest_tokens(word, text) %>%
anti_join(stop_words)
df %>%
unnest_tokens(word, text) %>%
count(word, sort = TRUE)
df %>%
unnest_tokens(word, text) %>%
count(document, word) %>%
bind_tf_idf(word, document, n)
df %>% unnest_tokens(bigram, text, token = "ngrams", n = 2)
dtm <- df %>%
unnest_tokens(word, text) %>%
count(document, word) %>%
cast_dtm(document, word, n)
quanteda
library(quanteda)
corpus <- corpus(texts)
tokens <- tokens(corpus, remove_punct = TRUE, remove_numbers = TRUE)
tokens <- tokens_tolower(tokens)
tokens <- tokens_remove(tokens, stopwords("en"))
tokens <- tokens_wordstem(tokens)
dfm <- dfm(tokens)
dfm <- dfm_trim(dfm, min_termfreq = 5, min_docfreq = 2)
dfm_tfidf <- dfm_tfidf(dfm)
topfeatures(dfm, 20)
kwic(tokens, pattern = "economy", window = 5)
tm
library(tm)
corpus <- Corpus(VectorSource(texts))
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stemDocument)
corpus <- tm_map(corpus, stripWhitespace)
dtm <- DocumentTermMatrix(corpus)
dtm <- removeSparseTerms(dtm, 0.99)
tdm <- TermDocumentMatrix(corpus)
findFreqTerms(dtm, lowfreq = 10)
findAssocs(dtm, "economy", corlimit = 0.3)
text2vec
library(text2vec)
it <- itoken(texts, tokenizer = word_tokenizer, progressbar = FALSE)
vocab <- create_vocabulary(it)
vocab <- prune_vocabulary(vocab, term_count_min = 5)
vectorizer <- vocab_vectorizer(vocab)
dtm <- create_dtm(it, vectorizer)
tfidf <- TfIdf$new()
dtm_tfidf <- fit_transform(dtm, tfidf)