2016-08-02 100 views
0

我尝试创建文档项矩阵时出现以下代码,但出现错误:(最初我的数据是在一列csv文件中,并且读取了的.csv,但复制的目的,我创建了下面一个数据帧)尝试在R中创建文档项矩阵时出错

library(tm) 
TEXTS<- as.data.frame(c("I am a cat person", "I like both cats and dogs"), stringsAsFactors = FALSE) 
docs<-VCorpus(VectorSource(TEXTS)) 
docs <- tm_map(docs, removePunctuation) 
docs <- tm_map(docs, removeNumbers) 
docs <- tm_map(docs, content_transformer(tolower), lazy = TRUE) 
docs <- tm_map(docs, PlainTextDocument, lazy = TRUE) 
docs <- tm_map(docs, removeWords, stopwords("english"), lazy = TRUE) 
library(SnowballC) 
docs <- tm_map(docs, stemDocument, language = meta(docs, "english"), lazy = TRUE) 
dtm <- DocumentTermMatrix(docs) 

这是我从最后一行出现错误:

Error in stemDocument.PlainTextDocument(x, ...) : 
    promise already under evaluation: recursive default argument reference or  earlier problems? 
In addition: Warning message: 
In stemDocument.PlainTextDocument(x, ...) : 
    restarting interrupted promise evaluation 

我能做些什么? 谢谢

回答

0

你为什么打电话PlainTextDocument功能?我删除了它,我也删除了词干过程语言中的元参考。

我已经重新排序的代码,请记住,如果你经常拨打已作为第一个参数的功能,你可以使用管道%>%dplyr包让你的代码看起来更平滑的输出变量的名称(https://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html

library(tm) 
library(SnowballC) 
library(dplyr) #install it if you don't have this package 

TEXTS<- as.data.frame(c("I am a cat person", "I like both cats and dogs"), stringsAsFactors = FALSE) 
docs<-VCorpus(VectorSource(TEXTS)) 
docs <- tm_map(docs, removePunctuation) %>% 
    tm_map(removeNumbers) %>% 
    tm_map(content_transformer(tolower), lazy = TRUE) %>% 
    tm_map(removeWords, stopwords("english"), lazy = TRUE) %>% 
    tm_map(stemDocument, language = c("english"), lazy = TRUE) 
dtm <- DocumentTermMatrix(docs) 
+0

谢谢。如果我有我的数据框在一个csv文件,而不是我如何显示它上面,我可以这样做:texts <-as.data.frame(read.csv(“descriptions.csv”,header = TRUE,stringsAsFactors = FALSE))文档<-VCorpus(VectorSource(文本))。当我使用与上面相同的代码时,dtm <-DocumentTermMatrix(docs)时出现此错误:gsub中的错误(sprintf(“(* UCP)\\ b(%s)\\ b”),粘贴(排序(字,递减= TRUE),: 输入字符串715无效UTF-8 –

+0

当您正在读取csv文件时,您将其转换为数据帧,我想这个数据帧有多个列。这个变量包含了'VCorpus'函数的文本,也许这个错误是由于输入错误而触发的。如果你可以提供一个csv的提取文件,我也可以试试。 –

+0

我的数据帧只有一列 - 但是我尝试使用文本$ Long_Description并且它仍然不起作用我不确定我怎样才能让你看到csv文件,但是它有一列专用权限“Long_Description”,它们是前几行(逗号表示新行):我是猫人, 我喜欢猫狗, 我讨厌宠物, 我没有任何宠物, 我只喜欢小动物, 我是一个狗人;但我也有一只宠物兔子 –