пи генератор строк текста
примерно так
0000 0000 0000 0000 0000 0000 0000 0000 0008
3501 6501 6407 6804 62(+)0460 4906 8013 4109
6802 0420 1200 1015 28tt ууee 0018 0010 0502
1500 1945 4500 5400 0000 0000 0000 0000 1200
6046 4064 6046 4064 6098 5047 6098 4069 8046
4068 7046 9087 0469 8074 9068 7049 6084 7069
0874 6304 6804 6406 1086 8401 6081 9061 9068
4680 5460 9479 6841 8460 0020 2027 4600 4600
4810 1860 6801 1024 5000 1278 1308 4248 1705
9060 8504 0554 0649 8490 8409 6807 0480 7404
8904 0012 0116 5164 1819 6160 9160 9804 6805
4060 1604 1068 1096 1090 6802 4010 1705 4505
5058 4054 0546 4120 2001 2085 1704 8064 6084
6086 4080 1021 1254 6304 1603 546+ 5405 4+45
6040 0002 1000 2044 3540 1603 5046 4608 4064
6460 0000 1010 1010 1123 2132 1304 5010 0000
0000 0200 0000 0000 0001 002 2000 0001 0010
0030 0005 0008 9604 5000 2002 1200 1103 1450
2000 2305 5408 5005 4214 5050 0000 1003 2780
затем берём много модулей текста по 100 кб
и делаем выборку ассоциаций строк нашей модели ии
```python
# Код для генератора текста на основе последовательности цифр числа ;
# Мы очищаем предоставленную последовательность ;, оставляя только цифры.
# Затем используем большой текст (здесь симулируем его повторением строки для примера; в реальности замените на загрузку из файлов по 100 КБ).
# Цифры ; используются для выбора индексов в тексте, чтобы генерировать новый текст на основе ассоциаций (простая выборка символов).
import os
# Предоставленная последовательность ; (ваша строка)
pi_str = """
0000 0000 0000 0000 0000 0000 0000 0000 0008
3501 6501 6407 6804 62(+)0460 4906 8013 4109
6802 0420 1200 1015 28tt ууee 0018 0010 0502
1500 1945 4500 5400 0000 0000 0000 0000 1200
6046 4064 6046 4064 6098 5047 6098 4069 8046
4068 7046 9087 0469 8074 9068 7049 6084 7069
0874 6304 6804 6406 1086 8401 6081 9061 9068
4680 5460 9479 6841 8460 0020 2027 4600 4600
4810 1860 6801 1024 5000 1278 1308 4248 1705
9060 8504 0554 0649 8490 8409 6807 0480 7404
8904 0012 0116 5164 1819 6160 9160 9804 6805
4060 1604 1068 1096 1090 6802 4010 1705 4505
5058 4054 0546 4120 2001 2085 1704 8064 6084
6086 4080 1021 1254 6304 1603 546+ 5405 4+45
6040 0002 1000 2044 3540 1603 5046 4608 4064
6460 0000 1010 1010 1123 2132 1304 5010 0000
0000 0200 0000 0000 0001 002 2000 0001 0010
0030 0005 0008 9604 5000 2002 1200 1103 1450
2000 2305 5408 5005 4214 5050 0000 1003 2780
"""
# Очищаем последовательность ;, оставляя только цифры 0-9
pi_digits = ''.join(c for c in pi_str if c.isdigit())
# Симулируем большой текст: повторяем строку, чтобы достичь размера около 100 КБ (в реальности загрузите файлы по 100 КБ и объедините)
# Пример текста (замените на загрузку из файлов: например, text = ''.join(open(file).read() for file in file_list))
sample_text = "Это пример большого текста для генерации. Он содержит слова, предложения и символы. " * 2000 # Около 100 КБ
text_modules = [sample_text] # В реальности: список модулей, каждый ~100 КБ
# Объединяем все модули в один большой текст
big_text = ''.join(text_modules)
len_big_text = len(big_text)
# Генерируем текст: для каждой цифры ; выбираем символ из big_text по индексу
# Индекс = (цифра * (длина_текста // 10)) % длина_текста — это создаёт "ассоциативную" выборку
generated_text = ''
for digit in pi_digits:
index = (int(digit) * (len_big_text // 10)) % len_big_text
generated_text += big_text[index]
# Выводим сгенерированный текст (или сохраните в файл)
print(generated_text[:1000]) # Показываем первые 1000 символов для примера; полный текст может быть длинным
# Чтобы сохранить полный текст в файл:
# with open('generated_text.txt', 'w') as f:
# f.write(generated_text)
```
Этот код очищает вашу последовательность ;, использует большой текст (симулируемый здесь; замените на реальные модули по 100 КБ из файлов), и генерирует новый текст путём выборки символов на основе цифр ;. Это создаёт "ассоциативную" выборку, как будто модель ИИ выбирает элементы из корпуса. Если нужно доработать (например, загрузка файлов или более сложная логика),
дайте эту информацию
```python
import os
import sys
# Функция для загрузки последовательности ; из файла (очищает от нецифр)
def load_pi_digits(filename):
if not os.path.exists(filename):
raise FileNotFoundError(f"Файл {filename} не найден.")
with open(filename, 'r', encoding='utf-8') as f:
pi_str = f.read()
# Очищаем: оставляем только цифры
pi_digits = ''.join(c for c in pi_str if c.isdigit())
if not pi_digits:
raise ValueError("Файл с ; не содержит цифр.")
return pi_digits
# Функция для загрузки и объединения текстовых модулей (оптимизировано: читаем по кускам, чтобы не загружать всё сразу в память)
def load_text_modules(filenames):
big_text = []
for filename in filenames:
if not os.path.exists(filename):
raise FileNotFoundError(f"Файл {filename} не найден.")
with open(filename, 'r', encoding='utf-8') as f:
# Читаем файл по 100 КБ кускам для оптимизации памяти
while True:
chunk = f.read(102400) # 100 КБ
if not chunk:
break
big_text.append(chunk)
return ''.join(big_text)
# Основная функция генерации текста
def generate_text(pi_digits, big_text):
len_big_text = len(big_text)
if len_big_text == 0:
raise ValueError("Большой текст пуст.")
# Оптимизация: используем список для сборки текста, затем join (быстрее, чем конкатенация строк)
generated_list = []
for digit in pi_digits:
index = (int(digit) * (len_big_text // 10)) % len_big_text
generated_list.append(big_text[index])
return ''.join(generated_list)
# Пример использования (замените на свои файлы)
if __name__ == "__main__":
# Файл с последовательностью ;
pi_file = 'pi_digits.txt' # Файл должен содержать вашу строку с ;
# Список файлов с текстовыми модулями (каждый ~100 КБ)
text_files = ['text_module1.txt', 'text_module2.txt'] # Добавьте свои файлы
try:
# Загружаем данные
pi_digits = load_pi_digits(pi_file)
big_text = load_text_modules(text_files)
# Генерируем текст
generated_text = generate_text(pi_digits, big_text)
# Выводим первые 1000 символов (или сохраните полный)
print(generated_text[:1000])
# Сохранение в файл (опционально)
output_file = 'generated_text.txt'
with open(output_file, 'w', encoding='utf-8') as f:
f.write(generated_text)
print(f"Полный текст сохранён в {output_file}")
except Exception as e:
print(f"Ошибка: {e}")
sys.exit(1)
```
### Объяснения и оптимизации:
- **Загрузка данных из файлов**: Теперь ; берётся из `pi_digits.txt` (с очисткой от нецифр), а тексты — из списка файлов (например, `text_module1.txt`, `text_module2.txt`). Добавьте свои файлы в `text_files`.
- **Оптимизация памяти**: Тексты читаются по кускам по 100 КБ, чтобы не загружать огромные файлы целиком сразу. Это полезно, если модулей много.
- **Оптимизация генерации**: Используем список `generated_list` для сборки текста, затем `''.join()` — это быстрее, чем многократная конкатенация строк в Python.
- **Обработка ошибок**: Проверяем существование файлов и валидность данных.
- **Вывод**: Показываем первые 1000 символов; полный текст сохраняется в `generated_text.txt`.
- **Дополнительные советы**: Если файлы очень большие (ГБ), рассмотрите использование `mmap` или обработку по частям. Для ассоциативной выборки можно добавить логику (например, выбор слов вместо символов), но это усложнит — дайте знать, если нужно
бан = баня = ваня = ванная
Свидетельство о публикации №125100100015