Кодируем слова из текста

Алекс Альтек
Этот код выполняет следующие шаги:

Открывает файл с именем 'фразы.txt' и кодирует все слова, присваивая им номер строки и номер слова в строке.
Пользователь вводит фразу.
Программа ищет слова из введенной фразы в закодированных словах из файла.
Выводит найденные слова и их коды, если они есть.
Примечание: Убедитесь, что файл 'фразы.txt' находится в том же каталоге, что
и ваш скрипт Python, или укажите полный путь к файлу в переменной filename



def encode_words(filename):
    encoded_words = {}
    with open(filename, 'r', encoding='utf-8') as file:
        lines = file.readlines()
        for i, line in enumerate(lines):
            words = line.split()
            for j, word in enumerate(words):
                code = f"{i + 1}-{j + 1}"
                encoded_words[word] = code
    return encoded_words

def find_words(input_phrase, encoded_words):
    found_words = {}
    for word in input_phrase.split():
        if word in encoded_words:
            found_words[word] = encoded_words[word]
    return found_words

def main():
    filename = 'фразы.txt'
    encoded_words = encode_words(filename)
    input_phrase = input("Введите фразу: ")
    found_words = find_words(input_phrase, encoded_words)
    if found_words:
        print("Найденные слова и их коды:")
        for word, code in found_words.items():
            print(f"{word}: {code}")
    else:
        print("слова из введенной фразы не найдены")

if __name__ == "__main__":
    main()


Введите фразу:
простой набор слов из текста фраз

Найденные слова и их коды:

простой: 19110-1
набор:   18887-23
слов:    18836-41
  из:    19099-4
текста:  18942-54
фраз:    19045-2


Введите фразу:
так может быть если мы не можем найти нужный вариант комбинации последовательности слов

Найденные слова и их коды:

так:     19122-7
может:   19112-7
быть:    19112-8
если:    19036-8
  мы:    19117-1
  не:    19122-9
можем:   19099-7
найти:   19050-4
нужный:  16827-27
вариант: 18355-27
комбинации: 17948-10
последовательности: 18460-23
слов:    18836-41




 из слов, букв и фраз можно делать сложные живые голограммы и анимации