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

如何使用spaCy提取句子中指定位置的NN并赋值给变量?

解决spaCy提取指定位置NN并赋值变量的问题

没问题,我来帮你调整代码实现需求。核心思路是先把所有符合条件的NN收集到一个列表里,再根据索引提取你需要的第1个和第3个(注意Python是0索引,所以第1个对应索引0,第3个对应索引2),之后就能把它们赋值给变量啦。

修改后的完整代码

import spacy

frase1 = input('> \n\n')
nlp = spacy.load('en')

# 收集所有NN到列表中
nn_list = [t.text for t in nlp(frase1) if t.tag_ == 'NN']

# 提取并赋值变量(先判断列表长度是否足够,避免索引错误)
if len(nn_list) >= 3:
    first_nn = nn_list[0]
    third_nn = nn_list[2]
    print(f"第1个NN: {first_nn}")
    print(f"第3个NN: {third_nn}")
else:
    print(f"输入句子中只有{len(nn_list)}个NN,不足3个,请调整输入内容")

代码说明

  • 用列表推导式nn_list = [t.text for t in nlp(frase1) if t.tag_ == 'NN']一次性筛选出所有NN并存储,比原来的循环打印更便于后续处理。
  • 增加了长度判断,防止用户输入的句子中NN数量不足3个时出现IndexError,让代码更健壮。
  • 提取后直接赋值给first_nn和third_nn变量,你可以根据需求直接使用这两个变量做后续操作。

用你的示例句子"the cat is better than a dog and a wolf"测试的话,输出会是:

第1个NN: cat
第3个NN: wolf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:34:47