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

如何按词性筛选语料分词并移除词性后缀构建文档特征矩阵

基于spacyr与quanteda的词性筛选、标注移除操作方案

以下操作完全适配你当前的法语语料处理流程,直接基于已生成的带词性标注tokens对象即可运行。


1. 筛选指定词性(PRON、VERB)分词

直接使用quanteda内置的tokens_select()函数,通过glob通配符匹配所有以目标词性结尾的token,无需额外拆分字符串:

library(quanteda)

# 假设你通过as.tokens()生成的带词性分词对象名为toks_with_pos
toks_pron_verb <- tokens_select(
  x = toks_with_pos,
  pattern = "*/(PRON|VERB)$",
  valuetype = "glob",
  selection = "keep"
)

运行后得到的toks_pron_verb和你给出的预期输出完全一致,仅保留代词、动词两类分词。如果后续需要新增筛选的词性(比如名词NOUN、形容词ADJ),直接在括号内补充即可,格式为(PRON|VERB|NOUN|ADJ)。


2. 移除词性标注后缀并构建文档-特征矩阵

两种实现方式,按需选择即可:

方式一:基于已筛选的带词性tokens直接处理

通过tokens_replace()批量移除末尾的/词性后缀,不需要写复杂的正则表达式:

# 移除所有token末尾的词性标注
toks_clean <- tokens_replace(
  x = toks_pron_verb,
  pattern = "*/([A-Z]+)$",
  replacement = "*",
  valuetype = "glob"
)

# 直接生成文档-特征矩阵
my_dfm <- dfm(toks_clean)

方式二:优化前置流程,避免重复操作

你可以在spacy_parse()输出结果后先做词性过滤,再生成不带标注的tokens,省去拼接、删除后缀的步骤。
注意:如果你的语料中存在本身包含/字符的特殊词汇,优先选择该前置过滤流程,避免后缀匹配错误。

library(spacyr)

# 运行spacy词形还原与词性标注
spacy_parsed <- spacy_parse(your_raw_corpus, lemma = TRUE, pos = TRUE)

# 提前过滤需要的词性
spacy_filtered <- spacy_parsed[spacy_parsed$pos %in% c("PRON", "VERB"), ]

# 直接基于词元生成无词性标注的tokens对象
toks_lemma <- as.tokens(spacy_filtered, use_lemma = TRUE, include_pos = "none")

# 生成文档-特征矩阵
my_dfm <- dfm(toks_lemma)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:24:21