zoukankan      html  css  js  c++  java
  • Google program AB程序的基本理解

    这个是2017年机器人项目中涉及到的一点东西,虽然没有派上什么大用场,但是还是有必要在这里记录一下!

    1. 初始化Bot
    A. 配置各种路径,例如aiml,aimlif,config,set,map等的路径。
    B. 创建各种graphmaster。有brain,inputgraph,learnfgraph,deletedgraph,patterngraph,unfinishedgraph。
    C. 创建预处理器preProcessor,主要用于后期人机对话时,对用户的输入进行规范化处理。
    D. loading config目录下的properties。
    E. loading aiml set和map文件。
    F. loading categories。【首先从aimlif中加载,若没有category,则从aiml中加载】
      a. 逐个载入aiml文件,对该文件,将里面所有的category解析出来,都放入一个ArrayList里面。
      b. 将ArrayList里面所有的category进行重新构建,每个category转换为一个Path的实例。
      c. 将Path实例(一个链表,每个节点word值就是一个分词),添加到root【Nodemapper】数据结构里,形成一个图的部分。【root是一个森林,每棵树的根就是category里面的pattern的首个分词,注意,不重复】

    2. 知识森林理解
    A. Graphmaster里面,重点是承载知识森林的root节点,一个bot,root节点就是Nodemapper,他是一个基于map构建的树状数据结构。
    B. Nodemapper重点在于String类型的key和一个HashMap类型的map。这个map的value部分也是一个Nodemapper。
    C. 对于单知识点,则这个map用不上,直接用Nodemapper的value表示; 若加载的aiml知识库中的category存在多个不相同的分词,则会用map进行构建graphmaster。
    D. 加载的aiml知识库中,有多少个category,则最终的知识森林graphmaster中就有多少个叶子节点,因为category实例最终都存储在graphmaster的叶子节点中。
    E. 对最终的知识森林graphmaster进行节点统计中,DFS算法,其中有几个概念要明确:
      a. nodeSize:通过当前node的分支数,统计graphmaster中有多少节点。
      b. nodeCnt:直接统计node, 求出graphmaster中有多少节点。
      c. n-ary:表示graphmaster中有多少个节点存在分支。

    关于这个Program AB的程序,我通过大家懂的途径,获取到了,有需要的,可以找我!

    共同探讨,技术改变生活!

  • 相关阅读:
    Ocelot简易教程(二)之快速开始2
    jQuery编程小结
    用户界面的一些好的设计理念
    JQuery插件开发教程
    ASP.NET MVC IOC 之AutoFac攻略
    ASP.NET MVC IOC 之Ninject攻略
    ASP.NET MVC IOC之Unity攻略
    ASP.NET MVC之单元测试分分钟的事
    C#秘密武器之扩展方法
    让AutoMapper在你的项目里飞一会儿
  • 原文地址:https://www.cnblogs.com/shihuc/p/8454565.html
Copyright © 2011-2022 走看看