поиск строк в файле с повтором 2-3 слов

filename = 'текст.txt'

word_combinations = {}
with open(filename, 'r', encoding='utf-8') as f:
    for line_num, line in enumerate(f.readlines()):
        words = line.strip().split()
        word_set = set(words)
        for i in range(len(words)):
            for j in range(i + 1, len(words)):
                word_combination = tuple(sorted([words[i], words[j]]))
                if word_combination not in word_combinations:
                word_combinations[word_combination] = []
                word_combinations[word_combination].append(line_num)

                if len(words) > 2:
                for k in range(j + 1, len(words)):
                word_combination = tuple(sorted([words[i], words[j], words[k]]))
                if word_combination not in word_combinations:
                word_combinations[word_combination] = []
                word_combinations[word_combination].append(line_num)

repeated_combinations = {combination: lines for combination, lines in word_combinations.items() if 2 <= len(lines) <= 3}

grouped_lines = {}
with open(filename, 'r', encoding='utf-8') as f:
    file_lines = f.readlines()
for combination, lines in repeated_combinations.items():
    unique_lines = set()
    for line_num in lines:
        line_content = file_lines[line_num].strip()
        unique_lines.add(line_content)
    if len(unique_lines) > 1:  # Skip groups with only one line
        if combination not in grouped_lines:
            grouped_lines[combination] = []
        grouped_lines[combination] = list(unique_lines)

for key, group in grouped_lines.items():
    if len(group) <= 10:
        print(' '.join(key))
        for line in group:
            print(line)
        print()



------------------------------------------->




алгоритм

*: Чтение файла
Алгоритм читает файл с именем "текст.txt" строка за строкой.

*: Поиск комбинаций слов
Для каждой строки он находит все возможные комбинации двух или трех слов. Например, если строка содержит слова "яблоко", "банан" и "вишня", он найдет комбинации "яблоко-банан", "яблоко-вишня" и "банан-вишня".

*: Группировка строк по комбинациям слов
Он группирует строки по их комбинациям слов. Например, если две строки содержат ту же комбинацию слов "яблоко-банан", они будут сгруппированы вместе.

*: Удаление дубликатов и групп с одной строкой
Он удаляет любые дублирующие строки внутри каждой группы и также удаляет группы, которые содержат только одну строку.

*: Печать результатов групп строк
Наконец, он печатает комбинации слов и соответствующие строки, но только если группа содержит от 2 до 10 строк.

В целом, этот алгоритм находит группы строк, которые содержат те же комбинации слов, удаляет дубликаты и группы с одной строкой, и печатает результаты.





* вывод строк ->





и кто может
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

знать и кто
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

есть и кто
и кто может знать что это есть на самом деле ?
так наверно и есть кто его знает

знать и может
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

есть и может
А может есть и другие более простые создания других форм жизни вселенной
и кто может знать что это есть на самом деле ?
это как сказать - может что и есть

и может на
как посмотреть на это - может и так
и кто может знать что это есть на самом деле ?

знать и это
и кто может знать что это есть на самом деле ?
я это не могу знать - поэтому и спросил

деле есть и
и кто может знать что это есть на самом деле ?
это не кажется - так и есть на самом деле

? и на
так и что тогда будет на выходе ?
что за фото и что на нём изображено ?
и кто может знать что это есть на самом деле ?

знать кто может
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

знать кто
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

есть кто
и кто может знать что это есть на самом деле ?
так наверно и есть кто его знает

знать может
и кто может знать что это есть на самом деле ?
может и так - кто может знать точнее

есть может что
и кто может знать что это есть на самом деле ?
это как сказать - может что и есть

может на что
и кто может знать что это есть на самом деле ?
несмотря на то, что это так может быть

? может что
может быть - только что конкретно ?
и кто может знать что это есть на самом деле ?
а что может быть хорошо для тебя ?

есть может это
и кто может знать что это есть на самом деле ?
это как сказать - может что и есть

деле может это
может быть на самом деле это немного не так
и кто может знать что это есть на самом деле ?

есть может
А может есть и другие более простые создания других форм жизни вселенной
и кто может знать что это есть на самом деле ?
это как сказать - может что и есть

деле может на
может быть на самом деле это немного не так
и кто может знать что это есть на самом деле ?

деле может
может быть на самом деле это немного не так
и кто может знать что это есть на самом деле ?

самом что это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

есть на что
независимо что это есть на самом деле в нашем сознании
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

есть самом что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

деле есть что
независимо что это есть на самом деле в нашем сознании
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

на самом что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

самом что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

деле самом что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

? самом что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

? деле что
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

есть самом это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

на самом это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

самом это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

деле самом это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

? самом это
и кто может знать что это есть на самом деле ?
но что это на самом деле такое есть ?

/..


Рецензии