словарь пар слов

import os
import re

def extract_words_from_file(file_path):
    encodings = ['utf-8', 'windows-1251', 'latin-1']
    text = None

    for encoding in encodings:
        try:
            with open(file_path, 'r', encoding=encoding) as file:
                text = file.readlines()  # Читаем файл построчно
            break
        except (UnicodeDecodeError, FileNotFoundError):
            continue

    if text is None:
        print(f"Не удалось прочитать файл: {file_path}")
        return []

    pairs = []
    for line in text:
        # Извлекаем только русские слова из строки
        words = re.findall(r'\b[а-яА-ЯёЁ]+\b', line)
        # Создаем пары соседних слов
        for i in range(len(words) - 1):
            pairs.append((words[i], words[i + 1]))  # Добавляем пару в список

    return pairs

def main():
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    all_pairs = []

    # Проходим по всем файлам и папкам на рабочем столе
    for root, dirs, files in os.walk(desktop_path):
        for file in files:
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                print(f"Обработка файла: {file_path}")
                all_pairs.extend(extract_words_from_file(file_path))  # Добавляем пары из файла

    print(f"Найдено пар слов: {len(all_pairs)}")
   
    # Сохраняем пары в словарь
    pairs_dict = {}
    for word1, word2 in all_pairs:
        pairs_dict[word1] = word2  # Сохраняем в словарь

    # Сохраняем в файл
    with open('слова2.txt', 'w', encoding='utf-8') as output_file:
        for word1, word2 in pairs_dict.items():
            output_file.write(f'{word1}: {word2}\n')

    print(f"Сохранено уникальных пар слов: {len(pairs_dict)}")

if __name__ == "__main__":
    main()





  *





import os
import re

def extract_words_from_file(file_path):
    encodings = ['utf-8', 'windows-1251', 'latin-1']
    text = None

    for encoding in encodings:
        try:
            with open(file_path, 'r', encoding=encoding) as file:
                text = file.read()
            break
        except (UnicodeDecodeError, FileNotFoundError):
            continue

    if text is None:
        print(f"Не удалось прочитать файл: {file_path}")
        return set()

    # Извлекаем только русские слова
    words = re.findall(r'\b[а-яА-ЯёЁ]+\b', text)
    return set(words)

def extract_pairs(words):
    pairs = set()
    word_list = sorted(words)
    for i in range(len(word_list)):
        for j in range(i + 1, len(word_list)):
            pairs.add((word_list[i], word_list[j]))
    return pairs

def main():
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    unique_words = set()

    # Проходим по всем файлам и папкам на рабочем столе
    for root, dirs, files in os.walk(desktop_path):
        for file in files:
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                print(f"Обработка файла: {file_path}")
                unique_words.update(extract_words_from_file(file_path))

    print(f"Найдено уникальных слов: {len(unique_words)}")
   
    # Извлекаем уникальные пары слов
    unique_pairs = extract_pairs(unique_words)

    # Сохраняем в файл
    with open('слова2.txt', 'w', encoding='utf-8') as output_file:
        for pair in sorted(unique_pairs):
            output_file.write(f'{pair[0]} {pair[1]}\n')

    print(f"Сохранено уникальных пар слов: {len(unique_pairs)}")

if __name__ == "__main__":
    main()





  *





import random

# Шаг 1: Считываем пары слов из файла
def load_word_pairs(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        word_pairs = [line.strip().split() for line in file]
    return word_pairs

# Шаг 2: Генерируем случайный текст
def generate_random_text(word_pairs, num_words=16):
    words = []
    for _ in range(num_words):
        pair = random.choice(word_pairs)
        # Выбираем случайное слово из пары
        word = random.choice(pair)
        words.append(word)
    return ' '.join(words)

# Шаг 3: Генерируем несколько строк текста
def generate_multiple_lines(word_pairs, num_lines=300, num_words_per_line=16):
    lines = []
    for _ in range(num_lines):
        line = generate_random_text(word_pairs, num_words_per_line)
        lines.append(line)
    return lines

# Основная программа
if __name__ == "__main__":
    filename = 'пары слов.txt'  # Укажите ваш файл с парами слов
    word_pairs = load_word_pairs(filename)
    random_text_lines = generate_multiple_lines(word_pairs)
   
    # Сохраняем текст в файл
    with open('rand_text.txt', 'w', encoding='utf-8') as output_file:
        for line in random_text_lines:
            output_file.write(line + '\n')


Рецензии