текст из групп слов словаря txt

def load_dictionary(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        return [line.strip() for line in file.readlines()]

def find_groups(input_text, dictionary):
    words = set(input_text.split())
    found_groups = set()  # Используем множество для устранения повторов

    for group in dictionary:
        group_words = set(group.split())
        # Проверяем, есть ли ровно 2 слова группы в введенном тексте
        common_words = words.intersection(group_words)
        if len(common_words) == 2:  # Проверка на ровно 2 общих слова
            found_groups.add(group)  # Добавляем в множество

    # Если найдено недостаточно групп, добавляем группы без общих слов
    if len(found_groups) < 5:  # Например, если найдено меньше 5 групп
        for group in dictionary:
            if group not in found_groups:
                found_groups.add(group)
                if len(found_groups) >= 5:  # Ограничиваем до 5 групп
                break

    return list(found_groups)  # Преобразуем обратно в список для дальнейшей обработки

def limit_word_repeats(groups):
    word_count = {}
    limited_groups = []

    for group in groups:
        group_words = group.split()
        new_group = []

        for word in group_words:
            if word_count.get(word, 0) < 4:  # Проверяем, не превышает ли слово лимит
                new_group.append(word)
                word_count[word] = word_count.get(word, 0) + 1

        if new_group:  # Добавляем группу, если она не пустая
            limited_groups.append(" ".join(new_group))

    return limited_groups

def print_groups(groups):
    for i in range(0, min(len(groups), 48), 4):  # 12 строк по 4 группы
        print("  ".join(groups[i:i+3]))

def main():
    dictionary = load_dictionary('словарь групп слов.txt')

    while True:
        input_text = input("Введите текст: ")
       
        found_groups = find_groups(input_text, dictionary)
        limited_groups = limit_word_repeats(found_groups)
        print_groups(limited_groups)

if __name__ == "__main__":
    main()


Рецензии