在quanteda R中绘制词分布对应分析双图及字典整合需求咨询
解决方案
1. 绘制词分布的对应分析图
在quanteda中,生成聚焦词关联的二维对应分析(CA)图,核心是使用textmodel_ca()构建对应分析模型,再用textplot_ca()绘图——这正是替代textplot_scale1d()(侧重文档/说话者位置)的正确工具。
实操代码示例:
library(quanteda) # 构造示例语料库与词频矩阵 corp <- corpus(data_corpus_inaugural[1:10]) dfm <- dfm(corp, remove_punct = TRUE, remove_stopwords = TRUE) # 生成对应分析模型 ca_model <- textmodel_ca(dfm) # 仅绘制词的二维关联图 textplot_ca(ca_model, margin = "features")
margin = "features"参数会过滤掉文档节点,只保留词的分布点,完全匹配你需要的词关联图需求。
2. 字典筛选后的进阶实现
要先通过字典筛选,再展示与字典关键词共现词的CA图,可按以下步骤操作:
步骤1:基于字典筛选目标词/文档
# 替换为你的自定义字典 my_dict <- dictionary(list( economy = c("tax", "budget", "jobs", "economy"), freedom = c("freedom", "liberty", "rights") )) # 提取与字典词共现的词(基于窗口共现规则) fcm_obj <- fcm(dfm(corp, remove_punct = TRUE, remove_stopwords = TRUE), context = "window", window = 5) dict_terms <- unlist(my_dict) cooc_terms <- names(which(colSums(fcm_obj[dict_terms, ]) > 0)) # 构建仅包含共现词的词频矩阵 dfm_cooc <- dfm(corp) %>% dfm_select(pattern = cooc_terms) %>% dfm_remove(stopwords("en"), min_nchar = 3)
步骤2:生成筛选后的词关联CA图
# 对筛选后的矩阵运行对应分析 ca_cooc <- textmodel_ca(dfm_cooc) # 绘制共现词的二维关联图 textplot_ca(ca_cooc, margin = "features", color = "#2E86AB", size = 2.5)
该图会直观展示与字典关键词共现的词之间的语义关联结构,符合进阶需求。
内容的提问来源于stack exchange,提问作者David Threlfall
相关产品推荐
相关产品推荐

