2016-03-17 4 views
2

Я совершенно новой для программирования, и я теперь делаю свою Resma, где я начал изучать Р.R Text Mining Выпуск

я должен сделать что-то очень и очень простой, и я, похоже, не в какой-то момент. Мне просто нужно считать графемы (буквы) в одном txt-файле, ничего больше. Я сначала создаю корпус с ТМ, я его чищу и все, но когда я пытаюсь запустить частотный анализ каждой графемы, текст на самом деле не очищается от знаков препинания и странных символов и т. Д.

Код I Я использую это:

library("tm") 
library("SnowballC") 
library("wordcloud") 
library("RColorBrewer") 
filePath <- choose.files() 
text <- readLines(filePath) 
docs <- Corpus(VectorSource(text)) 
toSpace <- content_transformer(function (x , pattern) gsub(pattern, " ", x)) 
docs <- tm_map(docs, toSpace, "/") 
docs <- tm_map(docs, toSpace, "@") 
docs <- tm_map(docs, toSpace, "\\|") 
docs <- tm_map(docs, content_transformer(tolower)) 
docs <- tm_map(docs, removeNumbers) 
docs <- tm_map(docs, removePunctuation) 
docs <- tm_map(docs, stripWhitespace) 
docs <- tm_map(docs, stemDocument) 
print (docs) 

x=strsplit(text, "") 

newlist = unlist(x,recursive=F) 
freqtab = table(newlist) 

print (freqtab) 

Итак, очевидно, что документы здесь совершенно иная, чем х вниз, но когда я пытаюсь сделать то, наоборот, она до сих пор не работает.

мне просто нужно сделать это: Я иду в школу ---> я иду в школу ----> i- 2 a- 1 м- 1 ....

!

Я не понимаю, откуда моя проблема, я буду благодарен за вашу помощь!

+0

Что такое resma? – cory

ответ

0

Проблема в том, что вы не изменяете text со всеми вашими операциями; вы работаете над docs.

Запуск кода, используя простой пример в вашем посте как text,

text <- "I am going to school!" 
docs <- Corpus(VectorSource(text)) 
toSpace <- content_transformer(function (x , pattern) gsub(pattern, " ", x)) 
docs <- tm_map(docs, toSpace, "/") 
docs <- tm_map(docs, toSpace, "@") 
docs <- tm_map(docs, toSpace, "\\|") 
docs <- tm_map(docs, content_transformer(tolower)) 
docs <- tm_map(docs, removeNumbers) 
docs <- tm_map(docs, removePunctuation) 
docs <- tm_map(docs, stripWhitespace) 
docs <- tm_map(docs, stemDocument) 

, а затем напечатать содержание docs, все ваши изменения применяются

print(unlist(docs)[1]) 
    content.content 
"i am go to school" 

хотя отмечают, что из-за стеммер , "going" преобразуется в "go".

Тогда вы можете рассчитывать символы, как и в исходном коде,

x=strsplit(as.character(unlist(docs)[1]), "") 
freqtab = table(x[[1]]) 
print(freqtab) 

    a c g h i l m o s t 
4 1 1 1 1 1 1 1 4 1 1 

Надеется, что это помогает.

Смежные вопросы