楼主: jun0908
2610 4

[有偿编程] R语言文本挖掘转换为文档词频矩阵时乱码问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:205份资源

大专生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1783 个
通用积分
33.3196
学术水平
3 点
热心指数
3 点
信用等级
0 点
经验
142 点
帖子
11
精华
0
在线时间
89 小时
注册时间
2012-6-16
最后登录
2023-10-16

楼主
jun0908 发表于 2019-7-2 17:27:47 |AI写论文
100论坛币
用R语言做文本挖掘时,在构建语料库及之前都正常,在将语料库转换为文档-词频矩阵时可以运行,但最后转变为数据框显示之后,词语全部成了乱码,求大神指导,不胜感谢!!!!
PS:具体代码如下,文档如附件。

R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: i386-w64-mingw32/i386 (32-bit)

> library(rJava)
> library(Rwordseg)
> setwd('D:/R')
> mytext <- read.csv('对话记录.csv',header = T,sep = ',',stringsAsFactors = F)
> mytext.res <- as.vector(mytext$msg)
> mytext.res<- gsub('http:[a-zA-Z\\/\\.0-9]+','',mytext.res)#清除网址
> mytext.res <- gsub('[0-9]','',mytext.res)#清除数
> mytext.res <- gsub('\n','',mytext.res)#清除换行
> mytext.res <- gsub('[a-z A-Z]','',mytext.res)#清除英文字符[a-z A-Z]
> mytext.res <- gsub(' ','',mytext.res)#清除空格
> mytext.res <- gsub('[< > = ~ @ ¥ / - _ \\.)]','',mytext.res)
> head(mytext.res)
[1] "您好有什么可以帮到您的我想退货亲亲点击右下角的\"+\"号选择订单详情选择需要反馈的订单小唯就可以马上帮亲亲定位订单处理的哈就不需要返回了噢"                                                                                                                                                
[2] "很高兴见到您,有什么问题替您排忧解难呢你好,我买衣服货到付款后可以试了合适在付款吗亲亲是哪一个订单呢亲我还没买呢亲亲这个是不行的呢亲那怎么办亲亲是签收七天内商品完好是可以退换货的呢亲商品名称:意大利小帆船新款纯色百搭翻领男士恤短袖衫商品编码:商品尺码:商品售价:货到付款我只能先签收在试,是吗亲亲是哒尺码不合适,或者想退,钱退到哪里了退换货来回的运费谁承担呢亲亲是货到付款的话,退货是退款到唯品零钱的呢亲亲爱的,是这样哒,唯品会有一些包邮活动(如元),但您订单退部分商品后不满足包邮条件或者全部商品都退了,这样就会收取元发货运费哦,原本包邮的订单也是会收取元哦,另外回寄运费的话系统会统一补贴您元唯品币哒亲亲如果是有库存换货的话,申请上门揽换是不要运费的呢亲我不需要唯品会的零钱啊能提现吗我买两件的都是包邮的吧'?----''?----'亲亲是唯品零钱是可以提现的呢亲行,那就货到付款吧尺码你懂吗[送花]斤是不是买号亲亲是的呢亲好的,谢谢"                                                                                                         
[3] "您好亲爱哒,请问有什么可以帮您的?我不知道在哪拿快递【热卖沙滩罗马凉鞋】夏季新品镂空凉爽平底女士凉鞋女鞋女凉鞋?春夏百搭学院风半裙格子百褶裙高腰字半身裙?这个的吗这个订单的吗嗯请您不要着急,客服一定尽力为您处理请问您的是否有家人或者朋友物管代替您签收包裹呢?配送过程中一直都没有收到快递的联系对吗?快递没有联系我这边联系物流核实一下情况,后续有回复联系告知您可以吗好亲亲,您的问题小唯最迟会在小时内答复您(涉及商品信息一个工作日噢,如短信可以告知您处理结果的,我优先短信回复您哒如短信无法描述会给您电话噢(^_-"                                                                          
[4] "亲亲您好,在的哦,唯品会品牌特卖顾问小唯有什么可以为您解忧的哇?(?ω?(避免断线,亲亲返回时点击保存对话可持续分钟为您服务哦!)[]我想问一下今天能到货吗【内衣无钢圈】歌瑞尔甜美刺绣性感薄款无钢圈女士内衣套装?这个订单的吗亲亲对滴稍等这边小唯帮您看一下物流信息的亲亲,您的着急小唯能切身感受到哒,请您先不要着急,小唯查看到您的订单预计在*商品预计在月日(周四)送达***送达的哦,要不这样吧,小唯帮您备注优先处理包裹,也希望亲亲您留意一下快递员与联系的哈(????可以吗亲亲这边小唯帮您去催促一下物流的呢我怎么才能联系到物流我明天就不在单位了,我怕收不到快递,会被乱丢也是看到亲亲是比较着急这个包裹的呢,小唯现在就去为您优先安排的哦,请您放心的哈。这边小唯帮您提交了催促给物流那边的了哦亲亲我看预计是今天能到,但是我看物流信息还没到北京是发往北京分拨中心的了亲亲路上的了[奋斗]好的,希望今天能到明白的呢亲亲这边望北京发书走空运,还是陆路运输客服知道,您的包裹确实是比较着急的,如果客服是快递,客服也是希望尽快给您送达的,虽然客服不参与直接配送,但是客服这边也已经再次加急优先催促您的包裹,您这边在等待下哒快递从广东发北京分拨中心是飞机还是公路请问这个是陆运的亲亲一般是好的,谢谢"
[5] "你好亲爱哒,您来啦ヾ( ̄▽ ̄品牌特卖顾问小唯有什么可以为您解忧哇?亲亲您好有一个耳机不响了,可以换货吗新款【弹窗连接】触控蓝牙耳机苹果安卓无线蓝牙耳机?是这个吗亲亲对是耳机有一支没声音的吗一只怎么弄就是没反应对您另外一只是有声音的是吗是啊好的,亲爱的勿忧,小唯这就为您查询哦,麻烦稍等下下小唯会尽快为您服务哒好,麻烦你了亲亲这边的话建议您看看能否当地维修一下小唯帮您申请补偿元唯品币,您看可以吗"                                                                                [6] "嗨嗨,这边是小唯,请问有什么能效劳您的呢[送花]亲亲你在吗嗯亲亲请问有什么帮您的呢可以发一包码一包码吗?专场名称:安儿乐纸尿裤特卖旗舰店商品名称:安儿乐薄薄小轻芯婴儿纸尿裤(非纸尿片宝宝尿不湿片商品编码:商品售价:亲亲这款吗嗯亲亲这款已经售完了哦谢谢"                                                                                                                                                                                                                              
> length(mytext.res)
[1] 9999
> mytext.seg <- segmentCN(mytext.res,nature = FALSE,nosymbol = TRUE)
> mytext.seg[1:2]
[[1]]
[1] "您好"   "有"     "什么"   "可"     "以"     "帮"     "到"     "您"     "的"     "我"   
[11] "想"     "退货"   "亲"     "亲"     "点"     "击"     "右"     "下"     "角"     "的"   
[21] "号"     "选择"   "订单"   "详情"   "选择"   "需要"   "反馈"   "的"     "订单"   "小"   
[31] "唯"     "就可以" "马上"   "帮"     "亲"     "亲"     "定位"   "订单"   "处理"   "的"   
[41] "哈"     "就"     "不"     "需要"   "返回"   "了"     "噢"   

