面向高校的智能对话系统设计与实现

2022-10-13 13:16田焕陈志荣
宁波工程学院学报 2022年3期
关键词:分词向量文本

田焕,陈志荣

(宁波工程学院 理学院,浙江 宁波 315211)

0 引言

当前大数据时代背景下,高校已经建立起数字化教学管理和各类信息服务平台,但是校园信息繁多且通常分布在各个独立的校内网站上,这给缺少综合信息处理能力、获取专业培养方案或校园信息的途径往往还是依赖询问学长、老师等的大学生,带来诸如数据陈旧、信息不实、课程设置不理解等一系列负面问题。因此,迫切需要为大学生提供一个可以进行人机对话、实时答疑解惑,且简单、易操作的综合服务平台。

当前有关人工智能的技术已遍布各行各业,多个领域也因人工智能技术的加入而快速发展,人们在各方面生活也因此更加便利高效。而作为在人工智能领域中较有难度的研究方向——人机对话,也得到了广泛的重视。各大企业的人机对话产品不断涌现,如苹果公司的Siri,微软的Cortana等。本文将采用人工智能技术面向高校应用场景,根据大学生高频搜索的校园和专业信息的问答文本数据,训练二进制词向量文件,结合Seq2Seq模型和Attention机制构建生成式对话模型,最后开发实现高校智能对话系统。

1 人机智能对话模型设计

1.1 人机智能对话模型

首先需要收集数据并训练,将问答对文本数据转换为二进制向量文件,借此与问题向量进行余弦相似度计算,返回相似度最高的回答。对于余弦相似度未达到设定阈值的问题,利用Seq2Seq和Attention机制组建的生成式对话模型,作生成式应答,具体如图1所示。

图1 人机智能对话模型

1.2 数据收集和预处理

经过训练后的结构化数据是实现人机对话的核心基础。本文以信息与计算科学专业为例,重点关注专业培养方案、课程设置、专业教师评价、学分规定、往届毕业生信息、考研相关、就业信息、出国资讯和奖学金信息等。通过收集线上线下大学生问卷、历届生专业评价调查、咨询本专业负责人以及校内现有公开的校园信息语料库,形成基础问答文本数据。收集到的网络文本和自然语言会有诸如不规范、半结构化的问题。因此,为了去除文本中无意义的数据以及重复多余的内容,需要对问答文本进行预处理,主要包括以下步骤:噪声数据去除、分词及词性标注、停用词过滤。[1]

1)去噪。在网络上搜集到的数据不一定完全是文字,可能还含有图片、表情和符号等无意义的数据噪声数据,这些数据不仅会增加文本处理的工作量,更会对后续的分词等一些操作造成影响,从而降低了文本处理的效率。因此可以先对数据进行去噪处理,将数据转换为纯文字序列文本。

2)分词。在中文文本中,一个短文本的语义表达是以词来划分的。中文分词的作用是将去除噪声数据后的纯字序列文本按中文分词规则分割开。另外,词性标注也是必要的,便于实现句法分析、信息抽取等工作。在前期对问答数据进行中文分词以及词性标注时可以利用分词包来完成。

3)过滤。停用词过滤则是为了删除文本中重复率高但信息量低的词,例如“啊”“和”等,从而提高重要词的比例。

1.3 词向量转化

人机对话回答问题的准确度受到问答数据的数量、质量以及系统理解问句和处理问题的方式等因素影响,利用合适的自然语言处理技术可以提高答案的准确性。词的表示方式通常为以下两种:One-hot Representation(独热表示)和Distribution Representation(分布式表示)。[1]因为高校对话系统所包含的问题领域较多、数据维度比较大,而独热表示无法展示词与词之间的关联性,因此本文采用分布式表示方式。分布式表示是通过模型训练将每个词都编码成一个固定长度的向量来达到降维的目的,并将这些向量在向量空间中表示出来,每个向量在其中则可以表示为一个点。在这个空间中引入“距离”的概念,距离越近相似度也就越高。利用分布式表示可以将问答对文本数据和学生提出的问题转换成向量、进行相似度比较找到答案。

词嵌入(Word Embedding)即是对词采用分布式表示。本文利用Word2vec来得到二进制向量文件,其采用了CBOW和Skip-gram两种训练模型[1]。其中CBOW是通过上下文预测当前词,Skip-gram则是利用当前词来预测上下文。例如,“信科”“信科专业”“信息与计算科学”等词向量,经过训练后都会预测成为“信息与计算科学专业”标准词向量。

1.4 基于Seq2Seq的生成式对话模型

