aiml简介+源代码解析+中文分词(java)

本文整合了看到的几篇博客并结合了笔者自己的尝试,记录下对aiml的浅显理解,想了解的更深入还是要靠自己探索呀!

目录

一、简介

二、原理+源代码解析

三、中文分词尝试

四、注意

五、优势与缺点(个人理解)

 

一、简介

AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,最初来源于一个名为"A.L.I.C.E."的聊天机器人。

简言之,AIML就是用户通过定义的规则模板进行问答匹配,来实现聊天机器人自动问答的功能

下面展示了一个最基本的例子,仅包含最主要的<category><pattern><template>三种标签

<category>
    <pattern>你好</pattern>
    <template>您好,很高兴认识您。</template>
</category>

当用户输入问题“你好”时,机器人就会匹配到这个pattern,然后将<template>中的内容作为答案返回

标签的详细说明可以参考https://www.tutorialspoint.com/aiml/index.htm

二、原理+源代码解析

1.原理

原理参考了春雨里de太阳AIML知识库数据匹配原理解析这篇博客(感谢!)

一个通常流程是:

首先系统初始化,包括问句规范化配置、加载许多配置属性等然后将aiml问答知识库以树的形式加载到内存,将其拆分成单个词,结构类似trie tree,在java源码中就是Graphmaster对象(节点和子节点来存储知识节点)

然后接受用户输入,将问句规范化,并将其拆成一个个单词

进而查询匹配标签

最后根据最佳匹配,完善模板(比如*填充,index填充等)返回答案

 

2.源代码解析

代码逻辑:

(1)用Chat类实现会话,工厂创造bot对象

(2)解析aiml,在aiml包下 AimlHandler类,里面包含对多种标签的解析,生成context

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值