Сортировка слов по буквам

def extract_vowel_groups(word):
    vowels = "aeiouаеёиоуыэюя"
    vowel_groups = []
    current_group = ''
    for char in word:
        if char.lower() in vowels:
            current_group += char.lower()
        else:
            if current_group:
                vowel_groups.append(current_group)
                current_group = ''
    if current_group:
        vowel_groups.append(current_group)
    return ''.join(vowel_groups)

def sort_words_by_vowel_groups(words):
    return sorted(words, key=lambda x: extract_vowel_groups(x))

# Чтение слов из файла
filename = "список.txt"
with open(filename, "r", encoding="utf-8") as file:
    words = file.read().split()

# Сортировка слов по группам гласных букв и их порядку
sorted_words = sort_words_by_vowel_groups(words)

# Вывод отсортированного списка слов с группами гласных
for word in sorted_words:
    vowel_groups = extract_vowel_groups(word)
    print(f"{word} - {{{vowel_groups}}}")



-------------------------------------------------



Эта программа берёт набор слов из файла список.txt
и сортирует их по буквам указанным в наборе vowels = "aeiouаеёиоуыэюя"
Такая сортировка может быть нужна для определения ключей похожих слов в тексте




вывод данных :


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




содержание файла :


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









поиск рифм :


import re

