Как нейросеть может реально облегчить вашу работу

Сегодня я расскажу как лично я в своей работе использую нейросеть для решения задач по обработке данных и экселевских таблиц.

Казалось бы обычный кликбейт в стиле "100 нейросетей для улучшения дикпиков" или "50 новых убийц чат-гпт”. Но нет.

Я работаю маркетологом, и помимо того что мне разрешают сидеть рядом с настоящими айтишниками и програмистами, мне иногда дают задачки по обработке данных. Но не тех данных, для которых нужно иметь 3 сертификата по ML и бигдате, а обычные задачки по экселю, которые встречаются у каждого из нас, практически вне зависимости от профессии. Если вы тот самый “опытный пользователь ПК”, скорее всего вы копаетесь в экселе по рабочим нуждам, и обычная задачка со сводной табличкой из-за отсутствия опыта может растянуться на 6 рабочих часов с перекурами. Большинство таких задач довольно однотипные, и более опытный коллега сделает их в 10 раз быстрее, просто потому что он уже на них собаку съел. Но задачка упала вам. Что бы не проваливаться в кроличью нору запросов в гугле про работу экселевских формул, откроем классический chatGPT 3.5.

Нейросеть, вопреки популярному в одноклассниках мнению, довольно глупая сама по себе, и ей необходимо ставить очень четкие, подробные до духоты задачки. В таком случае она выдает грамотный и рабочий (ну почти всегда) результат. Важно говорить нейросети какие проблемы у тебя образовались в процессе, что бы она лучше понимала что происходит и как это исправить. Также, очень важно помнить что чат-гпт (да и другие нейронки) помнят только последние несколько сообщений, поэтому желательно что бы каждый запрос был максимально информативным и с контекстом. Через сообщений 5-7 он начинает отвечать полную чушь, поэтому полезно формулировать задачку заново с учетом всего пройденного пути.

Давайте более конкретно.

Представим что вы работаете с контекстом. У вас есть файл в котором содержится 20.000 поисковых фраз, визиты, посетители, отказы, глубина просмотров и время на сайте.

Файл может и реальный, а может и нет. Да какая разница, мы тут не за этим.
Файл может и реальный, а может и нет. Да какая разница, мы тут не за этим.

Ваша задача довольно простая —

  • Прочекать все поисковые фразы с >20% отказностью;
  • Вычленить из них все наиболее повторяющиеся фразы, посчитать их повторы
  • Вычленить из них все наиболее повторяющиеся слова, посчитать их повторы
  • Выстроить в порядке убывания слова и фразы от большей отказности к меньшей

Часть первая — простая.

(кто хочет сразу про питон — го во вторую часть)

Первый вариант работы довольно очевидный — мы просим нейросеть (в данном случае обыкновенный чат-гпт) решить нашу задачу через формулы экселя. Для этого просто пишем в чат нашу таску.

Привет! У меня есть задачка. Есть таблица из 20000 строк. Столбцы этой таблицы - "Поисковая фраза (Директ), Визиты, Посетители, Отказы, Глубина просмотра, Время на сайте". Вторая строчка "Итого и среднее" содержит суммы с средние значения моих данных. Потом идет 19.998 строк с данными. Визиты и посетители - целые числа, отказы - в процентах, глубина просмотрах в десятичных числах с тремя знаками после запятой, время формата ЧЧ:ММ:СС.

Да, я здороваюсь с нейросетью.

Зачем я пишу так подробно? Потому что она буквально ничего не знает про мой файл. Может у меня визиты прописаны текстом, глубина просмотров в сантиметрах, а отказы написаны на хинди?

Далее когда нейросеть понимает что у нас за файл, можно ее просить помочь с формулами.

Напиши мне формулу, которая найдет все фразы с отказностью более 20% и добавит их на новый лист в отдельную колонку. Эксель у меня воспринимает англоязычные формулы. (про язык стоит добавлять, а лучше сразу версию указывать, что бы не было ошибок из-за разницы версий)

Нейросеть выдает нужную формулу, с описанием ее работы -

=IF(«Отчет'!D2 > 0.2, 'Отчет'!A2 & " (" & TEXT('Отчет'!D2*100, "0.00%") & ")", »") «Эта формула проверяет, если значение отказов в ячейке D2 (на листе "Отчет") больше 20% (0.2 в десятичной форме), и если это условие выполняется, она объединяет значение в столбце »Поисковая фраза (Директ)" с отображением отказов в скобках с процентами. В противном случае, она возвращает пустую строку.”

К сожалению в формуле есть косяк, который мы видим после пробного запуска — она не содержит разделителя для формулы (;). Спросим об этом нейросеть.

Это я в скриншотах такой борзый, обычно я пишу приличнее. 
Это я в скриншотах такой борзый, обычно я пишу приличнее. 

Итогом этой формулы являются опять косячные данные —

ТЫСЯЧИ ПРОЦЕНТОВ!
ТЫСЯЧИ ПРОЦЕНТОВ!

Видим что он зачем то умножает наши проценты на 100. Исправляем формулу руками до вида (убираем "*100" из формулы) -

=IF(Отчет!D2 > 0,2; Отчет!A2 & « (" & TEXT(Отчет!D2; "0,00%") & ")"; »"))

