Можно ли игнорировать или прекратить идентификацию сущностей внутри (одинарных / двойных) кавычек в высказываниях в Microsoft LUIS? - PullRequest
0 голосов
/ 19 марта 2019

Я использую MS LUIS для создания чат-бота.Когда имя файла возникает в вопросе, оно обнаруживает имена, даты, числа в имени файла как реальные объекты там, где их нет.Имена файлов явно заключаются в кавычки.Тем не менее, LUIS воспринимает их как сущности.

Есть ли способ заставить LUIS прекратить идентифицировать слова внутри кавычек как сущности.Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 20 марта 2019

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

Однако вы можете справиться с этим в своем коде несколькими способами:

Игнорировать сущности

Когда результат возвращается из LUIS, вы можете выборочно посмотреть на объекты. Псевдокод может быть что-то вроде

// If turnContext.activity.Text doesn't contain "", do something with entities

Выборочно отправить текст в LUIS для распознавания

Если вы не хотите, чтобы LUIS вообще обрабатывал имена файлов, вы также можете игнорировать их в своем коде. Код будет что-то вроде:

var recognizerResult = {};
if (!turnContext.activity.Text.contains("/"))
{
    recognizerResult = await _services.LuisServices[LuisKey].RecognizeAsync(turnContext, cancellationToken);
}

Игнорировать это в пользовательском интерфейсе

Переверните переключатель в верхнем правом углу от представления сущностей к представлению токенов

enter image description here

enter image description here

Добавить новую сущность RegEx с именем filepath, которая затмевает другие сущности

Регулярное выражение сущности: ^(.*/)([^/]*)$

До:

enter image description here

После (примечание: я только RegEx'd для "/", а не "\"):

enter image description here

...