使用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的另一个系统上运行。
答案 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_id
和text
。
答案 1 :(得分:0)
我也使用BTM
软件包遇到了此错误。正如Eva所指出的,它可能与您的列标题有关(分别必须为doc_id
和text
)。但是,就我而言,这是因为我的doc_id
值已损坏并且不再唯一。如果错误仍然存在,请尝试检查您的doc_id值以确保它们正确递增。