internal ExplicitStateDialogManager(HeuristicQAModule qa) { _currentState = new DialogState(qa); Add <AskEquivalenceDifferenceAction>(); Add <AcceptEquivalenceAdvice>(); Add <EquivalenceQuestionAction>(); Add <QuestionAnsweringAction>(); Add <NoAdviceApologizeAction>(); Add <AcceptAdviceAction>(); Add <RequestAdviceAction>(); Add <WelcomeAction>(); Add <HowCanIHelpYouAction>(); }
private static void ExplicitStateDialog(string dbPath) { var loader = loadDB(dbPath); var qa = new PoolComputation.HeuristicQAModule(new ComposedGraph(loader.DataLayer), new CallStorage(null)); var manager = new PoolComputation.ExplicitStateDialogManager(qa); var provider = new DialogConsole(manager); provider.SimulateInput( "François Hollande is president in which state ?", "It is France", "Barack Obama is president of which state ?", "yes", "dont know" ); provider.Run(); }
private string substitute(ParsedUtterance pattern, ParsedUtterance utterance) { var patternNodes = _context.QuestionAnsweringModule.GetPatternNodes(pattern); var utteranceNodes = _context.QuestionAnsweringModule.GetRelatedNodes(utterance).ToArray(); var substitutions = HeuristicQAModule.GetSubstitutions(utteranceNodes, patternNodes, _context.Graph); var result = repairSpelling(pattern.OriginalSentence); foreach (var patternNode in patternNodes) { NodeReference substitution; if (!substitutions.TryGetValue(patternNode, out substitution)) { substitution = patternNode; } result = result.Replace(patternNode.Data.ToString(), substitution.Data.ToString()); } return(result); }