[[2]]
  [1] "很"       "高兴"     "见到"     "您"       "有"       "什么"     "问题"     "替"      
  [9] "您"       "排忧解难" "呢"       "你好"     "我"       "买"       "衣服"     "货"      
[17] "到"       "付款"     "后"       "可以"     "试"       "了"       "合适"     "在"      
[25] "付款"     "吗"       "亲"       "亲"       "是"       "哪"       "一个"     "订单"   
[33] "呢"       "亲"       "我"       "还"       "没"       "买"       "呢"       "亲"      
[41] "亲"       "这个"     "是"       "不行"     "的"       "呢"       "亲"       "那"      
[49] "怎么"     "办"       "亲"       "亲"       "是"       "签收"     "七天"     "内"      
[57] "商品"     "完好"     "是"       "可以"     "退换"     "货"       "的"       "呢"      
[65] "亲"       "商品"     "名称"     "意大利"   "小"       "帆船"     "新款"     "纯色"   
[73] "百"       "搭"       "翻领"     "男士"     "恤"       "短袖"     "衫"       "商品"   
[81] "编码"     "商品"     "尺码"     "商品"     "售价"     "货"       "到"       "付款"   
[89] "我"       "只能"     "先"       "签收"     "在"       "试"       "是"       "吗"      
[97] "亲"       "亲"       "是"       "哒"       "尺码"     "不"       "合适"     "或者"   
[105] "想"       "退"       "钱"       "退"       "到"       "哪里"     "了"       "退换"   
[113] "货"       "来"       "回"       "的"       "运费"     "谁"       "承担"     "呢"      
[121] "亲"       "亲"       "是"       "货"       "到"       "付款"     "的话"     "退货"   
[129] "是"       "退款"     "到"       "唯"       "品"       "零钱"     "的"       "呢"      
[137] "亲"       "亲爱"     "的"       "是"       "这样"     "哒"       "唯"       "品"      
[145] "会"       "有"       "一些包"   "邮"       "活动"     "如"       "元"       "但"      
[153] "您"       "订单"     "退"       "部分"     "商品"     "后"       "不"       "满足"   
[161] "包"       "邮"       "条件"     "或者"     "全部"     "商品"     "都"       "退"      
[169] "了"       "这样"     "就"       "会"       "收取"     "元"       "发"       "货运费"  
[177] "哦"       "原本"     "包"       "邮"       "的"       "订单"     "也"       "是"      
[185] "会"       "收取"     "元"       "哦"       "另外"     "回"       "寄"       "运费"   
[193] "的话"     "系统"     "会"       "统一"     "补贴"     "您"       "元"       "唯"      
[201] "品"       "币"       "哒"       "亲"       "亲"       "如果"     "是"       "有"      
[209] "库存"     "换"       "货"       "的"       "话"       "申请"     "上门"     "揽"      
[217] "换"       "是"       "不"       "要"       "运费"     "的"       "呢"       "亲"      
[225] "我"       "不"       "需要"     "唯"       "品"       "会"       "的"       "零钱"   
[233] "啊"       "能"       "提"       "现"       "吗"       "我"       "买"       "两件"   
[241] "的"       "都"       "是"       "包"       "邮"       "的"       "吧"       "亲"      
[249] "亲"       "是"       "唯"       "品"       "零钱"     "是"       "可以"     "提"      
[257] "现"       "的"       "呢"       "亲"       "行"       "那"       "就"       "货"      
[265] "到"       "付款"     "吧"       "尺码"     "你"       "懂"       "吗"       "送"      
[273] "花"       "斤"       "是不是"   "买"       "号"       "亲"       "亲"       "是"      
[281] "的"       "呢"       "亲"       "好的"     "谢谢"   

