protected override IEnumerable <string> execute(BeamGenerator generator) { var evt = Get <InstanceOutputEvent>(i => i.Instance.Concept == Concept2.LearnNewConcept); if (evt == null) { yield break; } var collection = evt.Instance; var answer = generator.GetValue(collection, Concept2.Answer); var unknown = generator.GetValue(collection, Concept2.Unknown); var rememberDescription = RememberConceptDescription.Create(generator, answer.Concept, unknown.Concept.Name); YesNoPrompt.Generate(generator, rememberDescription, new ConceptInstance(Concept2.Nothing)); yield return($"So you think {singular(unknown)} is {singular(answer)} ?"); }
protected override IEnumerable <string> execute(BeamGenerator generator) { var askedForLearning = PreviousPolicy <LearnNewPhrase>(out var policyTag) || PreviousPolicy <UnknownAnsweredToLearnNewPhrase>(out policyTag); if (!askedForLearning) { yield break; } var instances = FindTurnInstances().ToArray(); if (!instances.Any()) { yield break; } var unknown = generator.GetValue(policyTag.Tag, Concept2.Unknown); var hypothesis = instances.Last(); generator.Push(new StaticScoreEvent(0.1)); YesNoPrompt.Generate(generator, RememberConceptDescription.Create(generator, hypothesis.Concept, unknown.Concept.Name), new ConceptInstance(Concept2.Nothing)); yield return($"So, you think that {singular(unknown)} means {singular(hypothesis)} ?"); }