Как chatgpt помогает мне программировать

Как 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'.")


Report Page