Пример Spacy NLP: не удается перевести скрытый токен в нижний регистр, возникает ошибка

#spacy #spacy-3

Вопрос:

 from collections import defaultdict
item_ratings = defaultdict(list)

for idx, review in data.iterrows():

    doc = nlp(review.text)

    matches = matcher(doc)
    
    found_items = set(doc[match[1]:match[2]].lower_ for match in matches)

    
for item in found_items:
        
    item_ratings[item].append(review.stars)
 

Ошибка:

 AttributeError: 'spacy.tokens.span.Span' object has no attribute 'lower_'
 

Мне нужно, чтобы жетоны были в нижнем регистре, как я могу это сделать?

Ответ №1:

 found_items = set(doc[match[1]:match[2]].text.lower() for match in matches)
 

Как говорится в ошибке, Span объектов нет lower_ . Вы можете использовать text , а затем это просто строка, чтобы вы могли ее записать в нижнем регистре.