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

是否可从Quanteda生成的相似度矩阵中提取平均值与标准差(SD)

完全可以从quanteda输出的相似度矩阵中提取全局/单文档的平均相似度与标准差(SD),操作方法如下:

textstat_simil()默认返回的是dist类的稀疏三角矩阵,需要先转换为完整矩阵再做计算,注意要排除对角线的1值(文档与自身的相似度,无统计意义),同时为了避免重复计算对称的文档对相似度,建议提取矩阵的上三角/下三角数值做统计。

完整操作代码

  1. 运行你原本的相似度计算代码:
tstat_q <- textstat_simil(dfmat_q, method = "cosine", margin = "documents")
  1. 转换为普通矩阵格式:
sim_mat <- as.matrix(tstat_q)
  1. 提取所有唯一非自身的相似度数值:
# 取矩阵上三角,排除对角线,得到所有不重复的文档对相似度
sim_values <- sim_mat[upper.tri(sim_mat)]
  1. 计算全局平均与标准差:
# 全局平均相似度
mean(sim_values)
# 全局相似度标准差
sd(sim_values)

若要计算单文档的平均相似度/标准差

如果需要得到每一篇文档和其他所有文档的相似度均值与SD,可按行遍历计算,排除对角线的1值即可:

# 单文档平均相似度
doc_mean_sim <- apply(sim_mat, 1, function(x) mean(x[x != 1]))
# 单文档相似度标准差
doc_sd_sim <- apply(sim_mat, 1, function(x) sd(x[x != 1]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:09