2017-03-23 3 views
0

저는 LUIS를 사용하여 Microsoft의 Bot Framework에 대해 배우고 있습니다. 나는 수학 문구를 이해할 수있는 간단한 수학 봇을 만들고자합니다. 사용자가 "what is two plus three"또는 유사한 것을 입력하면 LUIS는 사람이 2와 3을 더하고 싶어한다는 것을 이해합니다. 결과는 LuisResult는 다음과 같습니다 :JSON 필드를 얻기 위해 LuisResult를 구문 분석합니다.

{ 
    "query": "what is one plus three", 
    "topScoringIntent": { 
    "intent": "addition", 
    "score": 0.999997139 
    }, 
    "intents": [ 
    { 
     "intent": "addition", 
     "score": 0.999997139 
    }, 
{ 
    "intent": "None", 
    "score": 0.03979478 
} 
], 
    "entities": [ 
    { 
     "entity": "one", 
     "type": "builtin.number", 
     "startIndex": 8, 
     "endIndex": 10, 
     "resolution": { 
     "value": "1" 
    } 
    }, 
    { 
     "entity": "three", 
     "type": "builtin.number", 
     "startIndex": 17, 
     "endIndex": 21, 
     "resolution": { 
     "value": "3" 
     } 
    } 
    ] 
} 

엔티티 목록에서 두 개의 값 필드를 모두 추출해야합니다. 순간 나는 단지이의 값 필드에 "1"과 "3"을 모두 추출 할 수있는 방법이 있습니까

string numberResult = ""; 
EntityRecommendation rec; 
if(result.TryFindEntity("builtin.number", out rec)) 
{ 
    numberResult = rec.Entity; 
    this.number = Int32.Parse(numberResult); 
} 

을 수행하여 제 1 개체 "하나"를 추출하는 방법을 알아?

답변

1

LuisResultlist of all the detected Entities입니다. TryFindEntity 메서드를 사용하는 대신 반복 할 수 있습니다.

+0

저는 여전히 상대적으로 C#에 익숙합니다. 엔티티의 IList를 반복하여 값을 얻는 방법은 무엇입니까? @EzequielJadib – Teragon

+0

https://msdn.microsoft.com/en-us/library/wzc4yayd(v=vs.90).aspx –

+0

C에서 for 루프를 사용하여 반복 할 수 있습니다. –