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")和专用语料库("目标")之间的关键性。参考语料库和专用语料库是两个不同的物理实体(两个具有相同格式的文件)。是否可以为此任务申请textstat_keyness?
提前感谢您的回答。 亲切问候 码头
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()
将文档合并到一个由两个"文档"分组的 dfm 中,然后再调用textstat_keyness()
。 这实际上不是必需的,因为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