LUIS Намерение не вернуть все значение сущности с пробелом - PullRequest
0 голосов
/ 04 октября 2018

Я создал подобное высказывание LUIS с включенной простой сущностью: выполняемые заказы для клиента abc

Где abc заменяется простой сущностью vf_NARCName

В боте, когда я печатаювопрос как: Заказы в процессе для клиента дерматологическая больница животных

Здесь имя клиента - дерматологическая больница животных, которая разделена пробелом, а затем, когда я выбираю данные через LUIS Rest API, я получаю Animal в качестве значения сущностивместо дерматологической больницы животных, а иногда и без значения сущности, возвращающей

 {
      "query": " orders in process for customer Animal Dermatology Service",
      "topScoringIntent": {
        "intent": "OrderDetails_2a598c9b-7cb5-4113-9aca-435b55bbe19e",
        "score": 0.7547371
      },

Возвращаемые данные

{
  "query": "how many orders are currently in process for customer Animal Dermatology Service",
  "topScoringIntent": {
    "intent": "OrderDetails_2a598c9b-7cb5-4113-9aca-435b55bbe19e",
    "score": 0.6452578
  },
  "entities": []
}

Но если я запрашиваю его только с помощью Animal, то соответствующие данныевозвращается

Возвращаемые данные

{
      "query": "how many orders are currently in process for customer Animal",
      "topScoringIntent": {
        "intent": "OrderDetails_2a598c9b-7cb5-4113-9aca-435b55bbe19e",
        "score": 0.8928922
      },
      "entities": [
        {
          "entity": "animal",
          "type": "vf_NARCName",
          "startIndex": 54,
          "endIndex": 59,
          "score": 0.500023663
        }
      ]
    }

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Ваше приложение LUIS, по сути, нуждается в большем количестве высказываний как эта сущность может возникнуть.

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


  1. Добавьте больше высказываний с ценными вариациями сущности vf_NARCName

Как указано в Первое руководство в документации в разделе «Сборка приложения», убедитесь, что вы включили:

  • Не менее 15 высказываний на каждое намерение , и в том числе различные способы появления сущности

и вариации , о которых вам следует помнить:

  • различия впорядок слов (, где сущность может встречаться в высказывании)
  • время (как "было", "есть", "будет", как показано в этого урока )
  • грамматическая правильность
  • длина обоихвысказывание и самой сущности (количество слов)

Последний бит, вероятно, должен включать в себя больше примеров.Так что проверьте свои высказывания, которые содержат vf_NARCName сущностей, которые имеют не только 1 слово в длину, но и 2 или 3 или даже больше, если это возможно в вашем приложении.


Добавление списка фраз

В виде документов, описывающих состояние списков фраз ,

Список фраз включаетгруппа значений (слов или фраз), которые принадлежат к одному и тому же классу и должны обрабатываться аналогично

Это еще один способ, которым вы могли бы помочь отправить еще один сигнал в LUIS, чтобы помочь обнаружить вашу сущность vf_NARCName.

Учебное пособие по добавлению списка фраз здесь .


Наконец, вы можете посмотреть на , используя Pattern.any

В качестве Pattern.any документов здесь,

использовать сущность pattern.any для извлечения данных из высказываний, где высказывания хорошо отформатированы и где конец данных можно легко спутать с оставшимися словами высказывания

Такесли вы знаете, что у вас могут быть потенциальные vf_NARCName сущности, которые имеют слишком большое количество слов для самой сущности, вы можете воспользоваться сущностью Pattern.any.

Например, может быть, у вас есть The Department of People Who like Really Long Names, But Hate Novels как vf_NARCName сущность.LUIS может быть трудно определить, где именно заканчивается этот объект, но он может сделать это с помощью Pattern.any.

0 голосов
/ 04 октября 2018

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

В этом случае я бы посоветовал вам попытатьсясоздайте список фраз, например, «CompanyNames», и приведите несколько разнообразных примеров, таких как «Служба дерматологии животных», «дерматология животных» и другие реальные примеры имен клиентов, которые могут быть переданы вашему боту в производство.

Вы можете прочитать больше о списках фраз здесь: https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-how-to-add-features

У меня была такая же проблема в прошлом, и мне помогли две вещи: МНОГО данных обучения и списки фраз.

...