R:Quanteda:我可以在两个单独的语料库中使用textstat_keyness吗?

时间:2018-04-05 08:30:10

标签: r quanteda

使用" textstat_keyness"如下:

    textstat_keyness(x, target = 1L, measure = c("chi2", "exact", "lr", "pmi"), sort = TRUE, correction = c("default", "yates", "williams", "none"))

"目标"是"文件索引(数字,字符或逻辑)标识形成"目标"用于计算密钥;所有其他文件'特征频率将被组合起来用作参考" ([https://rdrr.io/cran/quanteda/man/textstat_keyness.html]

从文档中提供的示例中,我了解textstat_keyness只能应用于单个语料库的子部分(即单个文件),而我需要在两个单独的语料库(即两个文件)中测量关键性。

基本上,我想测量参考语料库(" x")和专门语料库(" target")之间的关键性。参考语料库和专用语料库是两个不同的物理实体(两个文件具有相同的格式)。是否可以将textstat_keyness应用于此任务?

提前感谢您的回答。 亲切的问候, 玛丽娜

1 个答案:

答案 0 :(得分:0)

textstat_keyness()比较语料库的两个分区,以确定两个分区之间“关键”或差异出现的单词。因此,为了将任何目标语料库与基线语料库进行比较,您需要将两者合并为一个dfm,然后适当地指定目标。

如果没有您的问题更具体,我将尝试提供一个我认为可以提供您想要的示例。在这里,我将爱尔兰预算2010语料库中的单词的关键性与美国总统的就职演说语料库(均建于 quanteda )进行比较。

library("quanteda")
# Package version: 1.1.1

combinedcorp <- 
    corpus(c(texts(data_corpus_irishbudget2010), texts(data_corpus_inaugural)),
           docvars = data.frame(source = c(rep("irishbudget", ndoc(data_corpus_irishbudget2010)),
                                           rep("inaugural", ndoc(data_corpus_inaugural)))))
combinedcorp
# Corpus consisting of 72 documents and 1 docvar.

combineddfm <- dfm(combinedcorp, remove = stopwords("english"), remove_punct = TRUE)

在下一步中,我在调用dfm_group()之前使用textstat_keyness()将文档合并为两个“文档”分组的dfm。这不是必需的,因为textstat_keyness()也可以自动组合目标索引的文档(并将所有其他文档组合起来作为参考),但如果您想从中选择单个文档,这将为您提供更多控制。目标类别。 (您可以通过在dfm上使用矩阵索引[dfm_select()等来实现此目的。)

keyn <- dfm_group(combineddfm, groups = "source") %>%
    textstat_keyness(target = "irishbudget") 

然后我们可以清楚地看到哪些单词与预算演讲相关联,哪些单词与就职演说相关联。

rbind(head(keyn), tail(keyn))
#       feature       chi2 p n_target n_reference
# 1       budget  647.57319 0      260           6
# 2     minister  427.03308 0      170           3
# 3          tax  341.44085 0      163          20
# 4      billion  303.65819 0      119           1
# 5         jobs  264.91216 0      120          11
# 6      economy  236.90627 0      160          53
# 11377   nation  -89.30903 0       11         293
# 11378    peace  -93.77363 0        2         254
# 11379    great -103.21197 0       13         340
# 11380   states -113.18403 0        7         333
# 11381    shall -121.82532 0        0         314
# 11382     upon -136.96721 0        3         371