public async Task <TrainingCorpus> ExtractorCorpus(TAgent agent) { var corpus = new TrainingCorpus() { Entities = new List <TrainingEntity>(), UserSays = new List <TrainingIntentExpression <TrainingIntentExpressionPart> >() }; List <string> entities = new List <string>(); // generate entity list agent.Intents.ForEach(intent => { intent.Entities.ForEach(entity => { if (!entities.Contains(entity.Entity)) { corpus.Entities.Add(new TrainingEntity { Entity = entity.Entity, Values = new List <TrainingEntitySynonym> { new TrainingEntitySynonym { Value = entity.Value, Synonyms = new List <string> { entity.Value } } } }); entities.Add(entity.Entity); } }); }); agent.Intents.ForEach(intent => { var express = new TrainingIntentExpression <TrainingIntentExpressionPart>() { Text = intent.Text, Intent = intent.Intent, Entities = intent.Entities }; corpus.UserSays.Add(express); }); return(corpus); }
public async Task <TrainingCorpus> ExtractorCorpus(TAgent agent) { var corpus = new TrainingCorpus(); corpus.Entities = agent.Entities.Select(x => new TrainingEntity { Entity = x.EntityName, Values = x.Examples.Select(y => new TrainingEntitySynonym { Value = y.Value, Synonyms = y.Synonyms }).ToList() }).ToList(); corpus.UserSays = new List <TrainingIntentExpression <TrainingIntentExpressionPart> >(); foreach (DomainModel domain in agent.Domains) { foreach (IntentModel intent in domain.Intents) { foreach (IntentExampleModel example in intent.Examples) { var say = new TrainingIntentExpression <TrainingIntentExpressionPart>() { Intent = intent.IntentName, Text = example.UserSays, Entities = example.Entities.Select(x => new TrainingIntentExpressionPart { Entity = x.Entity, Start = x.Start, Value = x.Value }).ToList() }; corpus.UserSays.Add(say); } } } return(corpus); }