Я использовал spaCy для поиска наиболее употребляемых существительных и noun_phrases.
Я могу успешно избавиться от знаков препинания и стоп-слов при поиске отдельных существительных
docx = nlp('The bird is flying high in the sky blue of color')
# Just looking at nouns
nouns = []
for token in docx:
if token.is_stop != True and token.is_punct != True and token.pos_ == 'NOUN':
nouns.append(token)
# Count and look at the most frequent nouns #
word_freq = Counter(nouns)
common_nouns = word_freq.most_common(10)
Однако использование noun_chunks для определения фраз приводит к ошибке атрибута
noun_phrases = []
for noun in docx.noun_chunks:
if len(noun) > 1 and '-PRON-' not in noun.lemma_ and noun.is_stop:
noun_phrases.append(noun)
AttributeError: объект spacy.tokens.span.Span не имеет атрибута> is_stop
Я понимаю природу сообщения, но я не могу, хоть убей, правильно понять синтаксис, при котором присутствие стоп-слова в лемматизированной строке было бы исключено из добавления в список noun_phrases
Вывод без удаления игнорируемых слов
[{'word': 'птица', 'lemma': 'птица', 'len': 2}, {'word': 'небесно-голубой', 'lemma': 'небесно-голубой', 'len ': 3}]
Предполагаемый результат (удаление леммы, содержащей запрещающие слова, которые включают "the"
[{}]