Est-ce que quelqu'un a réussi à créer une énorme fonction de recherche/remplacement/extrait de code de travail qui échange des bigrams connus dans une base de données?Comment faire un remplacement/tokenization à grande échelle dans R tm_map gsub à partir d'une liste?
Voici un exemple. Je suis capable de faire des remplacements de pseudos-twosies mais je veux vraiment tirer parti d'un lexique connu d'environ 800 termes que je veux trouver-remplacer pour les transformer en unités de mots avant la génération de DTM. Par exemple, je souhaite transformer "Google Analytics" en "google-analytics".
Je sais que c'est théoriquement possible; Essentiellement, une liste de mots de passe personnalisés fait presque la même chose, sauf sans le remplacement. Et il semble stupide d'avoir juste 800 gsubs.
Voici mon code actuel. Toute aide/pointeur/URL/RTFM serait grandement appréciée.
mystopwords <- read.csv(stopwords.file, header = FALSE)
mystopwords <- as.character(mystopwords$V1)
mystopwords <- c(mystopwords, stopwords())
# load the file
df <- readLines(file.name)
# transform to corpus
doc.vec <- VectorSource(df)
doc.corpus <- Corpus(doc.vec)
# summary(doc.corpus)
## Hit known phrases
docs <- tm_map(doc.corpus, content_transformer(gsub), pattern = "Google Analytics", replacement = "google-analytics")
## Clean up and fix text - note, no stemming
doc.corpus <- tm_map(doc.corpus, content_transformer(tolower))
doc.corpus <- tm_map(doc.corpus, removePunctuation,preserve_intra_word_dashes = TRUE)
doc.corpus <- tm_map(doc.corpus, removeNumbers)
doc.corpus <- tm_map(doc.corpus, removeWords, c(stopwords("english"),mystopwords))
doc.corpus <- tm_map(doc.corpus, stripWhitespace)