使用 Rasa NLU 构建一个中文 ChatBot

Rasa NLU 是一个开源的、可本地部署并配套有语料标注工具(rasa-nlu-trainer)的自然语言理解框架。其本身是只支持英文和德文,中文因为其特殊性需要加入特定的 tokenizer 作为整个流水线的一部分,Rasa_NLU_Chi 作为 Rasa_NLU 的一个 fork 版本,加入了 jieba 作为中文的 tokenizer,实现了中文支持。本篇即简单介绍基于 Rasa_NLU_Chi 构建一个本地部署的特定领域的中文 NLU 系统的过程和注意事项。

Readmore

Using Gitbook + Github gh-pages to Note

有效的学习笔记不但可以加深思考和理解,同时还可以充分利用艾宾浩斯记忆规律让学习效率大大提升。写笔记或者博客是一种很好的方式,但如果是对某一个知识体系进行系统学习,这时候就需要我们能够有序的、美观的将笔记进行系统整理,便于形成知识体系同时还方便查阅,Gitbook 就是这样一个神器,能够让你像写书一样记录笔记,便捷、高效、美观,最重要的是免费、可绑定域名而且扩展性强。

Readmore

上手微信小程序开发

伴随小程序和小游戏越来越火,其开发技能也逐渐变得重要起来,最近接手了一个小程序项目,对小程序有了比较深入的了解,其开发也没有想象的那么神秘,这里通过一个基于 Wepy 框架的小程序 Demo 介绍从零上手开发一个小程序的过程。

Readmore

使用编辑距离计算文本相似度

在语音交互中有这样一种场景:给出一组候选项,希望找出与用户输入相似度最高的一项。例如给用户推荐商品(例如手机)的同时会提供一组品牌的筛选项,当用户输入了“选华为的”,这时就需要匹配到“华为(HUAWEI)”这个候选项。用户输入的多样性及 ASR(Automatic Speech Recognition) 的准确率增加了这个问题的复杂性,这里使用 编辑距离 Edit distance 可以很好的解决这个问题。

Readmore

博客域名升级 Https

细心的你肯定有留意到我博客的地址栏左侧多了一个 Https 的小绿标吧,是不是瞬间就感觉高大上了,没错,我把博客域名升级到 Https 了。

Readmore

Java 8 中的 Streams API

Stream 作为 Java8 的一大亮点,是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(过滤、排序、分组、聚合等),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。

Readmore

记录一次 Https 握手故障的排查

之前开发过一款小巧的智能硬件设备,它会在用户点击的时候调用服务端的一个 RESTful API 完成下单功能。最近突然有用户反馈不能正常下单,检查服务端日志发现并没有下单的请求进入,经过排查最终发现是 Https 握手失败导致,下面记录一下详细的解决过程以加深对 Https 和 SSL/TLS 的认识。

Readmore

震惊!AWS EC2 主机 IP 被封!

UC 看多了不自觉也学会震惊体了,哈哈。回到主题,事情是这样的,之前申请了 AWS 的 EC2 免费主机一台,平时在上面部署一些自己的小应用,昨天晚上突然发现部署在上面的相册访问不了,搭的 Shadowsocks(以下简称ss) 代理也不能用了,关键是 SSH 连主机都连不上了,这可是重大线上事故啊。

Readmore

砥砺前行,不忘初心

Readmore

Spring Boot 集成 Quartz 实现动态任务调度

最近使用 spring boot、 quartz、H2(内存数据库) 以及 RabbitMQ 等实现了一个动态的任务管理系统,可以动态的进行任务的创建、修改、暂停、运行以及删除操作,并且使用了 RabbitMQ 消息队列实现了定时任务系统与具体业务系统的解耦,再也不需要每次加个定时任务都上线一次了。

Readmore

Spring @Conditional Annotation

@Conditional 注解是 Spring 4 提供的基于条件的 Bean 的创建方式,Spring Boot 大量利用了这个特定来实现自动配置。比如,当某一个 jar 包在一个类路径下时,自动配置一个或者多个 Bean;或者只有一个 Bean 创建时,才会创建另一个 Bean。总的来说,就是根据特定条件来控制 Bean 的创建行为,这样就可以利用这个特性进行一些自动配置。

Readmore

Spring Events 介绍和实现

Spring 事件体系是观察者模式的典型应用,观察者模式中有主题(Subject)和观察者(Observer),它定义了对象之间的一对多的依赖关系,当主题状态发生变化时,所有观察者都会收到通知并且自动更新,它的主要目标就是松散耦合对象间的一对多的依赖关系。

Readmore