Facing AttributeError: для tag_, использующего Spacy в Python - PullRequest
0 голосов
/ 13 декабря 2018

Я использую Spacy для "POS Tagging" и получаю ошибку ниже.У меня есть фрейм данных, в котором есть столбец «описание», в котором мне нужно извлечь POS для каждого слова

Фрейм данных:

No.      Description
1        My net is not working
2        I will be out for dinner
3        Can I order food
4        Wifi issue

Код:

import pandas as pd
read_data = pd.read_csv('C:\\Users\\abc\\def\\pqr\\Data\\training_data.csv', encoding="utf-8")
entity = []
for parsed_doc in read_data['Description']:
    doc = nlp(parsed_doc)
    a = [(X.text, X.tag_) for X in doc.ents]
    entity.append(a)

Приведенный выше код выдает ошибку:

Ошибка: AttributeError: у объекта 'spacy.tokens.span.Span' нет атрибута 'tag _'

Однакотот же код работает нормально для атрибута "Метка", а также если я использую одно предложение

doc = nlp('can you please help me to install wifi')
for i in doc:
    print (i.text, i.tag_)

1 Ответ

0 голосов
/ 13 декабря 2018

Это потому, что такие вещи, как 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')]
...