> mytext.seg2 <- list()
> for (i in 1:length(mytext.seg)) {mytext.seg2[] <- subset(mytext.seg[],nchar(as.character(mytext.seg[]))>1)}
> mytext.seg2[1:2]
[[1]]
[1] "您好"   "什么"   "退货"   "选择"   "订单"   "详情"   "选择"   "需要"   "反馈"   "订单"  
[11] "就可以" "马上"   "定位"   "订单"   "处理"   "需要"   "返回"  

[[2]]
[1] "高兴"     "见到"     "什么"     "问题"     "排忧解难" "你好"     "衣服"     "付款"   
[9] "可以"     "合适"     "付款"     "一个"     "订单"     "这个"     "不行"     "怎么"   
[17] "签收"     "七天"     "商品"     "完好"     "可以"     "退换"     "商品"     "名称"   
[25] "意大利"   "帆船"     "新款"     "纯色"     "翻领"     "男士"     "短袖"     "商品"   
[33] "编码"     "商品"     "尺码"     "商品"     "售价"     "付款"     "只能"     "签收"   
[41] "尺码"     "合适"     "或者"     "哪里"     "退换"     "运费"     "承担"     "付款"   
[49] "的话"     "退货"     "退款"     "零钱"     "亲爱"     "这样"     "一些包"   "活动"   
[57] "订单"     "部分"     "商品"     "满足"     "条件"     "或者"     "全部"     "商品"   
[65] "这样"     "收取"     "货运费"   "原本"     "订单"     "收取"     "另外"     "运费"   
[73] "的话"     "系统"     "统一"     "补贴"     "如果"     "库存"     "申请"     "上门"   
[81] "运费"     "需要"     "零钱"     "两件"     "零钱"     "可以"     "付款"     "尺码"   
[89] "是不是"   "好的"     "谢谢"   

> stopwords <- unlist(read.csv('停用词.csv',header = F,sep = ',',stringsAsFactors = F)[,1])
> removestopwords <- function(x,words){
+   ret <- character(0)
+   index <- 1
+   it_max <- length(x)
+   while(index<=it_max){
+     if(length(words[words==x[index]])<1) ret <- c(ret,x[index])
+     index <- index+1
+   }
+   ret
+ }
> mytext.seg3 <- lapply(mytext.seg2,removestopwords,stopwords)
> mytext.seg3[1:2]
[[1]]
[1] "退货"   "选择"   "选择"   "需要"   "反馈"   "就可以" "马上"   "定位"   "处理"   "需要"  
[11] "返回"  