问句相似度计算会存在相似度低于阈值的情况即无法回答的情况,这就需要增加一个基于Seq2Seq的生成式对话模型来避免这种情况产生,可以针对学生提出的各种不同的问题给出生成式答案[1]。Seq2Seq模型是一个使用神经网络将一个序列映射到另一个序列的通用框架,其改善了输入序列长度固定的问题。Seq2Seq模型的思想是使用一个LSTM(长短期记忆网络)读取输入序列,每次一个时间步长,从而将输入序列编码成固定维度的向量(编码Encoder过程),然后使用另一个LSTM从该向量提取输出序列(解码Decoder过程)。在训练模型时,就可以将问题向量作为输入序列,将答案向量作为输出序列,将每个问题向量和对应的答案向量各自经过编码和解码过程进行训练。

Seq2Seq模型如图2所示,首先读取一个输入句子“理学院专业”,然后生成“金融工程,信息与计算科学……”作为输出句子。模型在输出语句结束标记EOS后停止进行预测。其中,LSTM会反向读取输入句子,因为这样可以在数据中引入许多短期依赖性,从而使优化问题更容易解决。

图2 Seq2Seq模型

1.5 Attention机制引入

由于输入序列编码向量的长度是固定的,因此能够存储的信息也是有限的。若输入问题文本序列比较长,传递的信息比较多,那么必然会产生较大的信息损耗。因此本文引入Attention机制,模拟人的注意力,使其聚焦到重要信息上,比如在“理学院有哪些专业”中,重点就在于“理学院”和“专业”,那么它就会把注意力集中在这两个词上。Attention机制的本质如下图3所示。

图3 Attention机制

通过Query和key间的关联性可以得到每个value的权重系数,再对value加权求和得到Attention value。不引入Attention机制的Seq2Seq模型只会将Encoder最后的输出作为Decoder的输入,而引入Attention机制则会在每个时间步都选择与之相关的编码器信息。在时间步为t时,Attention保存着Encoder的每一步输出,并且Attention的输出将会作为上下文信息与解码器在t时刻的输入拼接起来一起输入到解码器,从而实现上下文语义关联,问题回答更加精准。

2 面向高校的智能对话系统

2.1 智能对话微信小程序

高校智能对话系统主要服务对象是在校大学生,需要便捷易操作。本文选用微信小程序作为前端,为学生提供一个可对话交互的界面。微信程序使用面广泛,用户不需要再去安装、学习和适应新系统,使用方便;且微信小程序不需要下载,不占手机空间。

2.2 系统总体设计

基于生成式对话模型,智能对话系统主要包括问题理解、问题检索两个功能模块。问题理解是为了让系统理解接收到的问题,含文本预处理和问题判断;文本预处理包括去除噪声、分词、去停用词等操作;问题判断则是依靠词向量转换。问题检索是为了获取到问题相应的答案,可以通过词向量转换和问句相似度计算实现。

系统处理问题的流程如图4所示。在收到问题后,经过预处理将问题转化为机器所能理解识别的结构化序列,再根据已训练的词向量模型把问题转换为词向量,进而与已有问题向量进行余弦相似度计算,最终以相似度最高的问题去查询数据库中的答案返回给学生。若是相似度未达到设定的阈值,则问题将会输入到预先训练好的Seq2Seq生成式对话模型,做生成式应答反馈给用户。

2.3 人机对话演示

如图5所示,进入对话界面后,学生可发出提问,系统接收到问题后进行处理并返回答案或做生成式应答,实现高校场景下的人机对话。

图4 问题处理流程

图5 人机对话演示

3 结语

本文利用自然语言处理技术,针对高校大学生专业综合信息获取困难等问题,设计生成式对话模型,并基于该模型开发实现智能对话微信小程序。系统测试结果显示:回答的准确率约为81.24%。随着使用量扩大,用户的提问数据可以加入到训练模型中,系统迭代升级后准确率将会进一步提高。此外,Attention机制也还存在一些缺点,如对序列的所有元素采用并行处理无法考虑输入序列的元素顺序,而要想捕捉位置信息还需要改进。如有足够的训练数据,本模型和系统后期可扩展至其他应用场景。

猜你喜欢
分词向量文本
向量的分解
聚焦“向量与三角”创新题
分词在英语教学中的妙用
在808DA上文本显示的改善
结巴分词在词云中的应用
结巴分词在词云中的应用
基于doc2vec和TF-IDF的相似文本识别
向量垂直在解析几何中的应用
文本之中·文本之外·文本之上——童话故事《坐井观天》的教学隐喻
向量五种“变身” 玩转圆锥曲线