随着社会经济的快速发展,人们对生活质量的要求越来越高,外出旅游的人越来越多。为了更好更快地促进我国旅游业高质量发展,国家旅游局于 2015 年 1 月发布了《关于促进智慧旅游发展的指导意见》, 指出“智慧旅游是运用新一代信息网络技术和装备,充分准确及时感知和使用各类旅游信息,从而实现旅游服务、旅游管理、旅游营销、旅游体验的智能化,促进旅游业态向综合性和融合型转型提升”。
游客到达旅游地后,景区导游的一个重要职责是讲好景点故事,引导游客进入观赏意境,提升旅游体验。好的讲解服务能带给游客好的旅游体验,增长旅游知识!由于景区导游自身知识水平、责任心和服务收费等原因,游客往往难以享受到高质量、低成本的个性化讲解服务,很多时候是一大群人跟着一个导游走马观花式地观赏,旅游沉浸感不强。为了提升讲解服务质量和降低服务成本,国内不少景区建设了电子讲解系统,研究人员提出了一些系统实现方案,市场上也有美景听听、三毛游 FM、旅游精灵等智能手 机 APP供游客下载使用。但这些系统目前都是通过红外感应/扫码/触屏方式启动的广播式解说,缺乏人与人间的自然语音互动交流能力,游客参与感不强。
自然语言处理是人工智能的一个研究热点,目的是让人能以自然语音或文本方式和智能设备交互,让机器理解人的意图并做出响应。随着语音识别技术的逐渐成熟,自然语言处理技术已开始应用于医疗健康、 电商客服、智能家居、铁路售票、自动驾驶等领域,比如微软的小娜、苹果手机的 Siri、百度搜索的小度、 淘宝客服的小蜜等智能系统。但在旅游景区讲解服务方面,笔者尚未看到自然语言处理应用于该领域。
一、系统架构设计
“五视图法”是信息系统架构设计常用的一种方法。本文使用该方法设计了旅游景区智能讲解系统 的物理架构和逻辑架构。
1.1 物理架构
随着云计算、大数据、人工智能、物联网、移动互联网等新一代信息技术的快速发展,支持“云大物 移智”已成为信息系统设计遵循的一大准则。本文按照“云+端”模式设计的旅游景区智能讲解系统物理架构。
1.2 逻辑架构
从软件角度来看,系统分为两大部分。一是可安装于游客智能手机上的 APP软件,二是部署在服务端云主机上的讲解服务程序。移动端 APP 是游客享受景点讲解服务的介质,提供了游客定位数据获取、游客问询语音输入、系统应答(包括讲解、问询、通知语音输出/图片展示/视 频播放)等功能。服务端讲解服务程序主要完成语音识别、文本向量化处理、命名实体识别、对话状态跟踪、对话策略管理等自然语言处理功能,系统将根据游客意图到景区的讲解知识库中检索知识,最后生成讲解内容返回给移动端APP。
二、关键技术分析
运行于服务端的讲解服务程序是本文系统最重要部分,主要由语音识别、文本向量化处理、命名实体识别等功能模块组成。语音识别和生成技术目前已比较成熟,且有百度语音和科大讯飞等公司/机构提供的SDK包供使用。本节主要探讨文本向量化处理、命名实体识别、对话策略管理、讲解知识检索四个核心功能模块的关键技术。
2.1 文本向量化处理
文本向量化处理的目的是将语音识别得到的用户话语文本,经独热编码和词嵌入处理,表示为本文系统后续模块计算所需的实数域空间连续向量。词嵌入是指把一个独热编码得到的、维数为所有词数量的高维空间向量,映射为一个维数较低的实数域空间的连续向量,目前主要有 GloVe、Word2Vec、FastText、 ELMo、OpenAI GPT、基于 Transformer 的双向编码表示(Bidirectional Encoder Representations from Transformers, BERT)等方法。 BERT 是 Google 公司 2018 年提出的一种可用于多种语言处理的预训练模型,由多层 Transformer 编码 器组成。由于 Google 发布的 BERT-base(Chinese)预训练模型是以字为粒度对中文进行切分的,没有考 虑中文需要分词的特点,哈工大讯飞联合实验室于 2019 年 6 月发布了考虑中文分词的全词覆盖 BERT 中 文预训练模型(以下简称 Chinese-BERT-wwm)。给出的实验结果表明:将 Chinese-BERT-wwm 用于机器阅读理解、自然语言推理、情感分类、句对匹配和文档分类等任务,性能均比 BERT-base(Chinese) 提高了 1~2 个百分点。中文语义表示的最小单位是词,不是字。两种模型相比,笔者认为后者更适用于本 文系统,因此选用 Chinese-BERT-wwm 预训练模型来进行文本向量化处理。
2.2 命名实体识别
在本文系统中,命名实体识别(Named Entity Recognition, NER)模块用于将用户话语中具有特定意义 的实体(比如人名、地名、机构名、景点名、景物名、景观名、时间、数量、货币、比例数值等)辨识出来,填充到预定义好的语义槽中。该模块的输入是文本向量化模块输出的用户话语词向量,输出是辨识出的槽值对。在图 3 所示结构中,本文首先将用户话语词向量输入双向长短时记忆神经网络(Bi-directional Long Short-Term Memory, BiLSTM)模型做编码处理,然后将处理结果输入条件随机场(Conditional Random Field,CRF)模型计算,接着用 BIO 标签做序列标记,最后根据标记从序列中解析出对应不同语义槽的每个命名实体,将它们组合成槽值对输出。
三、可行性验证
为了检验前述系统架构和方法是否可行,本文作者通过实际开发,验证了所研究系统是可行的。本节 将从实验环境搭建、知识库构建、软件功能实现、实验效果分析四个方面做简要阐述。
3.1 实验环境搭建
为了模拟系统的运行环境,本文使用 3 台 PC 电脑(CPU 2.4GHz/内存 32G)和 2 部安卓智能手机构建 了实验环境。3 台电脑均安装 CentOS6.5 服务器操作系统。其中,1 台电脑用作服务端的统一接入服务器, 1 台电脑用于旅游本体知识管理,1 台电脑用于自然语言处理。2 部安卓智能手机安装本系统 APP 软件, 用来模拟游客使用。
3.2 讲解知识库构建
基于 3.4 节设计的旅游本体模型,本文以重庆瓷器口古镇为例,通过人工整理网上收集的有关磁器口 景区的介绍资料,在本体开发工具 Protégé中构建了磁器口的本体知识库,并选用 RDF/XML 语法格式,以 OWL 文件方式保存在知识管理服务器上。
3.3 软件功能实现
(1)统一接入服务程序统一接入服务程序主要完成游客账号验证、所在景区定位等功能。本文使用 Java 编程语言和Spring Boot 框架按 Web 服务方式实现,对外提供 Web API 接口供移动端 APP 启动时访问。 (2)自然语言处理程序 自然语言处理程序主要完成语音识别、文本向量化处理、命名实体识别、对话策略管理、对话状态跟 踪、应答语音生成、讲解内容生成等功能,是整个系统最核心的部分。本文首先基于 TensorFlow1.15.2 用 Python 语言编程实现文本向量化处理、命名实体识别、对话状态跟踪、对话策略管理功能,然后用 Java 编程语言和 Spring Boot 框架将这些功能模块封装成 Web 服务,对外提供 Web API 接口供移动端 APP 访问。 (3)讲解知识检索程序 讲解知识检索程序主要完成旅游本体知识检索等功能。本文使用 Java 编程语言和 Spring Boot 框架及 Jena 框架按 Web 服务方式实现,提供 Web API 接口供自然语言处理程序内部调用(即执行 API_Call 类型 的系统动作)。当 Web API 接口收到自然语言处理程序发来的知识检索请求后,系统会首先将检索请求解 析为SPARQL 语句,然后调用Jena 框架提供的 QueryFactory类create()方法和QueryExecution 类execSelect() 方法查询知识。 (4)移动端 APP 移动端 APP 是游客与本文系统交互的介质,主要完成游客定位数据获取、游客问询语音输入、系统应 答等功能。本文使用 Android Studio 集成开发工具和 Java 编程语言实现了安卓版 APP,其运行效果如图 7 所示。当游客在智能手机上启动该 APP 时,系统会首先获取游客当前定位数据,然后传回服务端接入服务 器识别出所在景区后,自动播放景区预设的欢迎语音/图片/视频,游客可以按下页面底端的圆形话筒按键 开启语音询问功能,询问语音传回服务端后将由自然语言处理程序先请求百度语音识别接口将其转换为文 本,然后再继续后续处理。为了便于查看效果,图 7 所示 APP 界面在播放对话语音的同时显示了对话文本, 但游客实际使用时可关闭文本显示功能,直接收听或查看 APP 播放的图片和视频。
四、结束语
用人工智能、云计算、物联网、大数据、移动互联网等新一代信息技术提升旅游服务、旅游管理、旅 游营销、旅游体验是我国开展智慧旅游建设的目的。自然语言处理是人工智能研究领域的一个热点,相关 技术可广泛用于人机对话、知识获取、舆情监测等应用。本文主要从技术应用的角度详细探讨了如何综合 运用自然语言处理、本体知识管理、移动互联网、云计算等技术来研发旅游景区智能讲解系统。本文贡献 主要有两点:一是设计了基于云计算和移动互联网技术的旅游景区智能讲解系统架构;二是给出了实现旅 游景区智能讲解系统自然语言处理功能的具体方法。通过实际开发,本文验证了系统方案的可行性。但受 限于自然语言处理目前在深层次推理、本体知识自动获取等方面的不足,本文系统在一些需要推理才能准 确识别游客意图的复杂对话场景,仍会出现错误应答和无法回答等问题。对此,笔者将继续对自然语言处 理的命名实体识别方法、意图识别方法,以及本体知识的自动获取方法等做进一步研究。