从零开始写聊天机器人
2016-04-29 11:59
288 查看
目录
目录简介
搭建聊天机器人的嘴巴之对话功能
websocket简介
Tornado实现websocket服务端
Tornado实现websocket客户端
搭建聊天机器人的大脑之知识库与思考功能
AIML文件简介
PyAIML如何支持中文
PyAIML解析如何支持中文
PyAIML查找时如何支持中文
通过自定义标签扩展AIML文件
AIML如何扩展以支持SQL查询
AIML如何扩展以支持SQL插入
AIML如何扩展以支持个性化标签
AIML如何生成以及存储知识库
AIML如何通过知识库实现推理过程
数据库如何帮助AIML扩展专业方向知识库
中文语义分析以及模糊匹配
如何通过扩展知识库实现推理过程
简介
先把目录与思路写在这儿,有机会慢慢补.aiml如何支持中文补充完毕
搭建聊天机器人的嘴巴之对话功能
websocket简介
Tornado实现websocket服务端
Tornado实现websocket客户端
搭建聊天机器人的大脑之知识库与思考功能
AIML文件简介
PyAIML如何支持中文
PyAIML解析如何支持中文
请先参考我的github上pyaiml的代码
https://github.com/lemontreeshy/PyAIML
请允许我先废话介绍一下aiml的解析过程
Created with Raphaël 2.1.0读取aiml文件利用xml解析工具解析将问题转为词语列表 将问题与答案转为树结构 结束
xml解析这一部分,我就不多说了,主要是xml.sax进行的. 将问题转为词语列表这一步,由于aiml只支持空格分隔的语言,如英语,法语等等,对于中文的 支持力度差了一点,不过我们可以利用中文分词插件来将中文切割成空格分隔的字符串.
import jieba as jb def splitChinese(s): result = jb.cut(s) ret = '|'.join(result) return ret.split("|")
这段代码利用jieba分词天然能够区分中英文的优势,省去了判断中英文的过程,不过我还是要解释一下如何区别中英文(在unicode编码情况下)
def isChinese(c): # http://www.iteye.com/topic/558050 r = [ # 标准CJK文字 (0x3400, 0x4DB5), (0x4E00, 0x9FA5), (0x9FA6, 0x9FBB), (0xF900, 0xFA2D), (0xFA30, 0xFA6A), (0xFA70, 0xFAD9), (0x20000, 0x2A6D6), (0x2F800, 0x2FA1D), # 全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母 (0xFF00, 0xFFEF), # CJK部首补充 (0x2E80, 0x2EFF), # CJK标点符号 (0x3000, 0x303F), # CJK笔划 (0x31C0, 0x31EF)] return any(s <= ord(c) <= e for s, e in r)
返回值为True即为中文,False为英文. 至于在代码何处调用splitChinese,参考链接里的aiml/AimlParser.py文件.
PyAIML查找时如何支持中文
通过自定义标签扩展AIML文件
AIML如何扩展以支持SQL查询
AIML如何扩展以支持SQL插入
AIML如何扩展以支持个性化标签
AIML如何生成以及存储知识库
AIML如何通过知识库实现推理过程
数据库如何帮助AIML扩展专业方向知识库
中文语义分析以及模糊匹配
如何通过扩展知识库实现推理过程
相关文章推荐
- 2015-2016网页设计趋势分析 Web Design of Trends
- Spring整合WebSocket应用示例(上)
- Tornado Web服务器中处理空白字符的解决方案
- 浅析nodejs实现Websocket的数据接收与发送
- Spring整合websocket整合应用示例(下)
- 基于html5和nodejs相结合实现websocket即使通讯
- 基于node实现websocket协议
- Android中使用WebSocket实现群聊和消息推送功能(不使用WebView)
- PIGCMS 如何关闭聊天机器人
- php使用websocket示例详解
- php+html5基于websocket实现聊天室的方法
- Javascript WebSocket使用实例介绍(简明入门教程)
- java中实现兼容ie6 7 8 9的spring4+websocket
- HTML5之WebSocket入门3 -通信模型socket.io
- Spring和Websocket相结合实现消息的推送
- python为tornado添加recaptcha验证码功能
- 剖析Python的Tornado框架中session支持的实现代码
- Tornado Web服务器多进程启动的2个方法
- 高性能web服务器框架Tornado简单实现restful接口及开发实例
- Tornado服务器中绑定域名、虚拟主机的方法