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)

  1. Выгружаете из Битрикса 500 старых заявок в Excel.
  2. Сами (или менеджер) проставляете во втором столбце категории: "Бухгалтерия", "Логистика", "IT".
  3. Сохраняете как 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)

Точно так же, как с картами.

  1. На сервере Python (FastAPI).
  2. При старте загружает файл support_model.pkl.
  3. Принимает текст, прогоняет через model.predict, отдает JSON.
  4. PHP шлет текст -> получает категорию -> меняет статус сделки в Битриксе.

Резюме

Если захотите внедрять AI для текста в вебе:

  1. Инструмент разметки:
    • Для поиска слов (NER): Label Studio.
    • Для категорий: Excel.
  2. Модель:
    • Сначала пробуйте простые библиотеки: SpaCy (для поиска) или Scikit-learn (для категорий). Они летают на любом дешевом VDS.
    • Только если они тупят — берите тяжелую артиллерию типа BERT / Hugging Face.
  3. Архитектура: Всегда делайте Python-микросервис рядом с PHP. Это золотой стандарт.