首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dfm_weight()导致相对频率>1

dfm_weight()导致相对频率>1
EN

Stack Overflow用户
提问于 2022-04-10 23:34:16
回答 1查看 70关注 0票数 0

我正在使用Quanteda,并试图计算语料库中特定单词的相对频率,该语料库是按日期和当事方组织的。但是,在将语料库转换为dfm并使用dfm_weight(dfmat,than =“textstat_frequency”)之后,我得到了大于1的分数。

下面是我的代码(我还拦截并清理了标记,而不是代码中的标记):

代码语言:javascript
复制
corp <- corpus(title_df, text_field = "text", meta = list(title_df[,-4]))
toks <- tokens(corp)
dfmat <- dfm(toks, verbose=TRUE)
dfm_rel_freq <- dfm_weight(dfmat, scheme = "prop") 
rel_freq_all <- quanteda.textstats::textstat_frequency(dfm_rel_freq, groups = year)  
# arrange by max frequency:
rel_freq_all %>% arrange(frequency) %>% tail()

 
 
feature
<chr>
frequency
<dbl>
rank
<dbl>
docfreq
<dbl>
group
<chr>
81093   pension 5.802529    1   117 2004
40971   pension 6.117154    1   97  1998
148372  peopl   6.430454    1   220 2014
65747   pension 6.721089    1   138 2002
53303   pension 7.871011    1   153 2000
74391   pension 8.153381    1   156 2003
6 rows
EN

回答 1

Stack Overflow用户

发布于 2022-04-11 03:06:17

这是预期的行为:quanteda.textstats::textstat_frequency(x, groups = year)将在年度组内对dfm进行求和。因此,您来自dfm的比例正在被加总,它们可以超过1.0。

例如,如果您希望对组进行不同的操作,则不应该使用groups参数,然后使用一些dplyr操作,例如

代码语言:javascript
复制
library(dplyr)
quanteda.textstats::textstat_frequency(dfm_rel_freq) %>%
    group_by(year) %>%
    summarize(mean_rel_freq = mean(frequency))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71821325

复制
相关文章

相似问题

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