这个不是jieba分词的原因,是tm包 DocumentTermMatrix()这个命令以后产生了乱码。
解决的办法有几个
1、修改 locale 为英文,
在执行TermDocumentMatrix前,调用Sys.setlocale(locale="English"),之后再设定回去,Sys.setlocale(locale="Chinese (Simplified)_People's Republic of China.936"),local设置通过函数sessionInfo()获得。
2、修改 tm 包的 tokenizer.R 里的 scan_tokenizer 函数 ,然后安装修改后的 tm 包。
原函数:
scan_tokenizer <- NLP::Token_Tokenizer(function(x)
scan(text = as.character(x), what = "character", quote = "", quiet = TRUE))
改为
scan_tokenizer <- NLP::Token_Tokenizer(function(x){
con <- textConnection(as.character(x))
tokens <- scan(con, what = "character", quote = "", quiet = TRUE)
close(con)
tokens
})