【问题标题】:Error faced while using TM package's VCorpus in R在 R 中使用 TM 包的 VCorpus 时遇到的错误
【发布时间】:2018-05-04 12:43:58
【问题描述】:

我在使用 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)))) 不正确

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

【问题讨论】:

    标签: r text-mining tm text-analysis


    【解决方案1】:

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

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

    详情

    数据框源将数据框 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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 2013-07-07
        • 2018-03-31
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        相关资源
        最近更新 更多