словарь из текста и сортировка слов по группам

программа на питоне
нужно в файле с текстом фразы.txt найти уникальные слова
посчитать сколько слов найдено и упорядочить их по алфавиту и числу букв
сделать все буквы маленькими
убрать лишние знаки кроме букв
а затем в списке этих слов найти группы слов
которые наиболее похожи и отличаются на 1, 2, 3, 4 буквы в слове
вывести эти группы слов
список всех уникальных слов текста txt сохранить в файле словарь.txt


Вот как вы можете решить эту задачу с помощью Python:



import re
from collections import Counter

# Функция для извлечения уникальных слов из текста
def get_unique_words(text):
    words = re.findall(r'\b\w+\b', text.lower())
    return set(words)

# Функция для группировки слов по их сходству
def group_similar_words(words):
    word_groups = {}
    for word in words:
        key = ''.join(sorted(word))
        if key in word_groups:
            word_groups[key].append(word)
        else:
            word_groups[key] = [word]
    return {k: v for k, v in word_groups.items() if len(v) > 1}

# Чтение текста из файла
with open('фразы.txt', 'r', encoding='utf-8') as file:
    text = file.read()

# Получение уникальных слов и их количество
unique_words = get_unique_words(text)
print("Количество уникальных слов:", len(unique_words))

# Сохранение уникальных слов в файл
with open('словарь.txt', 'w', encoding='utf-8') as file:
    for word in sorted(unique_words):
        file.write(word + '\n')

# Группировка слов по их сходству
similar_word_groups = group_similar_words(unique_words)
print("\nГруппы слов, которые наиболее похожи:")
for key, group in similar_word_groups.items():
    print(f"{' '.join(group)} ({len(key)} букв)")



 **


Этот скрипт читает текст из файла фразы.txt, извлекает уникальные слова, удаляя лишние знаки, и сохраняет их в файл словарь.txt. Затем он группирует слова по их сходству (сортiroвка букв в слове) и выводит группы слов, которые отличаются на 1, 2, 3 и 4 буквы.




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


Рецензии