【问题标题】:quanteda dfm() Error: groups must have length ndoc(x)quanteda dfm() 错误:组必须有长度 ndoc(x)
【发布时间】:2021-07-19 21:21:28
【问题描述】:

我正在尝试运行一个关键性分析,一切正常,然后,由于未知原因,它开始给我一个错误。 我正在使用 data_corpus_inaugural,它是美国总统就职演说的 quanteda-package 语料库对象。

我的代码:

> corpus_pres <- corpus_subset(data_corpus_inaugural, 
+                             President %in% c("Obama", "Trump"))
> dtm_pres <- dfm(corpus_pres, groups = "President", 
+                remove = stopwords("english"), remove_punct = TRUE)
Error: groups must have length ndoc(x)
In addition: Warning messages:
1: 'dfm.corpus()' is deprecated. Use 'tokens()' first. 
2: '...' should not be used for tokens() arguments; use 'tokens()' first. 
3: 'groups' is deprecated; use dfm_group() instead 
> 

【问题讨论】:

  • 这可能是某种 quanteda 问题?即使加载了 quanteda,它也找不到 textstat_keyness > keyness = textstat_keyness(dtm_pres, target = "Trump") textstat_keyness(dtm_pres, target = "Trump") 中的错误:找不到函数 "textstat_keyness"
  • 见 github.com/quanteda/quanteda/blob/master/…,在 quanteda v3 中应该是 groups = President。

标签: r error-handling nlp quanteda


【解决方案1】:

在 quanteda v3 中“dfm() 从 tokens 对象构造一个文档特征矩阵” - https://tutorials.quanteda.io/basic-operations/dfm/dfm/

试试这个:

toks_pres <- tokens(pres_corpus, remove_punct = TRUE) %>% 
    tokens_remove(pattern = stopwords("en")) %>%
    tokens_group(groups = President)

pres_dfm <- dfm(toks_pres)

【讨论】:

    【解决方案2】:

    我在分析推特帐户时遇到了同样的问题,这段代码对我有用。您可以跨帐户搜索字词

    # to make a group in corpus
    twcorpus <- corpus(users) %>%
            corpus_group(groups= interaction(user_username))
            
    
    # to visualize textplot_xray
    textplot_xray(kwic(twcorpus, "helsin*"), scale="relative")
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多