Ошибка при использовании NamesExtractor 'generator' object has no attribute 'matches'
Использую Jupyter Notebook
Есть такой код:
from collections import defaultdict
from natasha import NamesExtractor
from nltk.tokenize import sent_tokenize
from natasha import MorphVocab
morph_vocab = MorphVocab()
names_contexts = defaultdict(set)
def update_names_counts(sentence, names_counts):
matches = extract_names(sentence)
if matches.matches:
for match in matches:
name = get_full_name(match.fact)
names_counts[name] += 1
#names_contexts[name].add(sentence)
def get_full_name(match_object):
name_parts = []
if match_object.first is not None:
name_parts.append(match_object.first)
if match_object.middle is not None:
name_parts.append(match_object.middle)
if match_object.last is not None:
name_parts.append(match_object.last)
full_name = ' '.join(name_parts)
return full_name
chapter1 = part1_chapter[1]
sentences = sent_tokenize(chapter1)
extract_names = NamesExtractor(morph_vocab)
names_counts = defaultdict(int)
for sentence in sentences:
update_names_counts(sentence, names_counts)
print('Количество найденных имён в тексте:', len(names_counts))
names_top_10 = sorted(names_counts.items(),
key=lambda name_and_count: name_and_count[1],
reverse=True)[:10]
и при обработке возникает ошибка:
AttributeError Traceback (most recent call last)
<ipython-input-9-dc8d1d7aebd4> in <module>
8 # извлекаем из каждого предложения имена и обновляем счётчик имён
9 for sentence in sentences:
---> 10 update_names_counts(sentence, names_counts)
11
12 print('Количество найденных имён в тексте:', len(names_counts))
<ipython-input-6-faf1b8b59c57> in update_names_counts(sentence, names_counts)
30 def update_names_counts(sentence, names_counts):
31 matches = extract_names(sentence)
---> 32 if matches.matches:
33 for match in matches:
34 name = get_full_name(match.fact)
AttributeError: 'generator' object has no attribute 'matches'
около года назад текущий вариант кода работал, на текущий момент не могу устранить проблему, буду благодарна за помощь!