[[2]]
[1] "高兴"     "见到"     "排忧解难" "你好"     "衣服"     "付款"     "可以"     "合适"   
[9] "付款"     "一个"     "这个"     "不行"     "怎么"     "签收"     "七天"     "商品"   
[17] "完好"     "可以"     "退换"     "商品"     "名称"     "意大利"   "帆船"     "新款"   
[25] "纯色"     "翻领"     "男士"     "短袖"     "商品"     "编码"     "商品"     "尺码"   
[33] "商品"     "售价"     "付款"     "只能"     "签收"     "尺码"     "合适"     "或者"   
[41] "哪里"     "退换"     "运费"     "承担"     "付款"     "的话"     "退货"     "退款"   
[49] "零钱"     "亲爱"     "这样"     "一些包"   "活动"     "部分"     "商品"     "满足"   
[57] "条件"     "或者"     "全部"     "商品"     "这样"     "收取"     "货运费"   "原本"   
[65] "收取"     "另外"     "运费"     "的话"     "系统"     "统一"     "补贴"     "如果"   
[73] "库存"     "申请"     "上门"     "运费"     "需要"     "零钱"     "两件"     "零钱"   
[81] "可以"     "付款"     "尺码"     "好的"     "谢谢"   

> library(tm)
> corpus<-Corpus(VectorSource(mytext.seg3))#构建语料库
> inspect(corpus[1:2])#查看语料库--------------这一步显示都还正常
<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 2

[1] c("退货", "选择", "选择", "需要", "反馈", "就可以", "马上", "定位", "处理", "需要", "返回")                                                                                                                                                                                                                                                                                                                                                                                                               
[2] c("高兴", "见到", "排忧解难", "你好", "衣服", "付款", "可以", "合适", "付款", "一个", "这个", "不行", "怎么", "签收", "七天", "商品", "完好", "可以", "退换", "商品", "名称", "意大利", "帆船", "新款", "纯色", "翻领", "男士", "短袖", "商品", "编码", "商品", "尺码", "商品", "售价", "付款", "只能", "签收", "尺码", "合适", "或者", "哪里", "退换", "运费", "承担", "付款", "的话", "退货", "退款", "零钱", "亲爱", "这样", "一些包", "活动", "部分", "商品", "满足", "条件", "或者", "全部", "商品", "这样", "收取", \n"货运费", "原本", "收取", "另外", "运费", "的话", "系统", "统一", "补贴", "如果", "库存", "申请", "上门", "运费", "需要", "零钱", "两件", "零钱", "可以", "付款", "尺码", "好的", "谢谢")
> dtm<- DocumentTermMatrix(corpus,control=list(wordLengths=c(2,Inf)))#建立文档-词频矩阵,貌似是这步出了问题
> mytext.seg5 <- removeSparseTerms(dtm,sparse = 0.9)
> mytext.seg6 <- as.data.frame(as.matrix(mytext.seg5))
> dim(mytext.seg6)
[1] 9999  110
> mytext.seg6[1:5,1:5] #关键词全部变成了这种东西
  "<U+00B4><U+00A6><c0><ed>", "<U+00B7><U+00B4><U+0021>", "<d0><e8><U+04AA>", "<U+0461><d4><f1>",
1                           1                           1                   2                   2
2                           0                           0                   1                   0
3                           2                           0                   0                   0
4                           1                           0                   0                   0
5                           0                           0                   0                   0
  "<U+00B1><e0><c2><eb>",
1                       0
2                       1
3                       0
4                       0
5                       0


停用词.xlsx
下载链接: https://bbs.pinggu.org/a-2856909.html

9.52 KB

对话记录.xlsx

4.43 MB

最佳答案

Whig 查看完整内容

文本挖掘不太懂,但是这个问题是汉字编码的问题。解决办法有两个:1)不用tm,用chinese.misc;或者2)Corpus(x, control = list(language = "zh"))试试看,不确定是不是用zh

沙发
Whig 在职认证  发表于 2019-7-2 17:27:48
文本挖掘不太懂,但是这个问题是汉字编码的问题。解决办法有两个:1)不用tm,用chinese.misc;或者2)Corpus(x, control = list(language = "zh"))试试看,不确定是不是用zh
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
jun0908 发表于 2019-7-3 16:22:13
Whig 发表于 2019-7-2 21:17
文本挖掘不太懂,但是这个问题是汉字编码的问题。解决办法有两个:1)不用tm,用chinese.misc;或者2)Corp ...
第二种方法还是不行
chinese.misc包还不会,有待学习下

板凳
Whig 在职认证  发表于 2019-7-3 21:15:36
jun0908 发表于 2019-7-3 16:22
第二种方法还是不行
chinese.misc包还不会,有待学习下
第二种方法你去查官方文档,上面会给你建议的language,因为有好几个zh的可以用,我不确定选哪一个。

报纸
Meteor。 发表于 2021-9-8 14:24:54
请问楼主解决问题了吗,我遇到了跟你一样的问题

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 05:04