处理语料库时出错:需要TRUE/FALSE时缺少值

wnavrhmk  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(219)

我的计划是使用Quanteda包在R中处理一个语料库。我使用poliblogs.csv数据库,可通过from here访问,使用下面的脚本。过去,该脚本运行顺畅,但现在出现了一条错误消息。当我试图获取语料库的统计信息或试图修剪它时,错误就会发生。
我运行的脚本如下所示:

require("quanteda")
require("readtext")
require("topicmodels")
require("stm")
blog.dat <- readtext("poliblogs2008.csv",
        textfield="documents")

meta.list <- list(blog=blog.dat$blog,       
        day=blog.dat$day,
        rating= blog.dat$rating)
names(meta.list)
blogcorpus <- corpus(blog.dat,
            meta=meta.list)
meta <- meta(blogcorpus)
mycorpus.stats <- summary(blogcorpus)
blog.dfm <- dfm(blogcorpus, remove=stopwords("english"),
                stem= TRUE,
                removePunct= TRUE)

当我运行这些行时出现错误:

mycorpus.stats <- summary(blogcorpus)

以及

blog.dfm <- dfm(blogcorpus, remove=stopwords("english"),
                stem= TRUE,
                removePunct= TRUE)

在这两种情况下,都会出现以下相同的错误消息:

Error in if (...length() && any(...names() == "Dimnames")) .Object@Dimnames <- fixupDN(.Object@Dimnames) : 
  missing value where TRUE/FALSE needed

同样的错误也会出现在多重数据集上,因此它似乎与数据无关。
更新:实际上,这个问题是由RStudio本身的一个bug引起的。卸载并重新安装R和RStudio解决了这个问题,并使错误消失。感谢每一个寻找并提供解决方案的人。

omhiaaxx

omhiaaxx1#

require(quanteda)非常好,但是您应该更新包。

> blog.dfm <- dfm(blogcorpus, remove=stopwords("english"),
+                 stem= TRUE,
+                 removePunct= TRUE)
Warning messages:
1: 'dfm.corpus()' is deprecated. Use 'tokens()' first. 
2: removePunct argument is not used. 
3: removePunct argument is not used. 
4: 'remove' is deprecated; use dfm_remove() instead 
5: 'stem' is deprecated; use dfm_wordstem() instead

应该是

> blog.toks <- tokens(blogcorpus, remove_punct = TRUE) %>% 
+     tokens_remove(stopwords("en")) %>% 
+     tokens_wordstem()
> blog.dfm <- dfm(blog.toks)
> blog.dfm
Document-feature matrix of: 13,246 documents, 102,320 features (99.83% sparse) and 5 docvars.
                     features
docs                  week fals statement lie dismiss apolog pakistani presid pervez musharraf
  poliblogs2008.csv.1    2    1         2   1       1      1         1      1      1         7
  poliblogs2008.csv.2    1    0         0   0       0      0         0      0      0         0
  poliblogs2008.csv.3    0    0         0   0       0      0         0      0      0         0
  poliblogs2008.csv.4    0    0         0   0       0      0         0      0      0         0
  poliblogs2008.csv.5    0    0         0   1       0      0         0      0      0         0
  poliblogs2008.csv.6    0    0         0   0       0      0         0      2      0         0
[ reached max_ndoc ... 13,240 more documents, reached max_nfeat ... 102,310 more features ]

相关问题