и получаем приемлемый результат.

Как нейросеть может реально облегчить вашу работу

Мне не нравится что у меня проценты и фраза в одной ячейке, спрошу нейросеть как это исправить, и убрать пустые строки.

Он предлагает сначала скопировать все фразы на новый лист, потом выполнить следующие действия.

Подробное описание всех необходимых действий
Подробное описание всех необходимых действий

По итогу мы получим новый лист с фразами где отказы более 20%.

Далее мы можем просить нейросеть написать более сложные формулы для подсчета оставшихся задачек.

Этот метод подходит тем кто не знает как подступиться к задаче, не очень хорошо разбирается в возможностях экселя (или вообще его первый раз видите), но можете примерно понять где именно ошибка. Очень полезно если вы в душе не чаете какую формулу лучше использовать, и как сделать то что вам нужно. И у вас нет желания использовать что то еще кроме браузера и экселя. И это все равно намного быстрее чем гуглить формулу.

Но я собрал вас тут не для этого.

Часть 2.

Вот бы был способ, что бы не надо было писать, протягивать формулы, самому фильтровать, вставлять, копировать данные и т. д.

Можно попросить написать макрос для экселя, который сделает за нас все самостоятельно, включая создание листов и т. д.

Пример ответа на нашу первоначальную задачку, но с просьбой использовать макросы экселя.
Пример ответа на нашу первоначальную задачку, но с просьбой использовать макросы экселя.

Но мне этот способ не очень нравится, как я ничего не понимаю в VBA, и как то у меня с макросами не срослось. Но если вы в них хоть немного шарите — это может сэкономить вам годы (ну ладно, может не годы, но дни точно) жизни.

Я же предлагаю еще более сложный способ, но который позволяет делать с данными из экселя практически что угодно, имеет очень понятный способ поиска ошибки, и может быть реализован практически кем угодно. Я говорю про работу с Python.

Я категорически рекомендую всем кто хоть иногда работает с данными освоить самые азы питона (не читая толстенные книжки типа о-райли и прочих, а просто пройдя какой нибудь скидочный курс в любой онлайн-школе) . Но это не обязательно для решения наших задач.

Что нам позволяет делать нейросеть? Писать любой простой код на любом языке программирования, даже если мы в нем ничего не понимаем.

Начнем по порядку, что нам нужно сделать что бы затея сработала?

Для работы с питоном, его (а точнее его интерпретатор) необходимо поставить на свой пк (без этого к сожалению никак). Я использую PyCharm от компании Jetbrains (хотя пофигу что использовать, главное что бы он работал). Инструкция по установке находится в первой ссылке поискового ответа — https://pythonru. com/baza-znanij/poshagovaja-ustanovka-pycharm. Если хочется не отходить от нейросетей — можно спросить у нее, как пошагово установить PyCharm, он подробно расскажет.

Перенесемся сразу в момент когда у нас установлен PyCharm, и мы начали новый проект.

Преимущество работы через Python заключается в том, что нейросеть не ограничивает наши возможности одной строкой с формулами экселя, а может делать с данными из экселя любые вычисления, любые трансформации, а потом паковать обратно в эксель.

Как это выглядит.

Практически идентично тем запросам, которые мы отправляли в нейросеть ранее, но просто добавляем в конец просьбу “напиши решение на питоне”. Ну и говорим ему как называется наш файл, и где он лежит (что бы питон смог с ним работать напрямую) .

Вот пример ответа на мой прошлый запрос для экселя, но я попросил его написать код на питоне:

Как нейросеть может реально облегчить вашу работу

Чуть редактируем код, меняя 20 на 0.20, потому что данные о процентах у нас меньше единицы всегда.

Вставляем код в PyCharm, и получаем сразу новый готовый файл в папке с нашим проектом.

Да, задача решалась просто и через эксель. Но так тоже работает. 
Да, задача решалась просто и через эксель. Но так тоже работает. 

На решение этой задачки ушло минуты 3. Из которых две — на открытие программы и написание запроса. Результат ок, идем дальше.

