Как провести классификацию с подобными примерами в nlu.md в Rasa - PullRequest
0 голосов
/ 11 января 2020

Я разрабатываю чат-бота с использованием Rasa для организации менеджера по контрактам. Я сталкиваюсь с несколькими проблемами и, прочитав много на форумах и в блоге Rasa, я не могу прийти к решению для этого. У меня есть несколько похожих намерений с похожими примерами, такими как -

“inform_supplier_start_date” and “inform_contract_start_date”.
“inform_supplier_email” and “inform_customer_email” and “inform_reviewer_email”

Теперь проблема в том, что для обеих категорий намерений пример предложения в nlu.md одинаков. То, что я имею в виду, -

##intent:inform_suppler_start_date
-what is the supplier  [Microsoft] (supplier_name) start date
-[EON Digital] (supplier_name) start date

##intent:inform_contract_start
1) start-date of [O2 Mobile phones] (contract_name) 
2) [O2 Mobile phones] (contract_name) start date

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

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

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

customer_email & supplier_email & reviewer_email
total_spend_contract & total_spend_supplier & total_spend_customer
contract_number_for_supplier & contract_number_of_contract & contract_number_organisation

Что именно я должен делать, чтобы получить правильную классификацию. Одним из решений, о котором я думаю, является объединение намерений, таких как «supplier_start_date» и «contract_start_date», в одно «start_date» и проверка извлеченной сущности внутри пользовательских действий в базе данных поставщика и контракта. Но я не думаю, что это было бы правильным использованием естественного языка.

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

1 Ответ

0 голосов
/ 07 февраля 2020

Поскольку примеры ваших намерений очень похожи, модель не сможет их различить. Кроме того, намерение действительно то же самое, inform_suppler_start_date и inform_contract_start информируют бота о дате начала. Какую дату начала нужно выяснить через признание объекта. Поэтому я бы предложил объединить похожие намерения и проверить, что распознавание сущностей обнаружено как сущности. В зависимости от того, был ли найден поставщик или контракт, вы можете выполнить запрос A или B.

...