Использую rasa nlu для классификации намерений и сущностей для моего чат-бота.Все работает как ожидалось (с обширным обучением), но с сущностями, кажется, предсказывает значение на основе точного положения и длины слова.Это хорошо для сценария, в котором сущности ограничены.Но когда бот должен идентифицировать слово (которое имеет другую длину и еще не обучено, например, новое имя), оно не может обнаружить.Есть ли способ, с помощью которого я могу сделать так, чтобы rasa идентифицировал сущности на основе относительной позиции слова или, что еще лучше, вставил список слов, который становится предметной областью, с которой сущность должна найти соответствие (например, список фраз в LUIS)?
{"q":"i want to buy a Casio SX56"}
{
"project": "default",
"entities": [
{
"extractor": "ner_crf",
"confidence": 0.7043648832678735,
"end": 26,
"value": "Casio SX56",
"entity": "watch",
"start": 16
}
],
"intent": {
"confidence": 0.8835646513829762,
"name": "buy_watch"
},
"text": "i want to buy a Casio SX56",
"model": "model_20180522-165141",
"intent_ranking": [
{
"confidence": 0.8835646513829762,
"name": "buy_watch"
},
{
"confidence": 0.07072182459497935,
"name": "greet"
}
]
}
Но если заменить Casio SX56 на Citizen M1:
{"q":"i want to buy a Citizen M1"}
{
"project": "default",
"intent": {
"confidence": 0.8710909096729019,
"name": "buy_watch"
},
"text": "i want to buy a Citizen M1",
"model": "model_20180522-165141",
"intent_ranking": [
{
"confidence": 0.8710909096729019,
"name": "buy_watch"
},
{
"confidence": 0.07355588750895545,
"name": "greet"
}
]
}
Спасибо!