Aktualizacja Jak dokładnie usunąć interpunkcyjneprzy użyciu R z pakietem tm
myślę, że może mam obejście, aby rozwiązać ten problem, wystarczy dodać jeden kod: dtms = removeSparseTerms(dtm,0.1)
Usunie rzadki znak w korpusie. Ale myślę, że to jest TYLKO obejście, wciąż czeka na odpowiedź ekspertów!
Ostatnio uczę się wydobywania tekstów w R przy użyciu pakietu tm. I mam pomysł, aby narysować chmurę słów na temat słów w moim programie ABAP w maksymalnej częstotliwości. Napisałem więc program R, aby to zrozumieć.
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)
Ale w moim kodu ABAP, niektóre warianty zawierają „_” i „-” w nazwie wariantu, więc jeśli wykonywane to:
code = tm_map(code,removePunctuation)
Zawartość corpus nie jest tak poprawny, a tym samym chmura słowa jest taka:
Niektóre słowa są tak dziwne, jeśli usuniesz "_" lub "-".
I wtedy skomentować ten kod i Word chmura jest tak:
Tym razem słowa są prawidłowe, ale jakiś niespodziewany charakter pojawił się, jak mój kod ABAP komentuję ...
Czy mamy więc jakieś metody, które dokładnie usuwają interpunkcje, których nie chcemy i zachowują te, które chcemy?
Blisko duplikatu: [tm niestandardowy removePunctuation except hashtag] (http://stackoverflow.com/questions/27951377/tm-removepunctuation-except-hashtag) – smci