434 слова | 2 минуты
А нужна ли тут нейросеть?
Если вам нужно просто найти номер телефона в формате +7 (999) ... или 8999..., то нейросеть — это стрельба из
пушки по воробьям.
В 95% случаев для телефонов используют RegEx (Регулярные выражения). Это работает мгновенно, не требует обучения и видеокарт.
Найти что-то внутри текста (NER)
Примеры:
- Из комментария к заказу вытащить дату доставки и время.
- Из сообщения в чате поддержки вытащить Артикул товара (который может быть написан криво: "арт 123-45", "номер 12345").
- Из описания квартиры на Циане вытащить Этаж, Метраж, Наличие балкона.
Это называется NER (Named Entity Recognition).
Где размечать:
- Label Studio (Самый топ, аналог Roboflow для текста). Ставится в Docker.
- Doccano (Попроще).
- Суть разметки: Выделяешь мышкой кусок текста и вешаешь тег (например,
DATE,SKU,FLOOR).
На чем тренировать:
- SpaCy: Идеально. Быстро, работает на CPU, не жрет память. "YOLO Nano" в мире текста.
- Bert (Hugging Face): Если контекст очень сложный. Но это тяжело для сервера.
Понять, о чем текст целиком (Классификация)
Примеры:
- Сортировка отзывов: Негативный / Позитивный / Нейтральный.
- Тикеты в техподдержку: Проблема с оплатой / Ошибка на сайте / Вопрос по доставке (чтобы сразу направить в нужный отдел).
- Анти-спам: Спам / Не спам.
- Определение пола по ФИО: Мужской / Женский.
Это называется Text Classification.
Где размечать:
- Excel / Google Sheets: Серьезно. Просто в одной колонке текст, во второй — цифра класса (0, 1, 2). Этого достаточно.
- Label Studio: Если нужно красиво и много людей размечают.
На чем тренировать:
- Scikit-learn (Logistic Regression / SVM): Для простых задач (спам, пол). Обучается за секунду, работает мгновенно.
- Bert (RuBERT): Для сложных задач (сарказм в отзывах, сложная тематика тикетов).
Полный путь (Workflow) на примере
Допустим, у нас задача: Автоматически сортировать заявки в Битрикс24 по отделам.
Входящий текст: "У меня не прошла оплата картой, верните деньги." -> Отдел бухгалтерии.
Входящий текст: "Когда привезут мой заказ?" -> Отдел логистики.
Шаг 1. Разметка (Labeling)
- Выгружаете из Битрикса 500 старых заявок в Excel.
- Сами (или менеджер) проставляете во втором столбце категории: "Бухгалтерия", "Логистика", "IT".
- Сохраняете как
train.csv.
Шаг 2. Тренировка (Training)
Идем в Google Colab. Для классификации лучше всего сейчас работают Трансформеры (Hugging Face), но они тяжелые. Если тексты короткие, берем классику.
Вариант "Быстро и легко" (Sklearn):
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
import joblib
# 1. Загружаем
data = pd.read_csv("train.csv") # колонки text, category
# 2. Создаем пайплайн (Превращение текста в цифры -> Логистическая регрессия)
model = make_pipeline(TfidfVectorizer(), LogisticRegression())
# 3. Учим
model.fit(data['text'], data['category'])
# 4. Проверяем
print(model.predict(["Где мой заказ?"]))
# Вывод: ['Логистика']
# 5. Сохраняем модель в файл
joblib.dump(model, "support_model.pkl")
Шаг 3. Внедрение (Deploy)
Точно так же, как с картами.
- На сервере Python (FastAPI).
- При старте загружает файл
support_model.pkl. - Принимает текст, прогоняет через
model.predict, отдает JSON. - PHP шлет текст -> получает категорию -> меняет статус сделки в Битриксе.
Резюме
Если захотите внедрять AI для текста в вебе:
- Инструмент разметки:
- Для поиска слов (NER): Label Studio.
- Для категорий: Excel.
- Модель:
- Сначала пробуйте простые библиотеки: SpaCy (для поиска) или Scikit-learn (для категорий). Они летают на любом дешевом VDS.
- Только если они тупят — берите тяжелую артиллерию типа BERT / Hugging Face.
- Архитектура: Всегда делайте Python-микросервис рядом с PHP. Это золотой стандарт.