2013年7月做的一个自动应答机器人的架构

这是2013年在某电商做客服机器人的架构,当时的上司说不好(其实已经是当时最优秀的方案了,向上下文方面,领先其它企业至少一年。所谓“小冰”去年双12为该电商做到的功能,我在2013年8月的时候已经实现了。甚至整体步骤的抽象,到目前为止还没有其它人提出更好的。不过我自己目前正在做打破这个架构的整体步骤划分的抽象,构建真正的智能系统),现在分享出来。不过确实还不过智能,目前正在设计真正智能的自动应答机器人。


整体组件图:

2013年7月做的一个自动应答机器人的架构_第1张图片

主干流程图

2013年7月做的一个自动应答机器人的架构_第2张图片

模块定义:

1、  接口子系统:提供外部接收和返回用户自然语言输入并控制顶层流程;

a)        Web界面子系统:

b)        服务接口子系统:提供与IM等集成的webservice接口;

c)        控制模块:顶层流程控制;

2、  信息识别子系统:识别出用户自然语言输入中的信息,包括事实、任务、操作。如果无法发现,则将用户输入的原语句用于后继查询;

a)        命名实体识别模块:识别用户输入语句中的命名实体,并进行语义标注;

                        i.             商品名及商品属性识别模块:识别用户输入语句中的商品名和商品属性;

                      ii.             数字识别与超链接识别模块:识别用户输入语句中的数字和超链接;

                     iii.             语义标示模块:对分词后的词进行语义标注;

                     iv.             分词及词性标注模块:对用户输入的语句进行分词和词性标注,使用已有的开源软件;

                      v.             控制及归一模块:对命名实体识别的结果进行归一,选择最可能的命名实体,并控制整个命名实体识别流程

b)        任务识别模块:识别用户输入中的任务和操作;

                        i.             SVM识别模块:使用训练好的SVM模型,进行任务识别;

                      ii.             依存分析模块(后期):进行语法分析,获取句子的依存结构,改进识别能力;

                     iii.             复杂语句识别模块(后期):对于很复杂的语句进行分析,识别其中的任务;

c)        信息识别控制模块:控制信息识别的内部流程;

d)        情感分析模块:分析用户的情感;

e)        知识查询接口:提供查询知识库的接口;

3、  任务控制管理子系统:选择合适的任务(包括FAQ等)给用户返回信息;

a)        任务接口及流程控制模块:管理任务,使用信息获取后的信息,确定调用相应的任务或者FAQ等给用户应答;

                        i.             AIML任务模块:管理现有的基于alice实现的任务流程;

                      ii.             任务:添加和扩展的各种任务;

                     iii.             FAQ控制模块:负责通过搜索为用户提供回答;

                     iv.             分类QA对控制模块:控制通过QA对获取答案;

b)        上下文存储模块:负责用户交互中的上下文的存储和管理;

c)        上下文查询接口:为信息识别子系统提供上下文查询接口;

d)        自动信息查询模块(后期):实现对知识图谱的自动查询;

e)        话术调用接口(后期):为任务获取话术,组装给用户的应答提供支持;

4、  系统管理子系统:系统管理功能集中;

a)        知识管理系统:知识库系统的管理平台;

                        i.             知识脚本查询模块:提供gremlin脚本查询线上知识库的接口;

                      ii.             任务图谱管理模块:提供任务图谱的更新、查看和管理;

                     iii.             话术管理模块(后期):提供话术更新、查看和管理

b)        接口管理模块:管理外部接口,包括监控信息查询;

c)        报表系统:提供各种系统相关报表;

5、  业务数据导入work:将业务数据导入业务知识图谱中;

a)        知识更新模块:提供增量更新业务知识图谱的功能;

6、  知识库系统:所有的知识和数据的集中存储;

a)        Titan图形数据库系统:知识存储和管理的存储平台;

                        i.             业务图谱:将各种业务数据和发现的知识统一存储到业务图谱中,支持实时操作;

                      ii.             任务图谱:管理任务元模型,记录和管理实时上下文;

                     iii.             话书库(后期):为任务提供的话术存储;

b)        搜索系统:FAQ信息的存储平台,并对titan的知识定位提供支持;

c)        聊天日志存储系统:存储聊天日志;

d)        外部接口集成系统:集中管理大量的外部接口,提供内部接口适配;

e)        分类答案存储系统:对于SVM分类获得的QA对的答案进行存储;

7、  知识发现系统:从各种数据中发现系统需要的信息和知识;

a)        IM日志导入接口:导入IM日志的接口;

b)        Jimi日志导入模块:将在线日志导到离线日志中;

c)        问题挖掘模块:获取可能存在的QA对和任务;

d)        模型训练模块:对系统需要的统计模型进行训练;

e)        离线语料存储管理模块:存储和管理离线的语料。

 

已完成工作:

1、  接口子系统:

a)        Web界面系统;

2、  信息识别子系统:

a)        命名实体识别模块第一版本;

b)        基于词的SVM模型(需要升级为基于语义的SVM模型);

3、  任务控制管理子系统:

a)        任务接口及流程控制模块第一版本(未集成AIML和FAQ控制);

b)        FAQ控制模块;

c)        AIML任务模块;

d)        索引控制模块;

e)        上下文查询接口第一版本;

f)         上下文存储模块第一版本;

4、  系统管理子系统:

a)        知识脚本查询莫开第一版本;

b)        接口管理模块;

5、  业务数据导入work

a)        商品知识图谱第一期构建(第一版)导库进行中;

6、  知识库系统:

a)        搜索系统;

b)        分类答案存储系统;

c)        任务图谱模型第一版确定,并已构建多个任务;

d)        外部接口集成系统;

e)        聊天日志存储系统;

需要进行工作:

1、  接口子系统:

a)        服务接口子系统实现;*

b)        新控制模块;*

c)        Web子系统升级;

2、  信息识别子系统:

a)        基于语义的SVM分类模型构建;**

b)        命名实体识别改进;

c)        信息识别控制模块实现;*

d)        情感分析模块实现;*

e)        知识查询接口;*

3、  任务控制管理子系统:

a)        任务接口及流程控制模块改进;

b)        AIML任务模块改造;

c)        FAQ控制模块改造

4、  系统管理子系统:

a)        知识查询脚本模块改进;

b)        知识更新模块开发(商品知识图谱);**

c)        任务图谱管理模块开发;*

5、  业务数据导入work**

a)        商品知识图谱完善;

b)        商品知识图谱实时更新实现;

c)        POP知识图谱导入;

d)        活动知识图谱导入;

e)        供应商知识图谱导入;

f)         物流配送知识图谱构建和导入;

6、  知识库系统:

a)        任务图谱改进;

b)        聊天日志存储系统升级;

c)        分类答案存储系统升级;

d)        搜索系统与Titan集成;**

e)        Titan研究与维护;**

7、  知识发现系统:*

a)        Jimi日志导入模块实现;

b)        IM日志导入接口实现;

c)        问题挖掘模块实现;

d)        模型训练模块实现;

e)        离线语料存储管理模块实现

你可能感兴趣的:(2013年7月做的一个自动应答机器人的架构)