Можно ли отбросить предложения из текста с помощью NLTK в Python? - PullRequest
0 голосов
/ 28 февраля 2020

Например, у меня есть текст, который состоит из нескольких предложений:

"Первое предложение не имеет значения. Второе содержит информацию о KPI Я хочу сохранить. Третье бесполезно. Четвертое упоминает topi c «актуально для меня».

Кроме того, у меня есть собственный словарь со словами { KPI, topi c}. Можно ли как-нибудь написать код, который будет хранить только те предложения, где хотя бы одно слово упоминается в словаре? Так что из вышеприведенного примера останутся только 2-е и 4-е предложения.

Спасибо

PS У меня уже есть код для разбивки текста на предложения, но оставлять только "релевантные" не что-то общее, как я вижу.

1 Ответ

1 голос
/ 28 февраля 2020

Одним из решений будет использование списочных представлений (см. Пример ниже). Но может быть лучшее и более питонное c решение.

sentences = ['Lorem ipsum dolor keyword sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
        'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
        'Duis aute irure other_keyword dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
        'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.']

vocabulary = {'keyword': 'Topic 1',
             'other_keyword': 'Topic 2'}

[sentence for sentence in sentences if any(word in sentence for word in list(vocabulary.keys()))]


>>> ['Lorem ipsum dolor keyword sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
 'Duis aute irure other_keyword dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.']
...