AISDK 版本 0.0.1
description
Transcript of AISDK 版本 0.0.1
![Page 1: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/1.jpg)
AISDK AISDK 版本 版本 0.0.10.0.1
自动应答自动应答 SDKSDK
![Page 2: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/2.jpg)
多层回答系统多层回答系统
关键字为主的系统
结构为主的系统
意图匹配数据存储Tag 系统
多层系统增加系统的鲁棒性
![Page 3: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/3.jpg)
AIAI 的的 33 层处理系统层处理系统 最底层第三层是关键字层。只要符合关键
字即可。 第二层是结构匹配层。只要符合特定的结
构即可。 第一层是意图匹配层,它通过意图样本训
练得到的一个人工神经网络来识别意图。如果不匹配的才调用第二层和第三层。
![Page 4: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/4.jpg)
目录介绍目录介绍 假设 AI 的数据目录为 Data\ 则如下目录分别为:
1. Data\Dic---- 辞典,结构等文件2. Data\Tag\Main----Tag 存储系统,用户的数
据存放地3. Data\User----- 样本,函数,等先验数据
![Page 5: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/5.jpg)
意图和意图样本意图和意图样本 这里说的意图,是指一个功能模块 . 意图样本,就是激活这个功能模块的一
些自然语言的句子样本。 例如:为了表达“修改订单”这个意图,
我们有多种表达方式。1. 我有个订单,里面有些产品需要修改一下2. 我要修改订单。订单编号是 123456
![Page 6: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/6.jpg)
意图样本如何保存意图样本如何保存 新建一个 txt 文件,保存成 UTF-8 格式 这个文件的存放路径为:
Data\User\Common\ITS\ 文件格式如下:
======================================== AI. 意图样本 ---------- 意图 1 ---------- 意图 1 对应的句子 1 ======================================== AI. 意图样本(如果和前面一条记录一样,可以省略) ---------- 意图 2 ---------- 意图 2 对应的句子 2 ========================================
![Page 7: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/7.jpg)
具体例子具体例子 ======================================== AI. 意图样本 ---------- 修改订单 ---------- 我有个订单,里面有些产品需要修改一下 ======================================== ---------- ---------- 我要修改订单。订单编号是 123456 ========================================
![Page 8: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/8.jpg)
意图的特征选取意图的特征选取 为了让 AI 自动识别意图,必须给 AI 选取
一些特征。这样 AI 可以自动建立一个识别句子意图网络。
AI 的特征存储在目录为: Data\User\Common\ITS\Keys 注意文件必须是 utf-8 形式 每行一个特征
![Page 9: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/9.jpg)
意图的简单特征意图的简单特征 特征可以是一个词汇
如:天气 也可以是结构,中间用空格分开
如: { 城市 . 类 .E} 天气 也可以是特征的并(多个特征同时出现),
中间用,分割 如:修改 , 订单
![Page 10: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/10.jpg)
意图的复杂特征意图的复杂特征 有的结构由于太抽象,包含的东西太多,
它就失去了区分能力。这时候我们给他做一些限制,就可以表达复杂的特征。
如: 什么 _{ 集 . 类 } 0.1={ 节日 }
代表 { 集 . 类 } 的限制为 : { 节日 } 限制符为 0.0 代表是第一个, 0.1 代表第
二个,其他类似。
![Page 11: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/11.jpg)
TagTag 系统系统 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 的交,数组的翻页。
![Page 12: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/12.jpg)
读取数据到读取数据到 TagTag 系统系统 Data\User\Common\ 下都是 Tag 系统的预处理文件。 这些数据都会自动读取到 AI 的一个 Tag 系统( AI 包含多个 Tag 系
统) 格式:如果关键字一样的内容,可以放在一起。 ======================================== 关键字 ---------- 内容 1 ---------- 内容 2 ======================================== 关键字 2 ---------- 内容 3 ========================================
![Page 13: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/13.jpg)
意图和子意图意图和子意图 如果一个模块激活必须包含几个子模块的
激活,我们称这些子模块为这个意图的子意图。
提醒 . 设置
日期 提醒内容
![Page 14: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/14.jpg)
意图和子意图的存储意图和子意图的存储 意图和子意图的关系 存储在 Tag 系统的预处理文件中,如下表示: ======================================== AI.Map ---------- ITS.Fire|Topic. 日期 |Topic. 提醒 . 设置 ||1 ---------- ITS.Fire|Topic. 提醒内容 |Topic. 提醒 . 设置 ||1 ========================================
![Page 15: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/15.jpg)
AIAI 脚本语言脚本语言 当结构匹配的时候, AI 就可以执行一系列
操作,给用户反馈等。为了提高 AI 的作用,有必要提供一套语言。让 AI 执行各种命令。
如:知识的存储,各种结构的增减。意图的激活等。权重的调整。
![Page 16: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/16.jpg)
AIAI 脚本调用机制脚本调用机制 当用户输入一个句子后 AI检查是否激活了某些意图 如果激活意图 A 。 则系统自动检测是否有 Tag 为“ Fun.A.” 的记录,如果有则执行
这个记录的内容字段中包含的脚本。
![Page 17: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/17.jpg)
一个简单的脚本一个简单的脚本 我们来看一个简单的脚本
============================= 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 中所有的变量都是字符串 !
![Page 18: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/18.jpg)
脚本函数的分类脚本函数的分类 “ITS.“ 开头的, 意图有关的函数 “CN.“ 开头的, 以集合为基础的语义网函数 (CN=ConceptNetWork) “Hook." 开头的, Hook 函数 “FW .” 开头的, Tag 系统函数 “Session.” 开头的, Session 函数,与用户有关的临时变量存储
“Net.“ 开头的, 网络函数,如抓取网络信息,天气, IP 等 "Vector.“ 开头的, 向量函数 “Break.” 开头的,中断函数 “Check.” 开头的,判断检测函数 “Save.” 开头的, 保存函数 “Time.“ 开头的, 时间函数 "SYS.“ 开头的, 系统函数 “String.“ 开头的, 字符串函数 “Var.“ 开头的, 系统变量的一些函数 "File.“ 开头的, 文件函数 "Math.“ 开头的, 数学函数 “Map.“ 或” Search.“ 开头的,映射或搜索有关的函数。
![Page 19: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/19.jpg)
HookHook 函数函数 Hook 设置
设置 Hook 函数后,当指定的结构出现在句子中,相应的函数就自动激活;如:
=Hook.Set(" 城市 ","{ 城市 . 类 .E}"," 城市 .Save")
如果出现城市,如:上海 就会自动激活 Tag 为“ Fun. 城市 .Save" 的函
数。
![Page 20: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/20.jpg)
Session Session 函数介绍函数介绍 保存一个字符串到某个地址 key1/key2
Session.Save(“key1”,”key2”,”value1”)从 key1/key2 地址读取一个值存储到 A
A=Session.Load(“key1”,”key2”)
![Page 21: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/21.jpg)
NetNet 函数介绍函数介绍 从 google.cn抓取上海天气
A=String.URLENCODE(“ 上海天气 ") HTML=Net.Post("www.google.cn","80","/search?q=【 A】 ","G
ET","","utf-8") Net.Post 是抓取函数,
第一个参数是网址 第二个是端口 第三个是文件地址 第四个是方法 第五个是 Post 的值(注意先编码) 最后一个是编码方式。
Net.SendMsg 主动发送消息
Net.SendMsg(“[email protected]”,“AI启动了” )
![Page 22: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/22.jpg)
StringString 函数介绍函数介绍 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 格式
![Page 23: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/23.jpg)
一个抓取上海天气的例子一个抓取上海天气的例子 如果我们想输入:上海天气,或者输入: 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】 ========================================
![Page 24: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/24.jpg)
通用的天气查询,通用的天气查询, step1step1 如果我们要查询任何城市的天气如何做呢? 1.首先需要让 AI 识别这样的意图 我们在 \Data\User\Common\ITS\ 下建立一个 utf-8 编码的文本文件。 内容如下:
======================================== AI. 意图样本 ---------- 天气查询 ---------- 上海天气 ======================================== ---------- ---------- 北京的天气 ======================================== ---------- ---------- 上海的天气 ======================================== ---------- ---------- 天气上海 ========================================
![Page 25: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/25.jpg)
通用的天气查询,通用的天气查询, step2step2
训练 AI 方法: 输入 t 然后输入次数,比如 1.
建议正确和错误的比率 <1/5 为止次数越多,越接近。如果特征选取不够,错误率也不会趋向于零。
![Page 26: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/26.jpg)
通用的天气查询,通用的天气查询, step3step3 输入一些函数
======================================== 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. 城市 ") ========================================
![Page 27: AISDK 版本 0.0.1](https://reader035.fdocuments.net/reader035/viewer/2022081416/56813b93550346895da4c51d/html5/thumbnails/27.jpg)
AIAI 的访问接口的访问接口 AI除了可以 web 方式访问外。还可以通过
GTalk , MSN , QQ访问 Web 方式访问
90端口, HTTP协议。 GTalk , MSN , QQ
对应 3 个 Msger程序。