#nlp #dialogflow-es #nlu
#nlp #dialogflow-es #nlu
Вопрос:
В Dialogflow (версия ES) у нас есть намерение обнаруживать названия продуктов и необязательные количества. Например. Do you have Pepsi
или I need 4 apples
. У нас также есть несколько обучающих примеров, которые содержат более одного продукта. Например: I need 2 brush and 3 chocolates
.
Общая идея состоит в том, чтобы сделать извлечение сущности универсальным, чтобы мы могли запрашивать n
количество продуктов. Например, 1 Pepsi, 2 eggs, 5 ice cream, and 4 tomatoes
будет правильно извлекать 4 разных продукта.
Но мы провели некоторое ручное тестирование и обнаружили, что извлечение сущностей обычно не распространяется на произвольное количество сущностей. Это ограничение Dialogflow или нам нужно настроить наши обучающие данные, чтобы включить больше примеров с продуктами 4/5 ?
Я ищу предложения по обработке этого типа запросов с произвольным количеством объектов.
Настройка Dialogflow:
ML Threshold: 0.3
Сущности:
Product: Some product names as training data. **Automated expansion** and **Fuzzy matching** enabled.
Product-count: @sys.number. All options disabled
Параметры намерения Product_Query:
---------------- ---------------- ------
| Parameter Name | Entity | Type |
---------------- ---------------- ------
| products | @Products | List |
| product-count | @Product-count | List |
---------------- ---------------- ------
Комментарии:
1. Привет, Джахирул, не могли бы вы включить несколько скриншотов настройки ваших параметров в dialogflow? Это упрощает ответ на ваш вопрос, если мы узнаем больше о том, как вы настраиваете извлечение сущности.
2. Конечно. Я добавляю свою конфигурацию сущности и намерения в сообщение
3. Привет, @Jordi, я обновил сообщение некоторыми настройками Dialogflow. Дайте мне знать, если требуется дополнительная информация. Спасибо
4. Ах, извините за неправильный ответ, я неправильно понял вопрос. Насколько я знаю, не существует определенного ограничения на количество объектов, которые могут быть включены в список. Вы пробовали тестировать это с помощью простого варианта использования, скажем, пытаясь определить 10 чисел?
5. Не беспокойтесь. Спасибо за усилия. Я попробовал, и результаты были поражены и пропущены. Вот почему я хотел получить совет от других, у кого больше знаний о Dialogflow
Ответ №1:
Я создал две сущности: @products и @count:
@products @count *it sounds dumb to use this @count but is useful for
banana 1 this example
apple 2
pepsi 3
cocacola 4
pear 5
orange 6
juice 7
book 8
Затем я создал намерение с именем products_detection и добавил обучающую фразу:
I want 1 banana, 2 apples, 3 juices, 4 pear, 5 orange, 6 book, 7 cocacola, 8 pepsi
Как только вы нажмете enter, Dialogflow сопоставляет слова предложения с сущностями и присваивает каждому из них разное значение. Он также берет сущности из apples
и juices
, хотя они во множественном числе в обучающей фразе.
Я просто хотел попробовать, может ли это работать с одним обучающим предложением, и это сработало на удивление хорошо. Сначала я попробовал с тем же обучающим предложением, и результат:
"parameters": {
"count2": "3",
"count14": "7", <-------------
"count": "1", | You can see that the product and count
"products14": "cocacola", <---- matches for all products
"products13": "book",
"products12": "orange",
"count12": "5",
"count21": "8",
"count11": "4",
"count1": "2",
"products21": "pepsi",
"count13": "6",
"products2": "juice",
"products": "banana",
"products1": "apple",
"products11": "pear"
},
Затем я смешал числа и продукты и попробовал с фразой:
I want 5 banana, 8 apples, 7 juices, 3 pepsi, 1 cocacola, 2 orange, 4 book, 6 pear
И я получаю:
"parameters": {
"count1": "8",
"count12": "1",
"count14": "4",
"count21": "6",
"products13": "orange",
"count11": "3",
"products14": "book",
"products2": "juice",
"count": "5",
"products21": "pear",
"products1": "apple",
"products12": "cocacola",
"count2": "7",
"products": "banana",
"products11": "pepsi",
"count13": "2"
},
Как вы можете видеть, продукты по-прежнему соответствуют подсчетам, и здесь их более 5.
Комментарии:
1. Спасибо за ответ. Но будет ли это работать, если продукт не включен в список объектов. Например, если я говорю: «Я хочу 2 биг-мака, 3 фанты и 1 книгу».
2. Я просто указывал пример с более чем 5 извлечениями объектов, но таким образом продукты, не включенные в список объектов, не будут распознаны. Я даже не знаю, сработает ли это, если в запросе будут повторяющиеся числа. Какие обучающие фразы были у вас в вашем первоначальном подходе?