You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用quanteda计算语料库前n个特征稀疏占比的问题咨询

问题解决方法

错误原因

topfeatures() 函数返回的是按词频排序的特征词与对应词频的命名数值向量,并非dfm对象,因此直接传入sparsity()会触发类型不支持的报错。如果你在去停用词步骤后直接调用sparsity(),计算的是整个dfm所有特征的稀疏占比,自然没法匹配你要统计top n特征稀疏度的需求。

解决思路

先拿到去停用词后的全量dfm,提取top n特征的名称,再对原dfm做特征筛选,仅保留这部分top n特征后再计算稀疏度即可。

修正后代码

# 第一步:预处理得到去停用词后的全量dfm
dfm_cleaned <- text %>% 
    tokens(remove_numbers = TRUE, remove_punct = TRUE, remove_symbols = TRUE) %>% 
    tokens_ngrams(n = 1:3) %>% 
    dfm() %>% 
    dfm_remove(stopwords("en"))

# 第二步:提取top 3000特征的名称
top_3000_names <- names(topfeatures(dfm_cleaned, n = 3000))

# 第三步:仅保留dfm中的top 3000特征,再计算稀疏度
top_n_sparsity <- dfm_keep(dfm_cleaned, pattern = top_3000_names) %>% 
    sparsity()

内容的提问来源于stack exchange,提问作者NHH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 13:06:01