仅从令牌中提取某些命名实体

扎眼的阳光 nlp 182

原文标题Extract Only Certain Named Entities From Tokens

快速提问(希望如此)。我是否有可能获得令牌的命名实体,除了带有 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

这可能吗?任何帮助将不胜感激。

原文链接:https://stackoverflow.com//questions/71460724/extract-only-certain-named-entities-from-tokens

回复

我来回复
  • Wiktor Stribiżew的头像
    Wiktor Stribiżew 评论

    您可以使用列表推导过滤掉实体:

    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]
    
    2年前 0条评论