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

如何在Spacy中提取不含语法冠词的名词(支持多语言)

在spaCy中提取不含冠词的核心名词(多语言兼容方案)

要得到只包含核心名词的列表,不用硬编码移除特定冠词或限定词,直接利用spaCy名词块的**语法中心词(root)**属性即可,这是多语言通用的方案:

spaCy的noun_chunks每个块都有一个root字段,这个字段指向该名词块的语法核心——也就是真正的名词本身,自动排除了前面的冠词、数词、限定词等修饰成分。不管是英语、法语、西班牙语还是其他spaCy支持的语言,只要模型能正确解析名词块,就能用这个方法提取核心名词。

修改后的示例代码:

import spacy

nlp_en = spacy.load('en_core_web_sm') # v3.7.1
doc = nlp_en('The man has cars, houses and one dog')
core_nouns = [chunk.root.text for chunk in doc.noun_chunks]
print(core_nouns) # ['man', 'cars', 'houses', 'dog']

举个多语言的例子,比如法语句子"Le chat noir mange une pomme",加载fr_core_news_sm模型后,用同样的代码会输出['chat', 'pomme'],自动去掉了冠词"Le"和"une",完全不需要针对不同语言做额外配置。

如果遇到带形容词修饰的名词块(比如"The big old house"),root依然会指向核心名词"house",不会受前置修饰成分影响。

内容的提问来源于stack exchange,提问作者João Pimentel Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:49:57