Это потому, что такие вещи, как ents
или chunks
, являются Spans, т.е. коллекциями токеновСледовательно, вам нужно перебирать их отдельные токены, чтобы получить их атрибуты, такие как tag
или tag_
>>> doc = nlp(u'Mr. Best flew to New York on Saturday morning.')
>>> [(X.text, X.tag_) for X in doc.ents]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
AttributeError: 'spacy.tokens.span.Span' object has no attribute 'tag_'
>>> [(X.text, X.tag_) for Y in doc.ents for X in Y]
[('Best', 'NNP'), ('New', 'NNP'), ('York', 'NNP'), ('Saturday', 'NNP'), ('morning', 'NN')]