Требования
Если вы хотите использовать справочные таблицы, убедитесь, что:
- у вас есть компоненты intent_entity_featurizer_regex и ner_crf в вашем NLU-конвейере
- объекты, которым вы хотите соответствовать, имеют четко определенный и узкий охват
- такие объекты, как названия продуктов питания, названия компаний, марки автомобилей, вряд ли появятся в тех контекстах, в которых вы не хотите им соответствовать. Следовательно, справочные таблицы являются хорошим вариантом их использования.
- объекты, подобные объектам (например, «машина», «дом», «бумага»), появляются в разных контекстах, в которых вы вообще не хотите их сопоставлять. Поэтому использование справочных таблиц может даже привести к худшим результатам.
В ваших тренировочных данных
Для того, чтобы использовать справочные таблицы, вы можете определить их непосредственно в данных обучения, например ::
## intent:check_balance
- what is my balance <!-- no entity -->
- Could I pay in [yen](currency)? <!-- entity matched by lookup table -->
## lookup:currency <!-- lookup table list -->
- Yen
- USD
- Euro
Или вы можете написать их в текстовом файле:
Yen
USD
Euro
А затем включите путь к текстовому файлу в данные о тренировках:
## intent:check_balance
... like before
## lookup:food
<path to your look up table text file>.txt
Принимая данные типа Могу ли я заплатить в евро? , Rasa NLU затем устанавливает значение слота currency
в Euro
.
Как они работают
Отдельные элементы в таблице поиска добавляются в регулярное выражение (регулярное выражение), которое применяется к сообщениям, которые ваши пользователи отправляют в бот. Однако таблицы поиска не работают, если ваш пользователь вставляет опечатки, например, запись справочной таблицы Pesos
не будет соответствовать Peesos
. Чтобы также сопоставить эти случаи, вы можете попробовать нечеткое сопоставление, которое описано в статье блога, которую вы связали. Убедитесь, что ваши таблицы поиска не стали слишком большими, поскольку Rasa NLU должна проверять каждое предложение, соответствует ли оно одной из записей вашей таблицы поиска.
Возможно, документация Rasa NLU также может вам помочь.