artbobylev.ru

Построчная обработка статистики Яндекс.Вордстат языковой моделью

Допустим, мне хочется узнать, с какими принтами люди ищут футболки.

Запустил магазин футболок в 20 тысяч принтов от AI predstav.store, а из поиска почти никто не приходит.

Существует сервис Яндекс.Вордстат со статистикой пользовательских запросов в Яндекс поиске.

Собрав данные по запросам типа «футболка», «футболка с принтом», «футболка принт», у меня получился csv-файл в 9000 строк:

title;number;
футболка;2428959;
футболка мужская;175769;
купить футболку;172707;
футболка женская;113648;
футболка бела;99822;
белая футболка;99813;
...
купить футболку с принтом лесничество;5;
купить футболку с принтом часы;5;
купить черную футболку с принтом математика;5;
...

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

Для этого буду использовать Langchain. В предыдущей статье я показал, как с легкостью устанавливать себе на компьютер языковые модели.

Для моей задачи сгодилась модель gemma2:2b. Промпт выглядит так:

Извлеки из запроса: «{t_desc}» все, что может описывать принт 
на футболке. Если описание есть, выведи описание принта 
и больше ничего. Если нет – ответь 'нет' и больше ничего не пиши

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

pip install langchain-ollama

И очень простой код для построчной обработки запросов:

from langchain_community.llms import Ollama
import pandas as pd

llm = Ollama(model="gemma2:2b")

df = pd.read_csv('futbolki_data.csv', sep=";")
for i in range(len(df) - 1, -1, -1): 
	row = df.iloc[i]
	t_desc = row['title']
	my_msg = f"Извлеки из запроса: «{t_desc}» все, что может описывать принт на футболке. Если описание есть, выведи описание принта и больше ничего. Если нет – ответь 'нет' и больше ничего не пиши"
	if msg.lower().replace('\n','').replace(' ', '') not in "не, нет, нет.":
		ru_desc = msg.replace('\n','')
		print(row['title'] + ";" + str(row['number']) + ";" + ru_desc)
футболка с наклейкой;1368;наклейка
футболка с молнией;1481;молния
футболка с сердечком;1500;сердечки
футболка с собакой;1624;Собака
футболка с сердцем;1635;сердце
футболка с мишкой;1687;мишка
футболка с полосками;1777;полоски
...

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


Читать ещё:

⟲ на главную

Кто я?

→ Бобылев Артём

Я программист. Нет, инди-разработчик – люблю в одиночку заниматься разработкой своих небольших проектов. Сейчас занят интерфейсами над производством, например:

predstav.store

onlytone.ru

GitCloths

Подпишись на мою рассылку!