Перейти к основному содержимому

Разметка логов

Разметка логов используется для обработки «сырых» логов, чтобы выделить в них потенциальные интенты и наполнить их тренировочными фразами. Она будет полезна, если у вас есть собственные данные, которые можно использовать для обучения бота. Если их нет, но бот уже какое-то время проработал и накопил данные о диалогах, дообучите интенты.

Как получить доступ

Чтобы получить доступ к разметке логов, свяжитесь со своим аккаунт-менеджером или напишите нам на contact@just-ai.com.

Чтобы воспользоваться разметкой логов:

  1. Перейдите в проект и на панели управления нажмите NLU → Разметка логов.

  2. Если ранее вы уже пользовались разметкой логов, нажмите Новый набор фраз.

  3. Подготовьте файл с фразами, которые хотите обработать.

    • Требования к файлу: формат TXT, кодировка UTF-8.
    • Внесите в файл не более 10 000 фраз.
    • Расположите каждую фразу на отдельной строке.
    • Сократите фразы длиннее 500 символов, или они будут удалены.
  4. Прикрепите файл.

После загрузки файла фразы появятся в разделе Все фразы.

Чтобы наполнить новые и уже существующие интенты загруженными фразами:

  1. Предобработайте фразы.
  2. Воспользуйтесь методами разметки.
  3. Распределите фразы по интентам.
  4. Сохраните их в интенты.
Интерфейс разметки логов

Предобработка фраз​

Чтобы распределять фразы по интентам было проще, необходимо предварительно их обработать:

  1. Перейдите на вкладку Разбор фраз → Предобработка фраз.

  2. Настройте параметры:

    • Удалить специальные символы — удаление всех символов, кроме букв и цифр.
    • Удалить короткие фразы — удаление всех фраз короче указанного числа знаков с учетом пробелов.
    • Удалить длинные фразы — удаление всех фраз длиннее указанного числа знаков с учетом пробелов.
    • Исправить опечатки — исправление орфографических ошибок и опечаток. Параметр включен по умолчанию и доступен только для русского и украинского языков.
    • Удалить стоп-слова — словарь стоп-слов встроен в платформу и доступен только для русского языка.
    • Распознать сущности — поиск активных системных и пользовательских сущностей во фразах. Например: «завтра в 16:00» будет заменено на «завтра в @duckling.time».
    • Удалить дубликаты — после удаления останется только одно вхождение для каждой фразы. Параметр включен по умолчанию. ? > Если вы хотите перед удалением просмотреть дубликаты, отключите этот параметр и воспользуйтесь разметкой по дубликатам.
  3. Нажмите Обработать.

Методы разметки​

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

Вы можете разметить фразы:

После разметки датасета распределите фразы по интентам.

Вы также можете распределить фразы по интентам вручную:

  1. Выберите фразу или несколько фраз и нажмите Добавить в интенты. Появится окно выбора интента.

  2. Выберите подходящий интент или создайте новый. После этого нажмите Добавить фразу.

  3. Перейдите на вкладку Сохранение в интенты на верхней панели, чтобы подтвердить добавление.

Окно выбора интента

По интентам​

Эта разметка позволяет разобрать фразы по интентам, которые уже существуют в проекте.

Каждой распознанной фразе присваивается вес от 0 до 1 — это степень уверенности в том, что она действительно содержится в интенте. Чтобы отфильтровать фразы по весу, воспользуйтесь ползунком.

подсказка
С помощью опции Скрыть конфликтные вы можете скрыть фразы, которые подходят к нескольким интентам.

По дубликатам​

Эта разметка позволяет выделить в датасете одинаковые фразы. Если вы удаляли дубликаты во время предобработки фраз, эту разметку проводить не нужно.

По ключевым словам​

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

Методы выделения ключевых слов:

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

Частотный метод​

Мера TF-IDF позволяет оценить значимость слова в контексте фразы и всего датасета. Чем важнее слово для определения тематики фразы внутри датасета, тем больше значение меры.

Значение меры — это произведение двух множителей:

  • TF (term frequency) — частота слова во фразе.
  • IDF (inverse document frequency) — число всех фраз в датасете, разделенное на число фраз с нужным словом. IDF слова повышается, если оно встречается в небольшом числе фраз. Если слово часто встречается во всех фразах датасета, то его IDF понижается.
подсказка
Подробнее о расчете TF-IDF см. в документации Gensim.

Настройте параметры:

  • Привести все слова к нижнему регистру.

    подсказка
    Если в вашем датасете есть имена собственные, эта настройка может быть полезной, иначе Москва и москва будут считаться разными словами.
  • Максимальная длина N-граммы — сколько слов из фразы будут объединены в словосочетания. Значение по умолчанию — 2.

  • Максимум пропущенных слов в словосочетании — сколько слов подряд можно пропустить во фразе, из которой формируются словосочетания. Например, в вашем датасете есть фраза Пожалуйста, больше никогда не звоните мне. Во время разметки из нее будут выделены такие словосочетания:

    Значение параметраРезультат
    1Пожалуйста, никогда не звоните
    Больше не звоните мне
    2Пожалуйста, не звоните мне
    Никогда не звоните мне
    3Пожалуйста, звоните мне

    Значение по умолчанию — 1. Не рекомендуется менять значение, поскольку смысл фразы может измениться.

  • Минимальная частота униграмм — сколько раз слово должно встречаться в датасете, чтобы оно учитывалось при поиске ключевых слов. Значение по умолчанию — 10. Рекомендуемое значение для средних датасетов (от 100 до 1 000 фраз) — 6–7, для крупных (от 1 000 фраз) — от 7 и выше.

  • Минимальная частота N-граммы — сколько раз словосочетание должно встречаться в датасете, чтобы оно учитывалось при поиске ключевых слов. Значение по умолчанию — 5. Рекомендуемое значение для средних датасетов (от 100 до 1 000 фраз) — 2–4, для крупных (от 1 000 фраз) — от 5 и выше.

  • Максимальное общее число N-грамм из фразы — сколько словосочетаний можно составить из одной фразы. Значение по умолчанию — 4. Рекомендуемое значение — 2–5, для длинных фраз — до 6–7.

