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

如何设置spaCy布尔参数 筛选指定词汇并存储lemma词元

spaCy指定规则筛选词元实现方案

不需要修改spaCy的内置配置参数,直接在遍历Token对象时增加条件判断,收集符合要求的词元(lemma)即可,具体实现逻辑如下:

  • 筛选规则直接复用Token自带的两个布尔属性:is_alpha判断token是否全由字母组成,is_stop判断token是否为停用词
  • 条件判断时不需要写== True/== False的冗余写法,直接用属性本身、not取反即可,可读性更强
  • 初始化列表/集合作为存储容器,遍历过程中把同时满足两个条件的token的lemma_属性存入容器即可

修改后的完整可运行代码:

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")

# 存储符合条件的lemma
result = []
for token in doc:
    # 双条件同时满足:是纯字母词汇、不是停用词
    if token.is_alpha and not token.is_stop:
        result.append(token.lemma_)

print(result)

运行上述代码的输出结果为:['Apple', 'look', 'buy', 'startup', 'billion']

结果说明:原句中的停用词is/at/for、带标点的U.K.、货币符号$、数字1都被正确过滤,最终保留的都是符合要求的词元形式。

如果需要对结果去重,直接把存储结构换成集合推导式即可,代码可以简化为一行:

result = list({token.lemma_ for token in doc if token.is_alpha and not token.is_stop})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 12:51:22