Analyser LUIS builtin.datetime.date

stemmer
3

Jeg har bygget en Luis modell, og jeg har møtt problemer parsing den builtin.datetime.date for en oppføring som dette weeked returnerer 2016-W20-WE (eller noe lignende) som doesnt analysere successfuly hjelp DateTime.Parse.

Jeg kom over dette innlegget som synes å bruke en klasse kalt LUISParse, men jeg kan ikke finne noen referanse til dette på Google.

Publisert på 17/05/2016 klokken 06:40
kilden bruker
På andre språk...                            


2 svar

stemmer
5

Jeg har det samme problemet, og ser at i deres SDK doc de bruker Kronisk på selve enheten streng heller enn å prøve å tolke datoformat. Se her :

Så jeg gjorde noe sånt som dette:

Chronic.Parser parser = new Chronic.Parser();
EntityRecommendation date = new EntityRecommendation();
luisResponse.TryFindEntity("builtin.datetime.date", out date);
var dateResult = parser.Parse(date.Entity);

Det fungerer fordi date.Entity bare inneholder dato relatert streng. Eks: Jeg passerer "Ja jeg planlegger å gå neste uke" til Luis og enheten inneholder "neste uke".

Svarte 19/05/2016 kl. 11:44
kilden bruker

stemmer
2

Snarere enn å bruke rå verdi, har jeg funnet ut at jeg måtte grave i de interne elementene og bruke "verdi", "start" og "end" egenskaper. Disse egenskapene i det minste følge datoformater. Dette fungerer for varigheter som helg eller neste 3 dagene, så vel som i dag og bestemte dato forespørsler.

            if (entity.Type == "builtin.datetimeV2.daterange")
            {
                var resolutionValues = (IList<object>)entity.Resolution["values"];
                foreach (var value in resolutionValues)
                {
                    _start = Convert.ToDateTime(((IDictionary<string, object>)value)["start"]);
                    _end = Convert.ToDateTime(((IDictionary<string, object>)value)["end"]);
                }
            }
            else if (entity.Type == "builtin.datetimeV2.date")
            {
                var resolutionValues = (IList<object>)entity.Resolution["values"];
                foreach (var value in resolutionValues)
                {
                    _when = Convert.ToDateTime(((IDictionary<string, object>)value)["value"]);
                }
            }
Svarte 06/02/2018 kl. 22:44
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more