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

quanteda实操:基于标题列关键词筛选语料库子集的解决方案

解决方案

错误根因

你遇到的无法找到titre对象报错,本质是构建语料库时没有将原数据的titre列保留为语料库的文档变量(docvars):如果你仅将文本列的向量传入corpus()函数,语料库不会携带原数据的其他字段,corpus_subset自然无法检索到titre。

步骤1:正确构建带完整元数据的语料库

将整个数据框传入corpus(),仅通过text_field参数指定文本列,原数据的其他列会自动保留为语料库的文档变量:

library(quanteda)
library(stringr)

# 传入完整数据框,指定Texte为文本列,其他列自动存为docvars
text_corp <- corpus(lemma_data_2008, text_field = "Texte")

# 可执行以下代码验证titre是否在文档变量中
head(docvars(text_corp))

步骤2:按标题关键词筛选语料

用正则匹配实现忽略大小写、覆盖复数形式的关键词校验,再通过corpus_subset完成筛选:

# 定义匹配规则:词边界匹配,支持单数/复数,忽略大小写
keyword_pattern <- "\\b(migrant|réfugié|asile|migratoire)s?\\b"

# 筛选标题匹配关键词的语料
filtered_corp <- corpus_subset(text_corp, str_detect(titre, regex(keyword_pattern, ignore_case = TRUE)))

步骤3:执行后续预处理流程

对筛选后的语料直接执行分词、去停用词、构建dfm、修剪等操作即可:

# 分词,同时移除标点、数字、特殊符号
toks <- tokens(filtered_corp, remove_punct = TRUE, remove_numbers = TRUE, remove_symbols = TRUE)

# 移除法语停用词
toks_nostop <- tokens_remove(toks, stopwords(language = "french"))

# 构建dfm
dfm_raw <- dfm(toks_nostop)

# 修剪dfm(示例为保留至少在3篇文档中出现的特征,可按需调整参数)
dfm_trimmed <- dfm_trim(dfm_raw, min_docfreq = 3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:48:04