aiml的中文适配aiml_cn
aiml的中文适配aiml_cn
与其每次费力迁就,不如一劳永逸改造它
源码地址:https://github.com/xiaopangxia/aiml_cn
aiml对中文的支持一直不好,主要时他对中文字符的分割处理不好。很多人选择强行给问句加空格,或者用分词策略。这种做法对纯中文有一点作用,但当问句时中英混句时依然不好用。因为Kernel.py中learn函数的实现策略是判断有英文就当全英文处理,没有英文才给你逐字符加空格,原实现如下:
def learn():...for key,tem in handler.categories.items():new_key = keyif key and key[0] and key[1] and key[2] and em_ext == '.aiml' and (not self._check_contain_english(key[0])):new_key = (' '.join(key[0]), key[1], key[2])elif key and key[0] and key[1] and key[2] and em_ext == '.aiml' and self._check_contain_english(key[0]):new_key=(key[0].upper(), key[1], key[2])self._brain.add(new_key, tem)
对aiml的python库做了简单修改,更加适配中文 Adapt aiml to Chinese better。与其每次费力迁就,不如一劳永逸改造它,做了几处小修改。
1.将Kernel里原来的self._check_contain_english改成了self._check_all_english,即判断问句是否为全英文。在learn和respons函数里的三处调用也尽数改为self._check_all_english。
def _check_contain_english(self, des_str):for uchar in des_str:if (uchar >= u'\u0041' and uchar <= u'\u005a') or (uchar >= u'\u0061' and uchar <= u'\u007a'):return Trueelse:return False
def _check_all_english(self, des_str):for uchar in des_str:if (uchar >= u'\u0041' and uchar <= u'\u005a') or (uchar >= u'\u0061' and uchar <= u'\u007a'):passelse:return Falsereturn True
2.在learn函数里不管是不是全为英文都执行upper操作,转大写。
if key and key[0] and key[1] and key[2] and em_ext == '.aiml' and (not self._check_all_english(key[0])):new_key = (' '.join(key[0]).upper(), key[1], key[2])
elif key and key[0] and key[1] and key[2] and em_ext == '.aiml' and self._check_all_english(key[0]):new_key=(key[0].upper(), key[1], key[2])
aiml的中文适配aiml_cn相关推荐
- python中文聊天_Python下两种曲线救国实现AIML中文聊天机器人功能的方法
alicebot.jpg AIML,全称Artificial Intelligence Markup Language,是一种XML模式,用做自然语言聊天机器人的规则库. 最简单的AIML规则如下: ...
- 码住!Flink Contributor 速成指南
简介: 不管初衷是什么,Flink 都非常欢迎大家一起建设和完善社区.在开始具体的贡献步骤之前,我们先简要介绍一下参与贡献的几种途径,以及 Clarify 关于开源贡献的一些固有印象. 作者:伍翀(云 ...
- 最详细AMD Ryzen CPU,VMware 15安装macOS 10.15.x Catalina 记录(第一篇)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 安装介绍 安装方式 成功案例 前期准备 工具准备 VMware Workstation 15. ...
- C#基于 iTextSharp.text.pdf 实现PDF水印添加功能
在文档电子化管理中会遇到 对PDF进行水印化的需求,如图 private string AddWaterMark(Stream stream,string waterName) { PdfReader ...
- native react 图片多选_react-native实现的多图片选择器
react-native-syan-image-picker 功能介绍 基于已有原生第三方框架封装的多图片选择组件,适用于 React Native App. 原生框架依赖 功能特点 支持 iOS.A ...
- 最详细AMD Ryzen CPU,VMware 16安装macOS 11.x BigSur记录(第二篇)
虚拟机安装macOS 安装之前 博主电脑配置 博主电脑环境 安装环境准备 开始安装 安装VMware Workstation unlocker解锁工具 创建虚拟机 配置虚拟机 运行虚拟机 安装VMwa ...
- AI绘画,治愈着甲方乙方的“恩怨情仇”
| 文章来源于:"腾讯云AI"公众号 在一部分商业活动中, 是创意优先还是效率优先?二者能否兼得? 对于绘画.设计等专业人士,创意与效率之间的矛盾,一直都是难以权衡的问题. 这些问 ...
- iText5-PDF
简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF ...
- Android Studio 创建对应国家语言 values
1.鼠标点击res文件夹,右键-->New-->Android Resource Directory 2.在弹出框里下方左侧列表点击 Locale,然后再点击中间的 "右移按钮& ...
最新文章
- Linux 忘记root登录密码解决方法
- R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图、这样每个条形的高度一样、内部显示不同分布的比例)
- android+单利模式中传递context,Android的Context详解
- 从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目
- 第四次上课 PPT作业
- 【教程】如何给Eclipse中添加库(jar包)
- 识别产品外观的合格软件_产品外观质量视觉检测系统.PDF
- 装有支付宝的手机丢了可咋办
- python变量和对象,切片列表元祖
- 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...
- 梦想是如何失去的?看小米和魅族发布有感
- .Net发布到服务器出现必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=的问题
- 例3.4 二叉树遍历 - 九度教程第32题(二叉树)
- 腾讯云网站域名备案帮助说明文档
- Specification 对象的常用方法
- Rstudio图片保存方式
- 有限域(3)——多项式环的商环构造有限域
- word突然不能保存只能另存为
- Fabric - chaincode开发模式
- 试读《Java特种兵(上册)》
热门文章
- 静下心来,无欲则刚——源自内心的骄傲
- 批量给word添加水印,word魔方顺利完成
- java怎么连发子弹_HTML-坦克大战-完成子弹连发功能(三)
- 没有一个冬天不可逾越
- 使用语义分割架构的文档扫描仪 DeepLabV3
- (详细)解决hive报错FAILED: SemanticException Cartesian products are disabled for safety的问题
- app逆向--美图秀秀sig参数
- TortoiseSVN安装失败——Please install the universal CRT first
- 国产桌面操作系统到底怎么做才能有戏?
- 记录一次uni-app按导航栏左边返回,app闪退问题