r - 如何从文本中删除非 UTF-8 字符
问题描述
我需要帮助从我的词云中删除非 UTF-8 字符。到目前为止,这是我的代码。我已经尝试过 gsub 和 removeWords,它们仍然在我的词云中,我不知道该怎么做才能摆脱它们。任何帮助,将不胜感激。感谢您的时间。
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,fixed = FALSE,useBytes = FALSE)
不确定你想做什么
gsub("’","â€~","",txt)
但那条线可能没有做你想做的事......
有关gsub 和非 ascii 符号的先前 SO 问题,请参见此处。
编辑:
建议使用的解决方案iconv
:
删除所有非 ASCII 字符:
txt <- "’xxx‘"
iconv(txt, "latin1", "ASCII", sub="")
回报:
[1] "xxx"
推荐阅读
- node.js - Express JS 不执行删除
- c# - SslStream - AuthenticateAsClient 即使使用端口为 143 (http) 的 TcpClient NetworkStream 也会强制
- c - 客户端服务器套接字 - 非阻塞 I/O
- sql - 如何通过 ISA SERVER 2006 发布 1434 UDP 端口?
- reactjs - 警告:失败的道具类型:道具“消息”在“提示”中标记为必需,但其值为“未定义”
- c++ - 在 QT 中向小部件添加彩色边框的最佳方法是什么
- javascript - 包含特殊字符的字符串数组
- c - 使用scanf将csv文件读入C中的结构
- java - 不可解析的 POM,END_TAG 看到,spring-security-bom
- python - python从文件读取时用字符串替换换行符