Python извлечение предложения, содержащего 2 слова с условиями размера окна - PullRequest
0 голосов
/ 20 июня 2020

У меня та же проблема, которая обсуждалась в этой ссылке Python извлечение предложения, содержащего 2 слова

, но разница в том, что мне нужно извлекать только предложения, содержащие два слова в определенном размере windows поиск. например:

sentences = [ 'There was peace and happiness','hello every one',' How to Find Inner Peace ,love and Happiness ','Inner peace is closely related to happiness']

search_words= ['peace','happiness']
windows_size = 3  #search only the three words after the 1est word 'peace'
#output must be :
output= ['There was peace and happiness',' How to Find Inner Peace love and Happiness ']

1 Ответ

0 голосов
/ 20 июня 2020

Вот примерное решение.

def search(sentences, keyword1, keyword2, window=3):
    res = []
    for sentence in sentences:
        words = sentence.lower().split(" ")
        if keyword1 in words and keyword2 in words:
            keyword1_idx = words.index(keyword1)
            keyword2_idx = words.index(keyword2)
            if keyword2_idx - keyword1_idx <= window:
                res.append(sentence)
    return res

Учитывая список sentences и два ключевых слова, keyword1 и keyword2, мы перебираем список sentences один за другим. Мы разбиваем предложение на слова, предполагая, что слова разделены одним пробелом. Затем, после беглой проверки того, присутствуют ли оба ключевых слова в списке words, мы находим индекс каждого ключевого слова в words, чтобы убедиться, что индексы разнесены не более чем на window, т.е. слова расположены близко друг к другу в пределах window слов. Мы добавляем только те предложения, которые удовлетворяют этому условию, в список res и возвращаем этот результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...