如何从文本中删除非UTF-8字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从文本中删除非UTF-8字符相关的知识,希望对你有一定的参考价值。

我需要帮助从词云中删除非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)
答案

gsub的签名是:

gsub(模式,替换,x,ignore.case = FALSE,perl = FALSE,固定= FALSE,useBytes = FALSE)

不确定您想做什么

gsub(“’”,“—,“”,txt)

但是该行可能没有按照您想要的去做...

关于gsub和非ascii符号的先前SO问题,请参阅here。>>

编辑:

使用iconv的建议解决方案:

正在删除

所有非ASCII字符:
txt <- "’xxx‘"

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

返回:

[1] "xxx"    

以上是关于如何从文本中删除非UTF-8字符的主要内容,如果未能解决你的问题,请参考以下文章

使用声明的 encoding=utf-8 从 xml 中删除非 UTF-8 字符 - Java

XSS:如何从 C# 中的字符串中删除 JS 片段?

SQL Server:如何从字符串中删除前导/尾随非字母数字字符?

如何在 PHP 中用 UTF-8 支持替换所有非字母字符

使用非utf-8编码在Python中解析XML

如何从 UTF-8 字符串的每个字符中获取 UNICODE 代码?