# Открываем файл и считываем весь текст
with open('фразы.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# Находим все слова в тексте и записываем их в список
words = re.findall(r'\b\w+\b', text)

# Получаем слово для поиска, используя input
search_term = input('слово для поиска: ')

# Получаем окончание для слова поиска
ending = search_term[-2:]

# Ищем рифмы на основе окончания
rhymes = set()
for word in words:
    if word.endswith(ending) and word != search_term:
        rhymes.add(word)

        # Если количество найденных рифм достигло 1000, прерываем поиск
        if len(rhymes) == 1000:
            break

# Выводим результаты
if len(rhymes) > 0:
    print(f" рифмы с '{search_term}':")
    for rhyme in rhymes:
        print(rhyme)
else:
    print(f"нет рифм с '{search_term}'")




можно

бесполезно
иррационально
обнаружено
стыдно
разумно
исключительно
видно
Абсолютно
бесследно
определенно
детерминировано
максимально
рассмотрено
удачно
уважительно
безразлично
пропорционально
напрасно

первоначально
увлекательно
досконально
изрядно
явственно
вечно
вычислительно
магнитно
вероятно
кино
положительно
нарочно
ладно
смехотворно
ментально
легкомысленно
ежедневно
объектно
верно
многогранно
неравномерно
неопределённо
прекрасно
бессовестно
экспериментально
Социально
полезно
законно
произвольно
отстранённо
осмыслено
спрятано
Подобно
истинно
рассказано
одновременно
непонятно
Аналогично
задумано
правдоподобно
дно
точно
генеративно
ненужно
поочерёдно
бесстрашно
абстрактно
установлено
должно
ясно
отрицательно
официально
незаметно
определённо
беззаботно
привязано
эквивалентно
субъективно
безгранично
адаптивно
проявлено
благоприятно
подчинено
свойственно
предписано
намешено
Наверно
классно
уникально
гениально
окончательно
равно
Главно
циклично
сознательно
невольно
непрестанно
бездумно
неизбежно
критично
поздно
аккуратно
пронизано
взаимно
заложено
неразрывно
локализовано
неизменно
спровоцировано
согласно
вариативно
слышно
черезвычайно
совершенно
серьёзно
животно
кончено
сказано
наполнено
стремительно
жизненно
целенаправленно
серьезно
рефлекторно
удобно
никудышно
идеально
нейтрино
звено
сосредоточенно
лаконично
Неудивительно
сомнительно
социально
существенно
безуспешно
сердечно
Одновременно
осознано
Невероятно
сосредоточено
примерно
изысканно
умно
отрезано
честно
собственно
ускоренно
приблизительно
Истинно
завязано
письменно
суждено
просчитано
полно
изложено
создано
взаимосвязано
аналогично
поэтапно
многообразно
научно
универсально
прилично
основано
направлено
странно
конкурентоспособно
осуществлено
комплексно
банально
позитронно
окутано
относительно
вызвано
словесно
довольно
дозволено
неприятно
объяснено
Изначально
кардинально
Нужно
Показано
непременно
бессознательно
панно
воплощено
превосходно
естественно
размещено
бесценно
Первоначально
Чрезвычайно
совершено
неожиданно
действительно
прогрессивно
оправдано
сравнительно
дорстаточно
познано
конкретно
Лично
привычно
недавно
Особенно
неосознано
возможно
желательно
нано
Невозможно
Действительно
локализованно
традиционно
локально
признано
предельно
необязательно
скучно
Несуразно
Можно
нелинейно
удивительно
Важно
причинно
правильно
ограничено
элегантно
значительно
многократно
повторно
познавательно
Ясно
предано
переплетено
оспорено
Отлично
функционально
осознанно
буквально
релевантно
решено
изучено
нереально
сгенерировано
активно
способно
предусмотрено
неправильно
радостно
неточно
Примерно
эволюционно
наверно
огульно
накоплено
снисходительно
свободно
концептуально
фрактально
срочно
бесплатно
дожно
корректно
предварительно
интуитивно
внезапно
Арно
необычно
одно
обязательно
умственно
безмятежно
структурированно
внимательно
комфортно
Исключительно
детально
откровенно
конечно
Интересно
важно
фантастично
конструктитивно
успешно
Конечно
обсуждено
искусно
последовательно
явно
пристально
спокойно
сокращено
одназначно
предсказано
принципиально
безнадёжно
соответственно
искажено
Активно
перпендикулярно
занимательно
осторожно
несомненно
ничтожно
заслуженно
спорно
заодно
использовано
неосознанно
выгодно
благожелательно
связано
окно
куплено
Правильно
опасно
запрещено
однозначно
трудно
поразительно
смешно
изображено
адекватно
отдельно
достойно
известно
наглядно
хроно
убедительно
неинтересно
Удивительно
понятно
нормально
линейно
Известно
совместно
позно
Обычно
полноценно
сильно
Серьезно
публично
Неважно
безрассудно
приведено
сопровождено
реализовано
эффективно
преимущественно
Словно
формально
определено
повсеместно
элементарно
безвозвратно
автономно
поручено
Недавно
искусственно
применительно
обратно
неясно
потрясено
Несомненно
выполнено
специально
неудачно
Оно
полотно
модно
духовно
невозможно
временно
Относительно
Приятно
постепенно
закономерно
дословно
музыкально
безумно
прочно
построено
упоенно
объективно
аллегорично
повлияно
исключено
нестандартно
преувеличено
едино
двумерно
тщательно
намешано
выражено
Сложно
обосновано
креативно
визуально
подвержено
плавно
неудобно
Возможно
коллективно
объявлено
Непосредственно
морозно
продуктивно
затруднено
доказано
преблизительно
реалистично
ровно
этично
Понятно
содержательно
замечено
рано
военно
приспособлено
запутано
избыточно
условно
многословно
абсолютно
Одно
тактично
главно
разработано
неумно
недостаточно
неэффективно
индивидуально
заключено
преодолено
чрезвычайно
Очевидно
нужно
вариационно
неслучайно
записано
безусловно
наивно
чувственно
устроено
лишено
потеряно
безжалостно
уголовно
Совершенно
властно
словно
координально
занятно
электронно
сломано
переработано
вооружено
частично
структурно
безупречно
компетентно
следовательно
экономно
Нано
подключено
экспоненциально
математично
Бессмысленно
спонтанно
удаленно
предположительно
любезно
смертельно
забавно
неоправдано
рационально
реально
Недостаточно
неудовлетворено
тошно
страшно
подробно
нежно
синхронизировано
поверхностно
дружно
Странно
безоговорочно
достоверно
намеренно
Прекрасно
интересно
инвариантно
давно
неоднозначно
актуально
непрерывно
прозрачно
многозначительно
но
Самостоятельно
положено
порно
заумно
утрировано
представлено
выверенно
поглощено
медленно
соответсвенно
достаточно
зерно
логично
безхитростно
рентабельно
неизвестно
информационно
Должно
непосредственно
Естественно
случайно
неибежно
разнообразно
виртуально
перемешано
маловероятно
безопасно
немедленно
Давно
возбуждено
оценено
обычно
подсознательно
ежемоментно
чёрно
Достаточно
осмысленно
угодно
замечательно
потенциально
обусловлено
надежно
молекулярно
доступно
материально
Определённо
параллельно
опубликовано
цельно
ответственно
написано
обидно
стандартно
Согласно
именно
клеточно
изменено
избирательно
спрогнозированно
преданно
старательно
регулярно
несложно
утвердительно
первично
обеспечено
интенсивно
преобразовано
первостепенно
таинственно
изначально
дано
неустанно
интегрировано
нетривиально
тесно
основательно
простодушно
оно
подозрительно
неважно
Точно
неосмысленно
Страшно
особенно
неудивительно
бесконечно
троично
лично
неверно
единственно
Примечательно
задействовано
позитивно
Трудно
Печально
незначительно
взаимосвязанно
дружелюбно
Постепенно
заметно
охотно
воедино
закодировано
ошибочно
дистанционно
приятно
отчаянно
обыденно
одномоментно
оперативно
нерально
дополнительно
грамотно

предопределено
Дополнительно
Верно
родственно
очевидно
Вероятно
невероятно
ассоциативно
Однозначно
востребовано
несильно
проигнорировано
нестабильно
найдено
радикально
мгновенно
упрощённо
уверенно
беспорядочно
заблаговременно
сделано
показано
отлично
плотно
целенаправлено
экстремально
подобно
качественно
пристрастно
Предположительно
культурно
недоступно
Именно
непостоянно
пространственно
постоянно
самостоятельно
недолжно
интеллектуально
сложно


Рецензии