繁体   English   中英

在 R 中使用 TM 包的 VCorpus 时遇到错误

[英]Error faced while using TM package's VCorpus in R

我在使用 R 处理 TM 包时遇到以下错误。

library("tm")
Loading required package: NLP
Warning messages:
1: package ‘tm’ was built under R version 3.4.2 
2: package ‘NLP’ was built under R version 3.4.1 

corpus <- VCorpus(DataframeSource(data))

错误: all(!is.na(match(c("doc_id", "text"), names(x)))) 不是 TRUE

尝试了各种方法,例如重新安装软件包,使用新版本的 R 更新,但错误仍然存​​在。 对于相同的数据文件,相同的代码在具有相同 R 版本的另一个系统上运行。

当我将tm包更新到 0.7-2 版本时,我遇到了同样的问题。 我查找了DataframeSource()详细信息,它提到:

第一列必须命名为“doc_id”并包含每个文档的唯一字符串标识符。 第二列必须命名为“text”。

细节

数据框源将数据框 x 的每一行解释为一个文档。 第一列必须命名为“doc_id”并包含每个文档的唯一字符串标识符。 第二列必须命名为“text”并包含表示文档内容的“UTF-8”编码字符串。 可选的附加列用作文档级元数据。

我用以下代码解决了它:

df_cmp<- read.csv("test_file.csv",stringsAsFactors = F)

df_title <- data.frame(doc_id=row.names(df_cmp),
                       text=df_cmp$English.title)

您可以尝试将列名更改为doc_idtext

我在使用BTM包时也遇到了这个错误。 正如Eva 所指出的,它可能与您的列标题(必须分别是doc_idtext )有关。 但是,就我而言,这是因为我的doc_id值已损坏并且不再是唯一的。 如果错误仍然存​​在,请尝试检查您的 doc_id 值以确保它们正确递增。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM