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)} ?");
        }
Ejemplo n.º 2
0
        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)} ?");
        }