Как chatgpt помогает мне программировать
Max
Я наткнулся на статью TheCode.media, в конце которой приводится готовый код для построения облака слов из текста. Чем чаще слово встречается в тексте - тем оно больше на картинке.
Код делит слова на три категории: существительные, прилагательные, глаголы. Получается довольно любопытно - можно посмотреть кто о чем пишет.
Например, политолог Шульман в телеграм канале пользуется вот таким лексиконом:

Артемий Лебедев привык к другому инструментарию:

Маяковский естественно выделяется своим вайбом:

При этом я ни разу не программист, и все манипуляции с кодом мне помог совершить chatgpt. Благо теперь порог входа в программирование упал до минимума, и решать какие-то мелкие бытовые задачки может каждый: обработать данные, написать скрипт или закодить тг бота.
Дальше я расскажу по шагам, чтобы любой человек мог построить собственное облако и начать прогать вместе с chatgpt.
Python, код, chatgpt
Начинаем с нуля и спрашиваем гпт, как вообще запустить готовый код то?

Всё понятно, скачиваем питон с официального сайта и выбираем среду разработки. Я остановился на pycharm, в статье thecode.media использовали vs code. Создаем новый проект и пуляем туда код из статьи. Вставляем путь до файла с нашим текстом в строку "f =" И ловим первую ошибку:

Несем её в гпт:

Говорит, что мы должны либо использовать двойную косую черту, либо добавить в начале буковку "r". Пробуем:

Новая ошибка, точно также несем её в гпт:

Говорит, нам нужна библиотека (модуль) pymorphy2, которую мы ставим через командную строку windows - pip install pymorphy2:

Снова запускаем код и ставим все библиотеки аналогично, пока не появится новая ошибка:

Ругается на кодировку файла. Пересохраняем текстовый файл в обычном блокноте с указанием кодировки utf-8:

Пробуем снова. О, чудо!

Как выгрузить данные из ВК или Телеграм
Запросить архив Вконтакте можно по ссылке :
https://vk.com/data_protection?section=rules&scroll_to_archive=1
Архив будет готов в течение суток и будет содержать html файлы. В папке messages будут диалоги со всеми пользователями. Папка имеет название ID чата, который можно посмотреть в url диалога с пользователем.
Из телеграма можно также выгрузить весь архив через Settings->advanced->export data. Либо выгрузить из чата или канала:

Формат лучше выбирать json.
Теперь нам нужно вытащить из этих файлов текст. Вы теперь знаете, как заставить Chatgpt написать код, конвертирующий файлы)
Ставьте ему задачу так, чтобы понял и ребенок. Что нужно? Как именно? Какие входные данные? Какие условия? Иногда приходится подсказывать ему логику обработку данных. Все ошибки скармливаем ему же и стоим на своем, пока он не напишет рабочий код. Также его можно попросить объяснить логику кода, отдельную функцию и так далее.
Я уже это сделал и прикрепляю код для обработки html из ВК и json из ТГ:
import os
from bs4 import BeautifulSoup
import re
# Define the directory containing HTML files
html_files_dir = "C:\\Users\\Админ\\Downloads\\Telegram Desktop\\вк сообщения\\Оля"
# Function to extract text from a div
def extract_text(element):
for item in element.contents:
if isinstance(item, str):
yield item.strip()
elif item.name == 'a':
yield item.get('href')
elif item.name == 'div' and 'kludges' not in item.get('class', []):
yield from extract_text(item)
# Process each HTML file in the directory
text_messages = []
for filename in os.listdir(html_files_dir):
if filename.endswith(".html"):
file_path = os.path.join(html_files_dir, filename)
with open(file_path, 'r') as html_file: # Use utf-8-sig or another suitable encoding
html_content = html_file.read()
soup = BeautifulSoup(html_content, 'html.parser')
message_divs = soup.find_all("div", class_="message")
for message_div in message_divs:
text_div = message_div.find("div", class_="message__header").find_next_sibling("div")
if text_div:
text = ' '.join(extract_text(text_div))
if text:
text_messages.append(text)
# Write the extracted text messages to a unified text file
output_file = "unified_text_messages.txt"
with open(output_file, 'w', encoding='utf-8') as txt_file:
for text_message in text_messages:
txt_file.write(text_message + '\n')
print("Unified text file created:", output_file)
import json
# Read the JSON file
with open('C:\\Users\\Админ\\Downloads\\Telegram Desktop\\мама в тг\\result.json', 'r', encoding='utf-8') as json_file:
data = json.load(json_file)
# Extract text from messages
all_messages_text = []
for message in data['messages']:
if 'text' in message:
text = message['text']
if isinstance(text, str):
all_messages_text.append(text)
elif isinstance(text, list):
combined_text = ''
for item in text:
if isinstance(item, str):
combined_text += item
all_messages_text.append(combined_text)
# Write all text into a new file
with open('C:\\Users\\Админ\\Downloads\\Telegram Desktop\\мама в тг\\all.txt', 'w', encoding='utf-8') as output_file:
output_file.write('\n'.join(all_messages_text))
print("All messages have been written to 'all_messages.txt'.")