Далее просим нейросеть перейти ко второй задачке —

  • Вычленить из полученных запросов все наиболее повторяющиеся фразы, посчитать их повторы”. (более полный запрос будет чуть ниже)

Далее нам нейросеть пишет код посложнее, со всякими сторонними библиотеками и т. д. Я не стал постить сюда этот код, думаю он мало что скажет. (Можно попросить писать объяснение всех действий, она очень подробно пишет комментарии для каждой строчки.)
Нам совершенно не нужно вникать какую именно библиотеку она использует, или какой метод. Следуем указаниям умной машины.

Если (точнее "когда") получаем ошибку — не стесняемся копировать ее всю в ответ в чат, она находит причину и говорит решение — вот пример (я обрезал часть ошибки, она была длинная)

Я ему абракадабру, а он мне - четкий план действий. 
Я ему абракадабру, а он мне - четкий план действий. 

Любую полученную ошибку закидываем в нейросеть и получаем решение. Далее запускаем код. Если есть снова ошибка — кидаем снова в нейросеть. Если нет — смотрим на данные и радуемся результату, или просим переделать в другом виде. Если видите что нейросеть пишет вам ахинею (будто совсем забыла в чем изначально задача) — формулируйте изначальную задачу заново. И так повторяйте до тех пор пока не получите удобоваримый результат.

Вот как выглядел мой итоговый запрос:

Давай создадим новый файл, основываясь на этой задаче — “Есть таблица из 20000 строк. Столбцы этой таблицы — "Поисковая фраза (Директ), Визиты, Посетители, Отказы, Глубина просмотра, Время на сайте". Вторая строчка "Итого и среднее" содержит суммы с средние значения моих данных. Потом идет 19.998 строк с данными. Визиты и посетители — целые числа, отказы — в процентах, глубина просмотрах в десятичных числах с тремя знаками после запятой, время формата ЧЧ:ММ:СС.” (тут я скопировал изначальные условия) Напиши мне формулу, которая найдет все фразы с отказностью более 0.2 (эту часть добавил что бы он не написал 20, как в первый раз) и добавит их на новый лист в две отдельные колонки (фраза и отказность). Мой файл называется context_data.xlsx (что бы он понимал как называется файл) Теперь у меня в полученном мне нужно вычленить из полученных данных все наиболее повторяющиеся фразы или словосочетания и посчитать их повторы (без учета союзов и местоимений) (эти уточнения сильно фильтруют итоговый результат. Потмоу что очевидно что самые частые слова будут союзами). Сделай отдельно лист с результатами повтора словосочетаний (где больше 1 слова), и отдельно лист с самыми часто повторяющимися словами. Важно что каждая строка в целом уникальна, но в ней могут содержаться одинаковые словосочетания или фразы (если это не описать, он просто будет искать одинаковые строки, а их у меня нет). Результаты добавь на новый файл. Код напиши на питоне.

В итоге я получил длинную портянку кода и инструкцию:

> Понял вас. Если у вас есть только первоначальный файл "context_data.xlsx" и вы хотите создать новый файл с результатами, то давайте начнем с начала. Ниже приведен полный код, который выполняет все необходимые шаги:

1. Фильтрация фраз с отказностью более 0.2 и сохранение их в новом файле.

2. Анализ повторяющихся словосочетаний и слов без учета союзов и местоимений.

3. Создание нового файла "context_data_results.xlsx" с двумя листами: один для словосочетаний (где больше 1 слова), а другой для самых часто повторяющихся слов.

Выполните этот код, и он создаст новый файл "context_data_results.xlsx" с результатами анализа данных из "context_data.xlsx".

