如何查看Quanteda(R)从数据集中移除的停用词与标点类型数量
当然没问题!要搞清楚被移除的停用词和标点有多少种类型,我们可以通过对比原始DFM和处理后的DFM来实现,分两步操作就好:
统计被移除的停用词类型数量
首先,先明确你使用的英文停用词集合,再对比原始未处理的DFM和你生成的dfm_nostp,找出消失的停用词:
# 提取你用到的英文停用词集合 used_stopwords <- stopwords("english") # 生成未移除停用词和标点的原始DFM(用于对比) dfm_original <- dfm(data) # 找出被移除的停用词:先找原始DFM有但处理后没有的特征,再筛选出属于停用词的部分 removed_stopwords <- intersect( setdiff(featnames(dfm_original), featnames(dfm_nostp)), used_stopwords ) # 查看停用词类型数量 cat("移除的停用词类型数量:", length(removed_stopwords), "\n") # 如果想具体看移除了哪些停用词,直接打印即可 # print(removed_stopwords)
统计被移除的标点类型数量
quanteda内置了默认的标点识别集合,我们用同样的逻辑就能统计被移除的标点类型数:
# 获取quanteda默认识别的标点集合 used_punctuation <- quanteda::punctuation() # 找出被移除的标点 removed_punctuation <- intersect( setdiff(featnames(dfm_original), featnames(dfm_nostp)), used_punctuation ) # 查看标点类型数量 cat("移除的标点类型数量:", length(removed_punctuation), "\n") # 查看具体移除的标点 # print(removed_punctuation)
简单解释下逻辑:setdiff用来找出原始DFM中存在但dfm_nostp中不存在的特征,再通过intersect筛选出属于停用词或标点的部分,这样就能精准统计你想要的类型数量啦。
内容的提问来源于stack exchange,提问作者tttt2333
相关产品推荐
相关产品推荐

