Как rasa_nlu использует lookup_tables для извлечения сущностей?

Я пытаюсь разработать чат-бота, используя rasa nlu и rasa core. Но я не получаю ссылку, как rasa_nlu использует lookup_tables для извлечения сущностей. Я уже прошел (http://blog.rasa.com/improving-entity-extraction/), но не получил. Как следует использовать lookup_table для извлечения объекта?


person Souren    schedule 31.10.2018    source источник


Ответы (1)


Требования:

Если вы хотите использовать таблицы поиска, убедитесь:

  • у вас есть компоненты intent_entity_featurizer_regex и ner_crf в вашем конвейер NLU
  • the entities you want to match fit have a well defined and narrow scope
    • entities like food names, company names, car brands are unlikely to appear in contexts you in which you don't want to match them. Hence, look up tables are a good use case for them.
    • такие объекты, как объекты (например, «машина», «дом», «бумага»), появляются в различных контекстах, в которых вы вообще не хотите сопоставлять их. Следовательно, использование таблиц поиска может даже привести к худшим результатам.

В ваших тренировочных данных

Чтобы использовать таблицы поиска, вы можете определить их непосредственно в обучающих данных, например:

## 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.

Как они работают

Отдельные элементы в поисковой таблице добавляются к регулярному выражению (regex), которое применяется к сообщениям, которые ваши пользователи отправляют боту. Однако таблицы поиска не работают, если ваш пользователь вставляет опечатки, например запись таблицы поиска Pesos не соответствует Peesos. Чтобы сопоставить эти случаи, вы можете попробовать нечеткое сопоставление, которое описано в статье блога, на которую вы ссылаетесь. Убедитесь, что ваши таблицы поиска не становятся слишком большими, поскольку Rasa NLU должен проверять каждое предложение, соответствует ли оно одной из записей вашей таблицы поиска.

Возможно, вам также поможет документация Rasa NLU.

person Tobias    schedule 08.11.2018