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

时间:2017-11-21 06:27:29

标签: r text-mining tm text-analysis

使用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))

  

错误:全部(!is.na(匹配(c(&#34; doc_id&#34;,&#34;文字&#34;),名称(x))))不是真的

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

2 个答案:

答案 0 :(得分:15)

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

  

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

详细

  

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

我用以下代码解决了它:

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

答案 1 :(得分:0)

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