Синтаксический метод​

Метод позволяет определить синтаксическую связность слов во фразах с помощью парсера UDPipe. Он распознает синтаксические связи во фразах и размечает слова по частям речи.

Настройте параметры:

  • Язык.

    предупреждение
    Метод доступен только для русского, английского и китайского языков.
  • Привести все слова к нижнему регистру.

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

  • Сказуемое во фразах обязательно — будут выделены только фразы, в которых есть сказуемые.

По кластерам​

Эта разметка позволяет выделить в датасете похожие фразы и объединить их в кластеры.

Методы кластеризации:

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

Вероятностный метод​

Алгоритм K-means распределяет фразы по заранее известному числу кластеров. Чтобы использовать его, нужно иметь представление о количестве кластеров, достаточном для датасета. Алгоритм сформирует ровно столько кластеров, сколько вы зададите, и сделает их максимально различными, насколько это возможно.

Суть алгоритма заключается в итеративном повторении двух шагов:

  1. Распределение фраз из датасета по кластерам.
  2. Перерасчет центров кластеров. Когда центры кластеров перестают меняться, алгоритм завершает работу.
подсказка
Подробнее о расчете K-means см. в документации scikit-learn.

Настройте параметры:

  • Язык.

    предупреждение
    Метод доступен только для русского, английского и китайского языков.
  • Количество кластеров — на сколько групп разбить фразы. Просмотрите свой датасет и предположите, сколько в нем затрагивается тем, — это будет примерным количеством кластеров.

Иерархический метод​

Алгоритм Linkage на основе метода Уорда распределяет фразы по кластерам. Задавать число кластеров не нужно — оно определяется автоматически.

подсказка
Подробнее о методе Уорда см. в документации SciPy.

Настройте параметры:

  • Язык.

    предупреждение
    Метод доступен только для русского, английского и китайского языков.
  • Пороговое значение — параметр устанавливает максимально допустимое расстояние между кластерами. При расчете используется косинусная мера. Принимает значения от 0 до 1. Значение по умолчанию — 0.25.

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

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

    1. Хочу взять кредит на первоначальный взнос для ипотеки.
    2. Я могу взять кредит, если у меня уже есть ипотека?
    3. Расскажите, как взять ипотечный кредит.

    Во время кластеризации возможны такие результаты:

    Значение параметраРезультат
    0.25Каждая из фраз может образовать отдельный кластер.
    0.35Фразы № 1 и № 3 образовали кластер Расскажите, как взять ипотечный кредит, фраза № 2 в отдельном кластере.
    0.45–0.55Фразы № 1 и № 3 вошли в крупный кластер Взять ипотеку, фраза № 2 в отдельном кластере.
    0.65 и вышеФразы № 1 и № 3 в крупном кластере Взять ипотеку, фраза № 2 вошла в крупный кластер Взять кредит.

    Многое зависит от вашего датасета, поэтому значение подбирается опытным путем.

  • Количество фраз для кластеризации — количество фраз, которые вы хотите обработать за раз. Настройка может быть полезна при работе с крупными датасетами. Если хотите обработать все фразы сразу, не меняйте значение параметра.

Разбор фраз​

После того как вы разметили фразы, вы можете переключаться между размеченным контентом на вкладке Разбор фраз → раздел Результаты разметки:

  1. Выберите любой результат разметки, например разметку по интентам. Слева находятся интенты, которые будут пополнены распознанными фразами, справа — сами фразы.

    Интерфейс разметки логов
  2. Просмотрите распознанные фразы. С помощью опции Скрыть конфликтные вы можете скрыть фразы, которые подходят к нескольким интентам.

    подсказка
    Полезно просматривать фразы, распознанные с низким весом, — среди них вы можете найти ложные срабатывания. Добавляйте такие фразы в другие, более подходящие интенты. Вы также можете увеличить пороговые значения интентов, чтобы фразы с низким весом распознавались реже.
  3. Если вас устроили результаты разметки, переходите к шагу 5.

  4. Если некоторые фразы распознаны некорректно, вы можете их удалить или распределить по нужным интентам вручную. Для этого выберите фразы и нажмите Добавить в интенты. Появится окно выбора интента.

  5. Выберите подходящий интент или создайте новый. После этого нажмите Добавить фразу.

  6. Нажмите Подготовить к сохранению. Все распознанные фразы будут добавлены в интенты. Чтобы подтвердить изменения, перейдите на вкладку Сохранение в интенты.

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

Сохранение фраз в интенты​

  1. Выберите на верхней панели вкладку Сохранение в интенты. Здесь находятся все фразы, которые вы добавили в интенты во время разбора фраз.

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

  3. Нажмите Сохранить в интенты. После этого все фразы будут сохранены в выбранные интенты проекта.

  4. На боковой панели перейдите в NLU → Интенты и нажмите Тестировать в правом нижнем углу, чтобы обучить классификатор на новом наборе фраз.