public static KnowledgeClassifier <string> Advice(this KnowledgeClassifier <string> classifier, string nodeData, string cls)
        {
            var node = GraphLayerBase.CreateReference(nodeData);

            classifier.Advice(node, cls);
            return(classifier);
        }
Esempio n. 2
0
        internal SurroundingPatternPart(ComposedGraph graph, string defaultValue)
        {
            SingleNodeClassifier    = new KnowledgeClassifier <string>(graph);
            MultipleNodesClassifier = new KnowledgeClassifier <string>(graph);

            _singleDefaultValue = defaultValue;
            _multiDefaultValue  = defaultValue;
        }
        public static KnowledgeClassifier <string> Assert(this KnowledgeClassifier <string> classifier, string expectedClass, params string[] nodesData)
        {
            foreach (var nodeData in nodesData)
            {
                var node        = classifier.Knowledge.GetNode(nodeData);
                var actualClass = classifier.Classify(node);

                U.Assert.AreEqual(expectedClass, actualClass, "Incorrect classification for '" + nodeData + "'");
            }
            return(classifier);
        }
Esempio n. 4
0
        internal ActionBlock(ComposedGraph graph, IEnumerable <IPoolAction> actions)
        {
            var semantics = actions.FirstOrDefault();

            if (semantics != null && semantics.SemanticOrigin != null)
            {
                OriginalSentence = Dialog.UtteranceParser.Parse(semantics.SemanticOrigin.Utterance).OriginalSentence;
            }

            OutputFilter = new KnowledgeClassifier <bool>(graph);
            _actions.AddRange(actions);
            RequiredSubstitutions = findRequiredSubstitutions(actions);
        }
Esempio n. 5
0
        internal void Filter(KnowledgeClassifier <bool> knowledgeClassifier)
        {
            if (knowledgeClassifier.Root == null)
            {
                //there is no initialization yet
                return;
            }

            var newLayer = new HashSet <NodeReference>();

            foreach (var node in _accumulator)
            {
                var isAccepted = knowledgeClassifier.Classify(node);
                if (isAccepted)
                {
                    newLayer.Add(node);
                }
            }

            _accumulator = newLayer;
        }
Esempio n. 6
0
        private static void KnowledgeClassifier()
        {
            var dataLayer = new PresidentLayer();
            var graph     = new ComposedGraph(dataLayer);

            var node1 = graph.GetNode("Barack_Obama");
            var node2 = graph.GetNode("Miloš_Zeman");
            var node3 = graph.GetNode("Michelle_Obama");

            var log = new MultiTraceLog(new[] { node1, node2, node3 }, graph);

            var classifier = new KnowledgeClassifier <string>(graph);

            classifier.Advice(node1, "president");
            classifier.Advice(node2, "president");
            classifier.Advice(node3, "wife");

            var node4 = graph.GetNode("Ivana_Zemanová");
            var node5 = graph.GetNode("Andrej_Kiska");

            var test1 = classifier.Classify(node4);
            var test2 = classifier.Classify(node5);
        }