Aggiornamento:Come rimuovere esattamente la punteggiatura quando si utilizza R con il pacchetto tm
penso che io possa avere una soluzione per risolvere questo problema, solo per aggiungere un codice: dtms = removeSparseTerms(dtm,0.1)
Sarà rimuovere il carattere sparse nel corpus. Ma penso che questo sia SOLO una soluzione alternativa, aspetto ancora la risposta degli esperti!
Recentemente sto imparando il text mining in R utilizzando il pacchetto tm. E ho un'idea di disegnare una nuvola di parole sulle parole del mio programma ABAP nella massima frequenza. Quindi ho scritto un programma R per realizzare questo.
library(tm)
library(SnowballC)
library(wordcloud)
# set path
path = system.file("texts","abapcode",package = "tm")
# make corpus
code = Corpus(DirSource(path),readerControl = list(language = "en"))
# cleanse text
code = tm_map(code,stripWhitespace)
code = tm_map(code,removeWords,stopwords("en"))
code = tm_map(code,removePunctuation)
code = tm_map(code,removeNumbers)
# make DocumentTermMatrix
dtm = DocumentTermMatrix(code)
#freqency
freq = sort(colSums(as.matrix(dtm)),decreasing = T)
#wordcloud(code,scale = c(5,1),max.words = 50,random.order = F,colors = brewer.pal(8, "Dark2"),rot.per = 0.35,use.r.layout = F)
wordcloud(names(freq),freq,scale = c(5,1),max.words = 50,random.order = F,colors = brewer.pal(8, "Dark2"),rot.per = 0.35,use.r.layout = F)
Ma nel mio codice ABAP, alcune varianti contengono "_" e "-" nel nome variante, quindi se ho eseguito questo:
code = tm_map(code,removePunctuation)
Il contenuto corpus non è così corretto e quindi la nuvola di parole è così:
Alcune parole sono così strane se si rimuove il "_" o "-".
E poi io commento che il codice e la nuvola parola è come questo:
Questa volta le parole sono corrette, ma qualche personaggio inaspettato saltate fuori, come ad esempio il mio codice ABAP COMMET ...
Quindi abbiamo alcuni metodi che possono rimuovere esattamente la punteggiatura che non vogliamo e mantenere quelli che vogliamo?
Near-duplicate: [tm rimuovi la punteggiatura personalizzata ad eccezione dell'hashtag] (http://stackoverflow.com/questions/27951377/tm-removepunctuation-except-hashtag) – smci