3575 2

[数据挖掘理论与案例] 关于subscript out of bounds的问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

70%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
43 点
帖子
2
精华
0
在线时间
2 小时
注册时间
2019-6-16
最后登录
2019-6-18

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用r做情绪识别时出现了问题,源代码如下:
library(rJava)
library(Rwordseg)
library(tm)
library(NLP)
setwd("d:\\第三次作业")#设置目录
comdata=read.csv("book.csv",header=T,stringsAsFactors=F)
comdata$情绪标识=as.factor(comdata$情绪标识)#输出变量转为因子型、
installDict('财经金融词汇大全.scel',dictname = 'finwords')
installDict('政治学词库大全.scel',dictname = 'finwords')#导入搜狗词库
com_dataTemp=gsub("[0-9#<>~a-z]","",comdata$评论)#删除字母和数字
com_dataseg=segmentCN(com_dataTemp)#分词
stopwords=read.csv("book.csv",stringsAsFactors=F)#去停词
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#下一个
  }
  return(ret)#返回非停用词
}
com_dataseg_clean=lapply(com_dataseg,removeStopWords,stopwords)#逐行调用函数removeStopWords
com_corpus=Corpus(VectorSource(com_dataseg_clean))
inspect(com_corpus[1:3])#生成语料库
com_dtm=DocumentTermMatrix(com_corpus,control = list(wordLengths=c(1,Inf)))#把语料库转换成词矩阵
set.seed(111)#设置随机数
train_index=which(comdata$class=="train")#获得训练集位置
com_raw_train<-comdata[train_index,]#原始数据训练集
com_raw_test<-comdata[train_index,]#原始数据测试集
com_dtm_train<-com_dtm[train_index,]
com_dtm_text<-com_dtm[train_index,]#分割词条文档矩阵
com_corpus_train<-com_corpus[train_index]
com_corpus_train<-com_corpus[train_index]#分割语料
com_dict<-findFreqTerms(com_dtm_train,2)
write.csv(com_dict,"com_dict.csv") #    findFreqTerms函数查询超过一定频数的词条,例如查询出现两次以上的词条
com_dict.clean=read.csv("com_dict.csv",header=F,stringsAsFactors = F)
com_dict.clean=as.matrix(com_dict.clean)
com_dict.clean=as.vector(com_dict.clean)#对于词典进行人工干预,筛选感情词
com.dtm=DocumentTermMatrix(com_corpus)
com.dtm=as.matrix(com.dtm)
com.dtm.clean=com.dtm[,com_dict.clean]
com_train<-com.dtm.clean[train_index,]

倒数第二句无法运行,会得到以下回复:
Error in com.dtm[, com_dict.clean] : subscript out of bounds
这是为什么呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:script Bounds Bound scrip subs

book.xlsx

17.21 KB

数据局我也发上来了,求大神解答

使用道具

藤椅
阿扁V5 学生认证  发表于 2019-6-18 12:39:35 |只看作者 |坛友微信交流群
应该是赋值对象格式不匹配吧?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 12:16