将Csv数据导入R以进行文本挖掘时出错

时间:2019-05-20 10:44:09

标签: r tm tidytext

尝试将csv文档导入R并尝试开发用于主题建模的语料库时,我一直收到此错误。我已经在其他4个项目上成功使用了这种方法,但是无法克服此错误。 我的数据源有一个doc_id列和一个text列。错误是 错误:

  

all(!is.na(match(c(“ doc_id”,“ text”),names(x))))不是TRUE

我尝试使用许多不同的建议进行导入,例如 Error faced while using TM package's VCorpus in R

file_loc <- "C:\\Users\\mdlawrence\\Desktop\\Test2.csv "

 x <- read.csv(file_loc, header = TRUE, stringsAsFactors = F)

 require(tm)
 Loading required package: tm

 Loading required package: NLP

 corp <- Corpus(DataframeSource(x))
  

错误:all(!is.na(match(c(“ doc_id”,“ text”),names(x))))不正确

docs <- DocumentTermMatrix(corp)
  

TermDocumentMatrix(x,控件)中的错误:找不到对象“ corp”

我希望在.csv文件中看到每行一个文档的语料库。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这与您的列名称有关。您提供的dput也会显示(X.doc_id)和(X.text)。因此,运行以下命令会产生与您遇到的相同的错误。

x <- structure(list(X.doc_id. = c("1A", "2A"), 
                    X.text. = c("I think a conversation needs to be had to bring all employee groups up to the same … 0 feet" )),
               .Names = c("X.doc_id.", "X.text."), class = "data.frame", row.names = c(NA, -10L))


library(tm)
VCorpus(DataframeSource(x))
  

inherits(x,“ Source”)中的错误:all(!is.na(match(c(“ doc_id”,   “ text”),names(x))))不正确

运行以下命令可获得您想要的正确结果。

colnames(x) <- c("doc_id", "text") 
library(tm)
Y <- VCorpus(DataframeSource(x))
Y
  

<>元数据:特定于语料库:0,文档级别(索引):0   内容:文件:10

运行:

content(Y)
content(Y[[1]])

礼物:

  
    

content(Y [[1]])[1]“我认为必须进行对话才能使所有员工组都达到相同的……0英尺”

  

创建documenttermmatrix

dtm <- DocumentTermMatrix(Y)
dtm
  

<>非/稀疏条目:   11/99稀疏度:90%最大期限:12权重
  :词频(tf)

在代码或加载数据的某些地方,您可能具有重复的列名,并且读取数据会自动创建一个X.doc_id列,以防止重复的列名。