Как удалить не текстовые символы UTF-8 из текста - PullRequest
0 голосов
/ 17 февраля 2020

Мне нужна помощь в удалении не-UTF-8 символа из моего облака слов. Пока это мой код. Я пробовал gsub и removeWords, и они все еще есть в моем облаке слов, и я не знаю, что делать, чтобы избавиться от них. Любая помощь будет оценена. Спасибо за ваше время.

enter image description here

txt <- readLines("11-0.txt")
corpus = VCorpus(VectorSource(txt))
gsub("’","‘","",txt)

corpus = tm_map(corpus, content_transformer(tolower))
corpus = tm_map(corpus, removeWords, stopwords("english"))
corpus = tm_map(corpus, removePunctuation)
corpus = tm_map(corpus, stripWhitespace) 
corpus = tm_map(corpus, removeWords, c("gutenberg","gutenbergtm","â€","project"))

tdm = TermDocumentMatrix(corpus)
m = as.matrix(tdm)
v = sort(rowSums(m),decreasing = TRUE)
d = data.frame(word=names(v),freq=v)

wordcloud(d$word,d$freq,max.words = 20, random.order=FALSE, rot.per=0.2, colors=brewer.pal(8, "Dark2"))

Редактировать: Вот моя версия inconv

txt <- readLines("11-0.txt")
Encoding(txt) <- "latin1"
iconv(txt, "latin1", "ASCII", sub="")

corpus = VCorpus(VectorSource(txt))
corpus = tm_map(corpus, content_transformer(tolower))
corpus = tm_map(corpus, removeWords, stopwords("english"))
corpus = tm_map(corpus, removePunctuation)
corpus = tm_map(corpus, stripWhitespace) 
corpus = tm_map(corpus, removeWords, c("gutenberg","gutenbergtm","project"))

tdm = TermDocumentMatrix(corpus)
m = as.matrix(tdm)
v = sort(rowSums(m),decreasing = TRUE)
d = data.frame(word=names(v),freq=v)

wordcloud(d$word,d$freq,max.words = 20, random.order=FALSE, rot.per=0.2, colors=brewer.pal(8, "Dark2"))
title(main="Alice in Wonderland word cloud",font.main=1,cex.main =1.5)

1 Ответ

0 голосов
/ 17 февраля 2020

Подпись gsub:

gsub (шаблон, замена, x, ignore.case = FALSE, perl = FALSE, исправлено = FALSE, useBytes = FALSE)

Не уверен, что вы хотели сделать с

gsub ("â €", "â", "", txt)

но эта строка, вероятно, не делает то, что вам нужно ...

См. здесь для предыдущего вопроса SO по символам gsub и non-ascii.

Редактировать:

Предлагаемое решение с использованием iconv:

Удаление всех не-ASCII символов:

txt <- "’xxx‘"

iconv(txt, "latin1", "ASCII", sub="")

Возвращает:

[1] "xxx"    
...