首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据分组变量来计算定量搭配?

如何根据分组变量来计算定量搭配?
EN

Stack Overflow用户
提问于 2021-05-24 18:18:08
回答 1查看 323关注 0票数 1

我一直致力于识别和分类的搭配昆特达包在R。

例如;

我从文档列表中创建令牌对象,并应用配置分析。

代码语言:javascript
复制
toks <- tokens(text$abstracts)
collocations <- textstat_collocations(toks)

然而,据我所见,没有明确的方法来判断哪个搭配频繁/存在于哪个文档中。即使我应用kwic(toks, pattern = phrase(collocations), selection = 'keep'),结果也只包括text1、text2等。

我想分组配置分析结果的基础上的博士学位。跟全德达有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 09:27:13

听起来你想用文件来记录搭配。textstat_collocations()的输出已经为每个搭配提供了计数,但这些都是针对整个语料库的。

因此,按文档分组(或任何其他变量)的解决方案是:

  1. 使用textstat_collocations()获取搭配。下面,我在删除秒词和punctuation.
  2. Compound之后,使用tokens_compound()完成了生成停止词的标记。这将将每个配置序列转换为单个标记。
  3. 从复合令牌中形成一个dfm,并使用textstat_frequency()来根据文档对化合物进行计数。这是一个更棘手的

使用内置的初始语料库实现:

代码语言:javascript
复制
library("quanteda")
## Package version: 3.0
## Unicode version: 13.0
## ICU version: 69.1
## Parallel computing: 12 of 12 threads used.
## See https://quanteda.io for tutorials and examples.
library("quanteda.textstats")

toks <- data_corpus_inaugural %>%
  tail(10) %>%
  tokens(remove_punct = TRUE, padding = TRUE) %>%
  tokens_remove(stopwords("en"), padding = TRUE)

colls <- textstat_collocations(toks)
head(colls)
##        collocation count count_nested length   lambda        z
## 1           let us    34            0      2 6.257000 17.80637
## 2  fellow citizens    14            0      2 6.451738 16.18314
## 3 fellow americans    15            0      2 6.221678 16.16410
## 4      one another    14            0      2 6.592755 14.56082
## 5        god bless    15            0      2 8.628894 13.57027
## 6    united states    12            0      2 9.192044 13.22077

现在我们将它们组合起来,只保留搭配,然后通过文档获取频率:

代码语言:javascript
复制
dfmat <- tokens_compound(toks, colls, concatenator = " ") %>%
  dfm() %>%
  dfm_keep("* *")

dfm已经包含了每个搭配的按文档计数,但是如果您希望计数为data.frame格式,并带有分组选项,则使用textstat_frequency()。这里我只按文档输出前两位,但是如果您删除n = 2,那么它将根据文档给出所有搭配的频率。

代码语言:javascript
复制
textstat_frequency(dfmat, groups = docnames(dfmat), n = 2) %>%
  head(10)
##             feature frequency rank docfreq        group
## 1   nuclear weapons         4    1       1  1985-Reagan
## 2     human freedom         3    2       1  1985-Reagan
## 3        new breeze         4    1       1    1989-Bush
## 4    new engagement         3    2       1    1989-Bush
## 5            let us         7    1       1 1993-Clinton
## 6  fellow americans         4    2       1 1993-Clinton
## 7            let us         6    1       1 1997-Clinton
## 8       new century         6    1       1 1997-Clinton
## 9  nation's promise         2    1       1    2001-Bush
## 10      common good         2    1       1    2001-Bush
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67677033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档