小黄鸡的基本原理

小黄鸡的基本原理:
分为两个部分:训练+匹配

训练
Simsimi的“教学”,就是训练的过程,目的在于构建或者丰富词库。
流程如下:
S1:用户通过教学界面向系统提出一个话题与相应应答。
S2:系统对该话题进行分词,判断该话题在系统知识库中应存放的位置;
S3:在系统知识库中添加该话题及相应应答。

1.1分词方法
聊天机器人的存储并不以句子为单位(那样太费时费空间),而是以词。于是,分词,几乎成为聊天机器人的核心。
词库设计
由于中文词的特点:
1.中文词是一个开放集,词数在增长;
2.以不同字开头的词的数目变化很大,多的达到数百个,少的也可能只有一个或没有;
3.词的长度变化也很大,有单个词,也有六、七个字成词的。这就要求在设计词典时,除了考虑访问效率之外,还得充分考虑存储利用率。

首字哈希通过一次哈希运算就可以直接定位汉字在表中的位置。一个单元包括三项内容;
C:存储首字
F:标志位,存储以C为首字的最长词条的长度
P:指向词表索引表

解释一下哈希:散列表 Hash table,也叫哈希表,顾名思义就是把数据都打散了,再按一定规律存起来,加快访问速度。是根据关键码值key而直接进行访问的数据结构。

举个例子:我想讲[0,100]做成一个哈希表,选取“模10”作为散列函数,以数组作为存储单元,则得到A[10][10]的数组,A[0]里一次存着0,10,20,30,…,90;A[1]里存着1,11,21,…,91.以此类推。

现在举一个训练小黄鸡的例子:
“大白天的做什么美梦啊?”
回答:”哦哈哈哈不用你管”。
S1:应用双向最大匹配算法分词,
“大白天,的,做什么,美梦,啊”
长词优先选择,“大白天”和“做什么”

S2:以“大白天”为例,假设hash函数f(),并设f(大白天)指向首字hash表项[大,11,P]。于是由该表项指向“3字索引”,再指向对应“词表”。

S3:将结构体<大白天,…>插入队尾。体中有一个Ans域,域中某一指针指向“哦哈哈哈不用你管”

S4:完成训练

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值