Chat-gpt 3.5
import pandas as pd import openpyxl as px import nltk from nltk.corpus import stopwords from collections import Counter from itertools import combinations # Загрузка данных из файла Excel df = pd.read_excel("context_data.xlsx") # Фильтрация фраз с отказностью более 0.2 filtered_df = df[df['Отказы'] > 0.2] # Создание нового листа для фраз с отказностью более 0.2 with pd.ExcelWriter("context_data_with_high_bounce.xlsx", engine="openpyxl") as writer: filtered_df.to_excel(writer, sheet_name="Фразы с высокой отказностью", index=False) # Функция для извлечения ключевых слов из текста (без стоп-слов) def extract_keywords(text): words = nltk.word_tokenize(text.lower()) filtered_words = [word for word in words if word.isalnum() and word not in stopwords.words('russian')] return filtered_words # Создание словаря для подсчета повторений словосочетаний и фраз phrase_counts = Counter() # Проход по каждой фразе и извлечение ключевых слов for phrase in filtered_df['Поисковая фраза (Директ)']: keywords = extract_keywords(phrase) # Создание комбинаций из ключевых слов (без повторений) combinations_list = list(combinations(keywords, 2)) phrase_counts.update(combinations_list) # Создание DataFrame для словосочетаний с повторами phrase_counts_df = pd.DataFrame(phrase_counts.items(), columns=['Словосочетание', 'Повторы']) # Сортировка по количеству повторений в убывающем порядке phrase_counts_df = phrase_counts_df.sort_values(by='Повторы', ascending=False) # Создание словаря для подсчета повторений отдельных слов word_counts = Counter() # Проход по каждому слову в ключевых словах for phrase in filtered_df['Поисковая фраза (Директ)']: keywords = extract_keywords(phrase) word_counts.update(keywords) # Создание DataFrame для наиболее повторяющихся слов word_counts_df = pd.DataFrame(word_counts.items(), columns=['Слово', 'Повторы']) # Сортировка по количеству повторений в убывающем порядке word_counts_df = word_counts_df.sort_values(by='Повторы', ascending=False) # Создание нового файла Excel и запись результатов with pd.ExcelWriter("context_data_results.xlsx", engine="openpyxl") as writer: phrase_counts_df.to_excel(writer, sheet_name="Словосочетания с повторами", index=False) word_counts_df.to_excel(writer, sheet_name="Наиболее повторяющиеся слова", index=False)

После запуска у меня была всего одна ошибка, которая была вылечена одной доп. строчкой. После чего я получил вот такой итоговый файл

Как нейросеть может реально облегчить вашу работу
Как нейросеть может реально облегчить вашу работу

Алгоритм всегда один и тот же — описали задание, если выполнилось с ошибкой — кидаем ошибку, он ее исправляет. Если без ошибок — усложняем задачку, и заново формируем ее в запросе.

Далее можно попросить в начальные условия добавить подсчет % отказа, что бы он выписал те слова, которые чаще всего встречаются в отказных запросах, или найти слова которые приводят самые глубокие сессии. Или любые другие хотелки которые вы придумаете.

По итогу получаем готовую таблицу с нужными нам данными, попутно осваивая питон.

Зачем я все это пишу и показываю?
Данный метод работы сократил мое время на обработку данных, позволяет мне кинуть в разговоре “да я тут на питоне прикинул”, что резко повышает ценность в глазах других маркетологов и начальства, и вполне обоснованно позволяет писать новый навык на линкедине.

А если более серьезно — нейросеть может сильно ускорить выполнение рутинных и нудных задач. Она как гугл — главное правильно составить запрос. Не “посчитай мне итог по Сыктывкару для прошлого квартала” а “У меня есть таблица А, в ней колонки АБС, содержат данные таких то форматов. В колонке Б у меня города рф, в колонце С у меня оборот, в колонке Е вид материала. Создай новую таблицу где будет сумма всех поставок пургена для областей которые содержат букву Ы в названии и состоят из 9 букв”. Такой запрос очень понятен, его можно разбить на подзадачи и написать алгоритм. А какой в итоге для этого будет использоваться язык программирования — не имеет значения (ну вообще имеет, если язык появился после 21 года, то есть шанс что чат-гпт 3.5 не знает об этом). Нейросеть можно попросить что то объяснить в коде, рассказать о методе или причинах выбора такого способа решения, и писать запросы человеческим языком.

Использование нейросети для работы не напрямую с формулами, а через сторонний язык программирования позволяет работать сразу с нужными нам файлами. Скоро, когда майкрософт внедрит окончательно нейросеть в стандартный пакет офиса — такие задачи можно будет попросить решать нейронку сразу напрямую в экселе. Но пока что это недоступно простым менеджерам.
Поставить IDE питона — элементарно. Запустить скопированный код из чата с нейронкой — дело 2 секунд. Если у вас есть ежедневные (еженедельные, повторяющиеся) задачки с какими то однотипными выгрузками — вы один вечер потратите на написание кода через нейросеть, потом сможете использовать его постоянно. Сэкономленное время можно потратить на срач в комментариях на DTF или пикабу, или поиск новой работы аналитиком.

Если хоть одному человеку это сэкономит больше времени чем я потратил на эту простыню - это будет означать что я писал все не зря.

Спасибо.

2222
4 комментария

Спасибо. Сохранил в закладки!

Ответить

Питоша - сила, даже в книгу ныряем за подсказками. Отличная статья.

Ответить

Раньше писали о том когда нейросеть сможет заменить человека, теперь как нейросеть поможет в выполнении работы

Ответить

Ну потому что нейросеть сама никого заменить не может. То же самое как "калькуляторы и ЭВМ оставят без работы ученых" и "midjourneу убьет рынок дизайнеров". Они могут сильно облегчить работу, если знать как их использовать

Ответить