[关闭]
@evilking 2019-03-12T16:41:43.000000Z 字数 1479 阅读 864

项目实战篇

问答机器人(框架指引)

关键词:微信公众号, Python, Flask, Docker, scrapy, 自然语言处理, Neo4j

项目初衷

作为数据分析师,我们平时更多的工作只是关注在数据处理部分,对于整个产品闭环并不怎么了解;如果只是在分工明确的工作场合那也没什么,但作为有点情怀的技术人来说,往往我们希望能自己实现一些功能,并且能上线供其他人使用,那会是件多么富有成就感的事,而不仅仅只是在本地用开发工具运行调试。

项目规划

为了实现上述项目初衷,我们首先需要对我们的任务有个规划。

作为数据分析师,我们的强项是在数据处理上,而数据处理需要强大的计算能力,往往是在服务器端完成,也即是在后端完成;

但一个功能需要给用户使用,就需要前端的配合,于是我们需要找到一种操作简单、方便交互的前端入口作为用户接口。我们主要是做文本处理,于是文本、语音输入就是主要的交互手段,所以微信公众号就是一个非常好的前端入口。

于是整个产品框架就出来了,用户通过微信公众号平台输入文本或语音,数据请求到我们的服务器端,服务器端响应后给出回应,回应数据传回微信公众号,从而实现用户与服务端产品的交互。

对于大多数文本处理产品来说,区别在于服务端具体提供了什么样的功能,本文以简易的问答机器人作为例子来打通整个产品闭环,真正实现一个完整的产品。

对不同的项目任务来说,就是服务端功能不一样而已

项目技术规划

微信公众号

作为与用户交互的入口,我们需要让服务器对接微信公众号,本篇会指引读者如何去写自己的服务端,如何申请微信公众号,并完成两端文本和语音的数据对接。

服务端

服务端我们使用 Python + Flask + Docker 的技术架构来实现。

Python: 作为目前主流的 AI 开发语言,它拥有完善的NLP工具包供我们使用,开发速度也比较快,作为我们项目的主要开发语言再合适不过了。在本篇中,我们会使用一小节内容来介绍 python 的基础语法。

Flask: python 网站开发的流行框架之一,该框架使用简单,容易上手,而且我们只需要关注服务一侧,并不需要学习它的前端一侧,因为前端侧我们有更好的替代技术。使用 flask 我们就可以打包项目后,以服务的方式启动我们的功能,从而与前端微信公众号进行数据对接。本篇我们会介绍如何构建一个基础的服务器框架。

Docker: 目前主流的微服务架构技术,非常适合分布式的服务扩展,而且非常适合跨平台。本篇我们会详细介绍如何构建一个 Docker 镜像,以及如何搭建一个基本的 Docker 集群。

服务器: 要实现对外访问,我们肯定需要准备一个拥有公网IP 的服务器了。阿里云、腾讯云都是一个不错的选择。

可以看到,经过上面几个模块的实践后,读者应该能自己实现一个完整的项目,并在服务端实现自己感兴趣的功能。

技术扩展

上面提到的 微信公众号 + Python + Flask + Docker 技术架构只是一个框架,具体服务器通过什么功能,视任务的不同而不同。

在上面技术架构的基础上,我们可以做一些更 NLP 的事情,比如利用 scrapy 做爬虫,爬取数据之后经过自然语言处理,将非结构化的数据转化成结构化数据,并结合 Neo4j 这类图数据库做知识检索,这部分我们在后面以 基于知识图谱的电影搜索项目 为例来进行实战演练。

小结

本系列实战内容希望通过几个基础项目将各个知识点串起来,让读者对完整的软件产品开发有个全面的认识,同时避免了单一技术知识点枯燥的堆砌;

本系列内容不追求深且全,只是起到一个引领的作用,至于更深入且全面的知识点,这是需要与具体的业务相结合进行学习的,实际应用的过程中,需要用到的时候再去学,效果会更好一点。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注