《机器学习:实用案例解析》第三章 (3)

本文介绍了一种使用R语言进行文本分析的方法,并解决了在处理特定数据集时遇到的字符编码错误问题。通过一系列步骤,从加载必要的库到读取和预处理文本数据,最后通过调整系统设置成功解决了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

library(tm)
library(ggplot2)
spam.path<-"data/spam/"
spam2.path<-"data/spam_2/"
easyham.path<-"data/easy_ham/"
easyham2.path<-"data/easy_ham_2/"
hardham.path<-"data/hard_ham/"
hardham2.path<-"data/hard_ham_2/"

get.msg<-function(path){
  con<-file(path,open="rt")
  text<-readLines(con,warn=FALSE)
  msg<-text[seq(which(text=="")[1]+1,length(text),1)]
  close(con)
  return(paste(msg,collapse="\n"))
}

spam.docs<-dir(spam.path)
spam.docs<-spam.docs[which(spam.docs!="cmds")]
all.spam<-sapply(spam.docs,
                 function(p) get.msg(paste(spam.path,p,sep="")))
#head(all.spam)

get.tdm<-function(doc.vec){
  doc.corpus<-Corpus(VectorSource(doc.vec))
  control<-list(stopwords=TRUE,
                removePunctuation=TRUE,
                removeNumbers=TRUE,
                minDocFreq=2)
  doc.dtm<-TermDocumentMatrix(doc.corpus,control)
  return(doc.dtm)
}

spam.tdm<-get.tdm(all.spam)

报错:

 Error in tolower(txt) : invalid multibyte string 6 

解决办法:

终端里输入

Sys.setlocale(category = "LC_ALL", locale = "us")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值