1 / 27

AISDK 版本 0.0.1

AISDK 版本 0.0.1. 自动应答 SDK. 多层回答系统. 多层系统增加系统的鲁棒性. 意图匹配. 数据存储 Tag 系统. 结构为主的系统. 关键字为主的系统. AI 的 3 层处理系统. 最底层第三层是关键字层。只要符合关键字即可。 第二层是结构匹配层。只要符合特定的结构即可。 第一层是意图匹配层,它通过意图样本训练得到的一个人工神经网络来识别意图。如果不匹配的才调用第二层和第三层。. 目录介绍. 假设 AI 的数据目录为 Data 则如下目录分别为: DataDic---- 辞典,结构等文件

harris
Télécharger la présentation

AISDK 版本 0.0.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AISDK 版本 0.0.1 自动应答SDK

  2. 多层回答系统 多层系统增加系统的鲁棒性 意图匹配 数据存储 Tag系统 结构为主的系统 关键字为主的系统

  3. AI的3层处理系统 • 最底层第三层是关键字层。只要符合关键字即可。 • 第二层是结构匹配层。只要符合特定的结构即可。 • 第一层是意图匹配层,它通过意图样本训练得到的一个人工神经网络来识别意图。如果不匹配的才调用第二层和第三层。

  4. 目录介绍 • 假设AI的数据目录为 Data\ • 则如下目录分别为: • Data\Dic----辞典,结构等文件 • Data\Tag\Main----Tag存储系统,用户的数据存放地 • Data\User-----样本,函数,等先验数据

  5. 意图和意图样本 • 这里说的意图,是指一个功能模块. • 意图样本,就是激活这个功能模块的一些自然语言的句子样本。 • 例如:为了表达“修改订单”这个意图,我们有多种表达方式。 • 我有个订单,里面有些产品需要修改一下 • 我要修改订单。订单编号是123456

  6. 意图样本如何保存 • 新建一个txt文件,保存成UTF-8格式 • 这个文件的存放路径为: • Data\User\Common\ITS\ • 文件格式如下: • ======================================== • AI.意图样本 • ---------- • 意图1 • ---------- • 意图1对应的句子1 • ======================================== • AI.意图样本(如果和前面一条记录一样,可以省略) • ---------- • 意图2 • ---------- • 意图2对应的句子2 • ========================================

  7. 具体例子 • ======================================== • AI.意图样本 • ---------- • 修改订单 • ---------- • 我有个订单,里面有些产品需要修改一下 • ======================================== • ---------- • ---------- • 我要修改订单。订单编号是123456 • ========================================

  8. 意图的特征选取 • 为了让AI自动识别意图,必须给AI选取一些特征。这样AI可以自动建立一个识别句子意图网络。 • AI的特征存储在目录为: • Data\User\Common\ITS\Keys • 注意文件必须是utf-8形式 • 每行一个特征

  9. 意图的简单特征 • 特征可以是一个词汇 • 如:天气 • 也可以是结构,中间用空格分开 • 如:{城市.类.E} 天气 • 也可以是特征的并(多个特征同时出现),中间用,分割 • 如:修改,订单

  10. 意图的复杂特征 • 有的结构由于太抽象,包含的东西太多,它就失去了区分能力。这时候我们给他做一些限制,就可以表达复杂的特征。 • 如: • 什么_{集.类} • 0.1={节日} • 代表{集.类}的限制为 :{节日} • 限制符为0.0代表是第一个,0.1代表第二个,其他类似。

  11. Tag系统 • AI内部数据是采用一个Tag存储系统。 • 这里的Tag系统是指:通过关键字可以查询到对应的文本或INT数组的系统。 • 1.关键字---(String) • 例如: • 1/name ID=1的记录的标题 • 1/content ID=1的记录的内容 • 2.Tag---{1,2,5,7,3} • 例如: • 上海---{1,2,3} • 区号---{1,2,3} • 支持Tag的交,数组的翻页。

  12. 读取数据到Tag系统 • Data\User\Common\下都是Tag系统的预处理文件。 • 这些数据都会自动读取到AI的一个Tag系统(AI包含多个Tag系统) • 格式:如果关键字一样的内容,可以放在一起。 • ======================================== • 关键字 • ---------- • 内容1 • ---------- • 内容2 • ======================================== • 关键字2 • ---------- • 内容3 • ========================================

  13. 意图和子意图 • 如果一个模块激活必须包含几个子模块的激活,我们称这些子模块为这个意图的子意图。 提醒.设置 日期 提醒内容

  14. 意图和子意图的存储 • 意图和子意图的关系 • 存储在Tag系统的预处理文件中,如下表示: • ======================================== • AI.Map • ---------- • ITS.Fire|Topic.日期|Topic.提醒.设置||1 • ---------- • ITS.Fire|Topic.提醒内容|Topic.提醒.设置||1 • ========================================

  15. AI脚本语言 • 当结构匹配的时候,AI就可以执行一系列操作,给用户反馈等。为了提高AI的作用,有必要提供一套语言。让AI执行各种命令。 • 如:知识的存储,各种结构的增减。意图的激活等。权重的调整。

  16. AI脚本调用机制 • 当用户输入一个句子后 • AI检查是否激活了某些意图 • 如果激活意图A。 • 则系统自动检测是否有 • Tag为“Fun.A.”的记录,如果有则执行这个记录的内容字段中包含的脚本。

  17. 一个简单的脚本 • 我们来看一个简单的脚本 • ============================= • Fun.Test1. • --------------------- • 【AI.Map】 • A=“1” • B=“2” • Sys.out=Math.Cal(“【A】+【B】”) • ============================= • 这个函数的名称为Fun.Test1. • 【AI.Map】代表这个是一个脚本,而不是普通文本。 • 其中A,B是2个变量,sys.out是函数的输出值。 • Math.Cal是计算函数。 • 【A】是对变量A的引用。 • 注意:AI中所有的变量都是字符串!

  18. 脚本函数的分类 • “ITS.“开头的,意图有关的函数 • “CN.“开头的,以集合为基础的语义网函数(CN=ConceptNetWork) • “Hook."开头的,Hook函数 • “FW .”开头的,Tag系统函数 • “Session.”开头的, Session函数,与用户有关的临时变量存储 • “Net.“开头的,网络函数,如抓取网络信息,天气,IP等 • "Vector.“开头的,向量函数 • “Break.”开头的,中断函数 • “Check.”开头的,判断检测函数 • “Save.”开头的,保存函数 • “Time.“开头的,时间函数 • "SYS.“开头的,系统函数 • “String.“开头的,字符串函数 • “Var.“开头的,系统变量的一些函数 • "File.“开头的,文件函数 • "Math.“开头的,数学函数 • “Map.“或”Search.“开头的,映射或搜索有关的函数。

  19. Hook函数 • Hook设置 • 设置Hook函数后,当指定的结构出现在句子中,相应的函数就自动激活;如: • =Hook.Set("城市","{城市.类.E}","城市.Save") • 如果出现城市,如:上海 • 就会自动激活Tag为“Fun.城市.Save"的函数。

  20. Session 函数介绍 • 保存一个字符串到某个地址key1/key2 • Session.Save(“key1”,”key2”,”value1”) • 从key1/key2地址读取一个值存储到A • A=Session.Load(“key1”,”key2”)

  21. Net函数介绍 • 从google.cn抓取上海天气 • A=String.URLENCODE(“上海天气") • HTML=Net.Post("www.google.cn","80","/search?q=【A】","GET","","utf-8") • Net.Post是抓取函数, • 第一个参数是网址 • 第二个是端口 • 第三个是文件地址 • 第四个是方法 • 第五个是Post的值(注意先编码) • 最后一个是编码方式。 • Net.SendMsg • 主动发送消息 • Net.SendMsg(“happyli.happyli@gmail.com”,“AI启动了”)

  22. String函数介绍 • String.Reg.Get,正则表达式匹配 • 如果HTML变量是抓取来的一个网页我们要用Pattern去匹配。则: • Pattern="[细节](.*?)(【B】天气(.|\n)*?)北京市专业气象台" • R=String.Reg.Get(HTML, Pattern, "0") • String.Replace 函数 • 替换字符串 • R=String.Replace(R,“hi”,“你好") • String.HTML2Text 函数 • 把HTML转为普通文本 • HTML=String.HTML2Text(HTML) • String.URLENCODE函数 • 编码为utf-8格式

  23. 一个抓取上海天气的例子 • 如果我们想输入:上海天气,或者输入:shtq就把google.cn中的上海天气信息抓取过来,则我们需要写如下一个Tag记录即可实现我们要的功能。 • ======================================== • 上海天气 shtq • ---------- • 【AI.Map】 • A=String.URLENCODE(“上海天气") • HTML=Net.Post("www.google.cn","80","/search?q=【A】","GET","","utf-8") • HTML=String.HTML2Text(HTML) • R=String.Reg.Get(HTML,"[细节](.*?)(【B】天气(.|\n)*?)北京市专业气象台","0") • R=String.Replace(R,"细节]。","") • R=String.Replace(R,"北京市专业气象台","") • Sys.out=【R】 • ========================================

  24. 通用的天气查询,step1 • 如果我们要查询任何城市的天气如何做呢? • 1.首先需要让AI识别这样的意图 • 我们在\Data\User\Common\ITS\下建立一个utf-8编码的文本文件。 • 内容如下: • ======================================== • AI.意图样本 • ---------- • 天气查询 • ---------- • 上海天气 • ======================================== • ---------- • ---------- • 北京的天气 • ======================================== • ---------- • ---------- • 上海的天气 • ======================================== • ---------- • ---------- • 天气上海 • ========================================

  25. 通用的天气查询,step2 • 训练AI方法: • 输入t • 然后输入次数,比如1. • 建议正确和错误的比率<1/5为止 • 次数越多,越接近。如果特征选取不够,错误率也不会趋向于零。

  26. 通用的天气查询,step3 • 输入一些函数 • ======================================== • AI.Map • ---------- • ITS.Fire|Topic.城市|Topic.天气查询||1 • ======================================== • Fun.天气查询. • ---------- • 【AI.Map】 • B=Session.Load("","Topic.城市") • T=Session.Save("","Topic.城市","") • A=String.URLENCODE("【B】天气") • HTML=Net.Post("www.google.cn","80","/search?q=【A】","GET","","utf-8") • HTML=String.HTML2Text(HTML) • R=String.Reg.Get(HTML,"[细节](.*?)(【B】天气(.|\n)*?)北京市专业气象台","0") • R=String.Replace(R,"细节]。","") • R=String.Replace(R,"北京市专业气象台","") • =【R】 • ======================================== • Fun.城市. • ---------- • 【AI.Map】 • =Hook.Set("城市","{城市.类.E}","城市.Save") • =请输入城市,如:上海 • ======================================== • Fun.城市.Save • ---------- • 【AI.Map】 • =Session.Save("","Topic.城市","$[@]$") • =ITS.SetItem("Topic.城市") • ========================================

  27. AI的访问接口 • AI除了可以web方式访问外。还可以通过GTalk,MSN,QQ访问 • Web方式访问 • 90端口,HTTP协议。 • GTalk,MSN,QQ • 对应3个Msger程序。

More Related