текст из групп слов словаря txt
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()
Свидетельство о публикации №125061605259