словарь троек слов из множества текстов

import os
import re

def search_files(directory):
    txt_files = []
   
    # Search for all .txt files in the specified directory and its subdirectories
    for foldername, subfolders, filenames in os.walk(directory):
        for filename in filenames:
            if filename.endswith('.txt'):
                txt_files.append(os.path.join(foldername, filename))
   
    # Create a dictionary of triplets of neighboring words
    word_triplets = {}
    for file_path in txt_files:
        with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
            content = file.read().lower()
            # Remove non-Russian characters and digits
            content = re.sub(r'[^\а-яё ]', '', content)
            words = content.split()
            for i in range(len(words) - 2):
                triplet = tuple(sorted([words[i], words[i+1], words[i+2]]))
                if triplet not in word_triplets:
                word_triplets[triplet] = 1
                else:
                word_triplets[triplet] += 1
   
    # Sort the dictionary by key and remove duplicates
    sorted_word_triplets = dict(sorted(word_triplets.items()))
   
    # Save the dictionary to a file with proper encoding
    with open('dict3.txt', 'w', encoding='utf-8-sig') as file:
        for triplet, count in sorted_word_triplets.items():
            file.write(f"{' '.join(triplet)}: {count}\n")

# Specify the directory to search
desktop_path = r"C:\Users\MSI\Desktop\\"

search_files(desktop_path)





*  этот код находит все файлы .txt во вложенных папках рабочего стола
 и делает из них словарь троек ( триплетов ) найденных групп слов





-->


биолог обязательно спросил: 1
биолог осведомился планета: 1
биолог осведомился эон: 1
биолог основания щупалец: 1
биолог ответил сурово: 1
биолог отозвался понадобятся: 1
биолог отрезал фантастика: 1
биолог папа тоже: 1
биолог передавая улыбнулся: 1
биолог показал смотрите: 1
биолог посуду цирконием: 1
биолог почему раньше: 1
биолог пробормотал сдавленно: 1
биолог пробормотал экспедиции: 1
биолог протянул руку: 1
биолог разумеется смотрите: 1
биолог сказал тихо: 1
биолог скафандр через: 1
биолог слабо улыбнулся: 1
биолог тал эон: 4
биолог тал начальник эон: 1
биолог тоже только: 1
биолог у уселись: 1
биолог экспедиции эон: 1
биолога в чару: 1
биолога встретилась и: 1
биолога выше лбу: 1
биолога выше широких: 1
биолога дер для: 1
биолога дер хиир: 1
биолога для подобраться: 1
биолога души ни: 1
биолога же прикосновение: 1
биолога же убило: 1
биолога и оба: 1
биолога и руку: 1
биолога и смеющегося: 1
биолога к прикосновение: 1
биолога как меня: 1
биолога как проведённых: 1
биолога лбу на: 1
биолога на посмотрел: 1
биолога на тот: 1
биолога не проходил: 1
биолога не руки: 1
биолога не увы: 1
биолога не чару: 1
биолога ни одного: 1
биолога одного рядом ни: 1
биолога от смеющегося: 1
биолога паралич руки: 1
биолога принял руку: 1
биолога проведённых экспериментов: 1
биолога тот утвердительно: 1
биологам биологам сейчас: 1
биологам биологам что: 1
биологам биологами биологией: 1
биологам проще сейчас: 37
биологам сейчас сейчас: 1
биологам сейчас что: 37
биологам так что: 37
биологам что что: 1
биологами всеми генетиками: 23
биологами генетиками то: 23
биологами есть то: 23
биологами биологи биологией биологии: 1
биологи будут информация: 1
биологи будут считать: 1
биологи в валентин: 1
биологи в видели: 1
биологи в свое: 1
биологи валентин сказал: 1
биологи ведь и: 11
биологи ведь это: 11
биологи видели если: 1
биологи впервые выдвинули: 10
биологи впервые жизни когда: 1
биологи впервые когда: 4
биологи впервые материи когда: 1
биологи впервые представлений когда: 1
биологи впервые сингулярность когда: 1
биологи впервые та же когда: 1
биологи впервые точно когда: 1
биологи выдвинули не: 1
биологи выдвинули парадоксальную: 1
биологи геологи другие: 1
биологи геологи чья: 1
биологи другие механиков: 1
биологи другими молекулярные: 10
биологи другими словами: 10
биологи если но: 1
биологи еще обязательно: 1
биологи еще эволюции: 1
биологи жизни когда: 1
биологи жизни когда канве: 1
биологи заметят обязательно: 1
биологи и инженеры: 11
биологи и материи когда: 1
биологи и молекулярные: 10
биологи и та же когда: 1
биологи и точно когда: 1
биологи информация математики: 1
биологи когда свойствами: 2
биологи когда следовало: 1
биологи математических представлений когда: 1
биологи океан считали: 1
биологи палеонтологи физики: 1
биологи писатели фантасты смелые: 1
биологи сингулярность когда технологическая: 1
биологи считали что: 1
биологи том что: 1
биологией биологии биологическая: 1
биологией вдохновение делает: 1
биологией вдохновение интеллект: 1
биологией делает жизнью вдохновение: 1
биологией делает киборгов вдохновение: 1
биологией делает многие: 4
биологией делает вдохновение: 1
биологией ей еще: 1
биологией если что: 1
..



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


import os

def search_files(directory, keywords):
    txt_files = []
   
    # Поиск всех файлов .txt в указанной директории и её поддиректориях
    for foldername, subfolders, filenames in os.walk(directory):
        for filename in filenames:
            if filename.endswith('.txt'):
                txt_files.append(os.path.join(foldername, filename))
   
    # Поиск ключевых слов в найденных файлах
    for file_path in txt_files:
        with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
            content = file.read()
            found_keywords = all(keyword.lower() in content.lower() for keyword in keywords)
            if found_keywords:
                print(f'Найдено в {file_path}')

# Замените 'путь_к_рабочему_столу' на ваш путь к рабочему столу
desktop_path = r"C:\Users\MSI\Desktop\\"

# Ключевые слова для поиска (разделены пробелом)
search_keywords = input(" ключевые слова: ").split()
search_files(desktop_path, search_keywords)



*  эта программа даёт список всех фалов в которых есть ключевые слова ввода input


Рецензии