Как я могу получить значение сущности из объекта LuisResult?(LUIS с Bot Framework .NET) - PullRequest
0 голосов
/ 05 июня 2018

Ниже приведен JSON, когда я вызываю свою конечную точку API LUIS.

  {
        "query": "How do I install citrix?",
        "topScoringIntent": {
            "intent": "Setup Instructions",
            "score": 0.9999997
        },
        "intents": [
            {
                "intent": "Setup Instructions",
                "score": 0.9999997
            },
            {
                "intent": "OS Availability",
                "score": 0.0000021111066
            },
            {
                "intent": "Service Guide",
                "score": 8.18181149e-7
            },
            {
                "intent": "Service Description",
                "score": 5.55555232e-7
            },
            {
                "intent": "None",
                "score": 9e-9
            },
            {
                "intent": "Greeting",
                "score": 1.41666667e-9
            },
            {
                "intent": "Compassion",
                "score": 8.1e-10
            },
            {
                "intent": "Images",
                "score": 8.1e-10
            }
        ],
        "entities": [
            {
                "entity": "citrix",
                "type": "Service",
                "startIndex": 17,
                "endIndex": 22,
                "resolution": {
                    "values": [
                        "Citrix Receiver"
                    ]
                },
                "role": ""
            }
        ],
        "sentimentAnalysis": {
            "label": "positive",
            "score": 0.7695234
        }
    }

Я пытаюсь получить строку "Citrix Receiver" снизу.

Ниже приведен мой код

LuisResult result
var strEntity = result.Entities[0].Resolution.Values[0]

но я не могу применить индексирование к выражению типа ICollection<object>.Похоже, что resolution определен как словарь, и после исследования я видел другие тела JSON с resolution, имеющими несколько пар ключ-значение.Возможно ли, что тело изменилось, а расширение Luis в MS Bot Builder Framework - нет?

Спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Ранее у меня была такая же проблема, чтобы получить список разрешенных объектов, я решил ее, используя следующий код:

result.Entities.First().Resolution.Values.Select(s => JArray.Parse(s.ToString()).Distinct().ToList();

Так что для вас это может быть немного короче, как:

result.Entities.First().Resolution.Values.First(s => JArray.Parse(s.ToString());
...