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

如何在R中提取quanteda包fcm对象的50×50子矩阵?

解决quanteda中提取fcm目标子矩阵的问题

核心问题分析

你之前只筛选了列维度,所以得到全量行×目标列的矩阵;而fcm_select返回空矩阵,大概率是目标词汇与fcm特征名不匹配(比如大小写、词形差异),或者词汇本身不在fcm的特征列表中。

正确提取方法

方法1:直接行列索引筛选

先确保目标词汇存在于fcm的特征集合中,再同时筛选行和列:

# 定义你的50个目标词汇向量
target_words <- c("词1", "词2", ..., "词50")
# 筛选出确实存在于fcm中的词汇(避免无效匹配)
valid_words <- intersect(target_words, featnames(fcm))
# 提取行和列均为有效词汇的子矩阵
fcm_sub <- fcm[valid_words, valid_words]

方法2:正确使用fcm_select

如果要用fcm_select,需注意匹配规则,比如忽略大小写、确保词汇匹配:

fcm_sub <- fcm_select(
  fcm,
  pattern = target_words,
  selection = "keep",
  ignore_case = TRUE  # 解决大小写不匹配问题
)
# 若仍有问题,可先检查目标词汇与fcm特征名的交集
print(intersect(target_words, featnames(fcm)))

验证步骤

提取完成后,用以下代码确认结果:

# 查看子矩阵维度
dim(fcm_sub)
# 查看子矩阵的特征词汇
featnames(fcm_sub)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:54:18