поиск пар слов в фразах текста txt

*  поиск пар соседних слов в фразе текста в файле txt


# Функция для извлечения пар соседних слов из фразы
def get_word_pairs(phrase):
    words = phrase.split()
    pairs = []
    for i in range(len(words) - 1):
        pairs.append((words[i], words[i + 1]))
    return pairs

# Функция для поиска строк, содержащих пары соседних слов
def find_matching_lines(text, pairs):
    matching_lines = []
    for line in text.splitlines():
        # Проверяем наличие каждой пары соседних слов в строке
        for pair in pairs:
            # Формируем строку для проверки
            search_string = f"{pair[0]} {pair[1]}"
            if search_string in line:
                matching_lines.append(line)
                break  # Если нашли хотя бы одну пару, добавляем строку и выходим из цикла
    return matching_lines

# Основная часть программы
def main():
    # Чтение текста из файла
    with open('текст.txt', 'r', encoding='utf-8') as file:
        text = file.read()

    # Ввод фразы от пользователя
    phrase = input("Введите фразу: ")

    # Получение пар соседних слов
    pairs = get_word_pairs(phrase)

    # Поиск строк, содержащих пары слов
    matching_lines = find_matching_lines(text, pairs)

    # Вывод найденных строк
    print("Найденные строки:")
    for line in matching_lines:
        print(line)

if __name__ == "__main__":
    main()




 =>>





*  другой вариант похожего кода,  который ищет пары слов фразы
но  в произвольном порядке






# Функция для извлечения пар слов из фразы
def get_word_pairs(phrase):
    words = phrase.split()
    pairs = []
    for i in range(len(words) - 1):
        pairs.append((words[i], words[i + 1]))
    return pairs

# Функция для поиска строк, содержащих пары слов
def find_matching_lines(text, pairs):
    matching_lines = []
    for line in text.splitlines():
        for pair in pairs:
            if pair[0] in line and pair[1] in line:
                matching_lines.append(line)
                break  # Если нашли хотя бы одну пару, добавляем строку и выходим из цикла
    return matching_lines

# Основная часть программы
def main():
    # Чтение текста из файла
    with open('текст.txt', 'r', encoding='utf-8') as file:
        text = file.read()

    # Ввод фразы от пользователя
    phrase = input("Введите фразу: ")

    # Получение пар слов
    pairs = get_word_pairs(phrase)

    # Поиск строк, содержащих пары слов
    matching_lines = find_matching_lines(text, pairs)

    # Вывод найденных строк
    print("Найденные строки:")
    for line in matching_lines:
        print(line)

if __name__ == "__main__":
    main()





 ==->>




набор фраз текста для поиска пар слов которые мы ввели через input
нам просто нужно понять как всё это было на самом деле
мы думаем что это может быть немного по другому
наверно такое может быть с каждым человеком
я не думал что в жизни всё так сложно
наверно это было задумано уже давно
я думал что наш мир устроен немного по другому
и тогда происходит с нами всё что и должно с нами быть
это не так просто но я всё же попробую это сделать
и что тогда мне делать если это так сложно понять
я уже думал об этом и не смог понять
что это может означать в реальности для нас всех - никто толком не знает
я думаю что нам нужно всё хорошо проверить ещё один раз
итерации данных меняют содержание всего того что у нас было и есть на данный момент времени
это только на словах всё так просто - на самом деле здесь есть нечто неоднозначно сложное
мы всегда думаем что нашли то что искали - но потом иногда оказывается что мы нашли не совсем то что хотели
так что ты хотел мне сказать об этом - я всегда об этом думаю
так всё наверно и было задумано - но для чего я этого не знаю  или просто не понимаю
это наверно достаточно просто - но мы должны быть хоть как то в этом уверены
это простой выбор - но на самом деле здесь не всё так может быть просто
я понял, вам нужно изменить код так, чтобы он искал строки в тексте
строки содержащие именно пары соседних слов из введенной фразы
давайте изменим функцию поиска, чтобы она проверяла то что нам надо
мы проверим находятся ли пары слов из этой введенной фразы
эта информация  есть  в том же порядке  в строках нашего текста
вот обновленный код того что мы должны получить в итоге
здесь есть так  много новых фраз  со словами  которые мы должны найти  в нашем тексте
кто то всегда в жизни знает больше других - и это всё имеет значение для всех тех  кто это понимает
но при этом они обычно не думают о том  что в этом может быть намного больше смысла  чем это есть на самом деле


Рецензии