快速提问(希望如此(。我是否可以获得令牌的命名实体,除了带有CARDINAL标签的实体(标签是397(。下面是我的代码:
spacy_model = spacy.load('en-core-web-lg')
f = open('temp.txt')
tokens = spacy_model(f.read())
named_entities = tokens.ents #Except where named_entities.label = 397
这可能吗?如有任何帮助,我们将不胜感激。
您可以使用列表理解过滤出实体:
named_entities = [t for t in tokens.ents if t.label_ != 'CARDINAL']
这里有一个测试:
import spacy
nlp = spacy.load("en_core_web_sm")
tokens = nlp('The basket costs $10. I bought 6.')
print([(ent.text, ent.label_) for ent in tokens.ents])
# => [('10', 'MONEY'), ('6', 'CARDINAL')]
print([t for t in tokens.ents if t.label_ != 'CARDINAL'])
# => [10]