文本大数据分析技术在铁路行车安全领域的应用研究

2019-08-20 11:55杨连报李平刘艺飞
中国铁路 2019年8期
关键词:全文检索分词文档

杨连报,李平,刘艺飞

(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

1 概述

安全是铁路运输永恒的主题,为确保铁路运输安全,铁路行业建立了覆盖全国铁路固定基础设施和移动装备的传感器网,研发应用了行车安全综合监控、安全检查监督、工务安全管理、电务安全检测、牵引供电检测、动车组检修运用等多个系统[1],积累了面向铁路行车安全主题的海量业务信息,这些信息数据绝大多数为语音、文本、图形图像等非结构化数据。由于其他形式的信息都可通过文本描述来实现,因此当前文本是海量信息的主要载体。

铁路事故调查报告是铁路行车安全领域体量最大、周期最长、蕴含价值最丰富的文本文件。根据《铁路交通事故调查处理规则》的规定[2],铁路事故调查报告的主要内容包括:事故发生的时间、地点、区间(线名、公里、米)、线路条件、事故相关单位和人员;发生事故的列车种类、车次、机车型号、部位、牵引辆数、吨数、计长及运行速度;旅客人数,伤亡人数、性别、年龄以及救助情况,是否涉及境外人员伤亡;货物品名、装载情况,易燃、易爆等危险货物情况;机车车辆脱轨辆数、线路设备损坏程度等情况;对铁路行车的影响情况;事故原因的初步判断,事故发生后采取的措施及事故控制情况;应当立即报告的其他情况等。

当前铁路事故调查报告大多以Word、PDF等形式存储,且以纸质形式存档,受限于传统技术壁垒,这些体量大、价值丰富的事故故障文本无法实现有效存储和分析。传统通过人工手段对海量原始文档进行提取、处理和分类,不仅费时费力,而且达不到理想的效果,已经无法适应当前对海量数据进行快速深度分析的需要。因此,在铁路大数据时代,应用大数据技术实现铁路非结构化文本数据分布式存储、全文检索和分析,对科学预测铁路事故故障发生规律具有重要意义。

2 文本大数据分析总体框架

文本大数据分析技术是指对无结构的文本字符串中包含的词、语法、语义等信息进行表示、理解和抽取,挖掘和分析出其中存在的事实,把从文本中抽取的特征词量化来表示文本信息。铁路行车安全领域文本大数据分析总体框架见图1。

2.1 数据集成

数据集成是将不同来源、不同格式的数据在物理或逻辑上进行集成的过程,是对文本数据进行分析的第1步。可利用BRAT、Labellmg、Vatic等工具对文本、图像、视频等非结构化数据按指定规则进行筛选、分类、结构化标注,将非结构化的数据结构化,以便生成计算机可识别数据供计算机处理,然后使用Streamsets采集工具并通过FTP、SFTP等方式进行交换处理。

图1 铁路行车安全领域文本大数据分析总体框架

2.2 数据存储

数据存储方案采用HDFS分布式文件系统,以流式数据访问模式存储大文件。将要存储的大文件分割后存放在既定的存储块中,并通过预先设定的优化处理模式对存储的数据进行预处理,从而解决大文件储存与计算的需求。

2.3 文本数据处理

文本数据处理包括本体库构建、命名实体识别、文本向量表示和中文分词等技术,是文本分析挖掘的重要步骤。本体库构建是指对所研究的领域建立统一的对象模型框架,之后所有的分析都基于这个框架进行;命名实体识别是指对文本中具有特定意义的实体进行识别,包括人名、地名、机构名等;文本向量表示是指通过某些方法把文本数据向量化,转化为向量形式的标识,从而便于之后各类分析方法的计算;中文分词是指根据相应领域的字典并利用分词工具将连续的文本内容切分为单独的中文词汇的过程。

2.4 文本数据计算

针对文本大数据分析过程中数据量大、运算复杂的特点,文本数据计算包括分布式批量计算和深度学习计算。

分布式批量计算是指将1个复杂的计算任务分配给多个计算节点进行运算,常用的分布式批量计算模型有MapReduce和Spark。MapReduce模型可用于大规模数据集的并行运算,1个MapReduce作业通常会把输入的数据集切分为若干独立的数据块,由Map任务(task)以完全并行的方式处理它们。对Map的输出进行排序,然后把结果输入给Rreduce任务,通常作业的输入和输出都会被存储在文件系统中。Spark是用于分布式内存处理的计算框架,拥有MapReduce所具有的优点,不同于MapReduce的是Job中间输出的结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习。

深度学习是指采用分层的深度神经网络进行学习的一种机器学习算法,常用的深度学习计算框架主要有TensorFlow和Caffe。由于有大量机器学习算法支持,深度学习计算可用于计算机视觉、语音识别、自然语言处理与生物信息学等领域的深度神经网络计算,极大降低了深度学习研究和开发的难度,可以获得极好的学习效果。

2.5 分布式全文检索

分布式全文检索实现了对于非结构化数据的内容检索,用以定位关注的事故及主题,包括索引建立及铁路专业语料库。索引建立是指将文本数据中的部分信息提取出来并结构化的过程,全文检索就是对索引进行搜索的过程;铁路专业语料库是指经过加工处理的真实的大规模铁路电子文本库,有助于实现铁路文本数据的全文检索。

2.6 文本大数据分析

文本大数据分析是在文本数据处理的基础上,采用适合的文本分析算法及模型对文本数据进行分析的过程,常见的分析方法包括分类分析、聚类分析、特征提取及关联分析等。分类分析是指从数据集中提取1个模型,从而将数据集中的对象归到某个已知的分类中;聚类分析是指通过特定的分类方法,将整个数据集按照对象的相似性分为不同的类别;特征提取是指按照某种特定的方法从非结构化的文本数据中提取出具有代表性的文本特征值;关联分析是指在大量的数据中发现某些数据项之间存在关联关系的过程。

2.7 安全大数据分析应用

针对文本的安全大数据分析可以应用在重点区域分析、重点故障分析、事故故障关联分析、事故故障预警及事故故障原因分析等多个业务场景。重点区域分析可以分析出某一时间周期内,事故故障的多发地点、发生次数、发生明细,为重点防控提供方向性指导;重点故障分析可以分析出某一时间周期内的多发故障;事故故障关联分析可找出与事故故障关联的设备、人员、管理等安全隐患,有助于重点盯防;事故故障预警可以通过机器学习算法,在历史数据基础上预测未来的事故故障;事故故障原因分析可以通过深度学习算法,准确提取及推荐发生事故故障的原因,并提出相应的整改措施。

2.8 数据安全

在进行文本大数据分析的过程中,数据安全性也是重点关注内容。数据安全主要包括文本数据的采集安全、存储安全和挖掘安全。可采用关键字词替代、混洗及加密等措施来保证文本数据的采集安全;文本数据的存储安全则可通过定期备份策略保证数据因意外损坏后可及时恢复;针对文本数据的挖掘安全,采用了身份认证和访问控制机制,保证只有授权用户才可访问相应文本数据。

2.9 数据资产治理

文本数据的资产治理包括标准管理、质量管理及资产管理等内容。标准管理可以对文本数据依据的标准进行浏览及增删改、获取等操作,是使文本数据规范化的要求;质量管理可以对文本数据的规则进行配置并对文件的质量进行监控及稽核,用于提高文本数据的质量,从而提高分析结果的准确性;资产管理是针对文本数据的各项信息进行管理,使文本数据可作为企业资产的一部分进行管理。

3 文本大数据分析关键技术

文本大数据分析关键技术主要包括全文检索技术、中文分词技术、文本检索模型、文本特征提取与挖掘技术等。

3.1 基于ElasticSearch的事故故障文本全文检索技术

为实现铁路非结构化文本大数据的分析挖掘,首先要实现非结构化文本的分布式存储和全文检索。分布式存储是应用分布式文件系统,实现非结构化文本动态可扩展的存储。EelasticSearch(ES)通过集群提供分布式全文检索,1个ES集群可以由多个节点组成,可动态增加。ES各节点之间通过唯一的集群名字进行识别,默认的集群名字为“EelasticSearch”,集群名字可通过elasticsearch.yml文件进行配置。ES采用去中心化节点架构,即各节点平等,可任意选1个节点为主节点。ES各节点之间通过TCP协议进行集群交互,并通过Restful API接口为其他应用提供服务。

ES需建立索引(Indices),实现文档(Document)集合的统一存储和查询。1个索引内可以定义1种或多种类型(Type),1种类型下可以设置多个字段(Field)以便于检索。同时ES为了提高性能和吞吐量,对索引进行分片(Shard),默认1个索引分为5个分片(R0—R4),分布在不同的节点上,同时通过复制(Replica)分片实现高可用性,以防止节点/分片出现故障(见图2)。

图2 ES集群逻辑架构

基于ES的中文文本全文检索主要包括文本提取、中文分词、索引建立与检索等过程。其中中文分词技术是实现中文文本全文检索的基础;索引建立是实现中文分词后数据转化为索引文件的过程,主要利用的技术为倒排索引;检索过程是对要检索内容进行中文分词后,根据索引文件找到所检索文档的过程。

3.2 融合铁路领域词典的中文分词技术

铁路事故故障文本分布式全文检索的首要和基础工作是实现事故故障文本的分词。中文分词不同于英文分词,中文词语之间没有空格标记进行分割[3-4]。不同的上下文环境、不同的词语组合和不完备的语料库造成了中文分词的歧义。例如,“轨道电路红光带”“轨道区段红光带”“红光带”等描述的是同一种故障,但在文本文档中不同人员的描述不一致,造成同一种故障由多种词语进行描述,如果严格按照中文分词就出现了3种不同的故障,给文本检索和分析造成困难。同时铁路行业缺乏语料库,对于事故故障命名实体没有统一的规范,造成事故故障文本中事故故障名称无法识别。

中文分词经过近30年的发展,主流的分词技术主要有基于词典匹配的中文分词、基于字统计模型的中文分词、基于字标注的中文分词以及基于深度学习的中文分词等方法[5-7]。在此采用Jieba分词工具,利用通用词典和自定义领域词典[8],实现铁路事故故障文本的分词,整体结构见图3。

3.3 基于TF-IDF的事故故障文本检索模型

事故故障文本检索的基本过程是当用户输入查询条件进行搜索时,首先对查询条件进行中文分词;然后计算查询条件里关键词与单词词典中词语的相关度,找出相关度较高的单词后,再根据单词词典找到倒排文件中对应的倒排列表;最后通过查询倒排列表得到结果文档,排序后展示给用户。

图3 融合铁路领域词典的中文分词

事故故障文本检索可描述为1个三元组模型,描述的是索引文档、查询及其之间的关系,表示为:F<D,Q,R>,式中:D为文档集合;Q为查询条件;R为文档D和查询Q之间的相关程度[9]。

TF-IDF是一种基于统计的常用加权方法,广泛应用于检索和文本分析中[10]。TF-IDF假设:如果1个词在1个文档中频繁出现,而在其他文档中出现较少或不出现,则将该词作为该文档的关键词,将该文档与其他文档区分开来。

TF-IDF中TF表示词频,即该词在1个文档中出现的次数,理论上出现的次数越多则与文档的主题越相关,但需要排除一些停用词,如“的”“地”“了”“但”等。

词频TF计算公式为:

式中:ni,j为词wi在文档dj中出现的次数;为文档dj中所有词出现的次数之和。式(1)分母加1是为了避免分母为0的情况。

TF-IDF中IDF表示逆向文档频率,计算公式为:

式中:ki为词wi在文档集合D中相关的文档个数;N为D的大小。同理,式(2)分母加1是为了避免分母为0的情况。

将词频与逆向文档频率结合起来,即用IDF来矫正TF,得到文档dj中词wi的权重为:

则某个文档dj可用单词权重构成向量:

同理,对于某次查询qj可得:

通过计算文档向量与查询向量间的余弦距离或Jaccard相似度,确定查询与文档之间的相关程度。选择计算余弦距离,公式为:

根据计算的余弦距离就可以对文档进行排序,从而为用户推选最相关的文档。

3.4 铁路事故故障文本特征提取与挖掘技术

铁路事故故障文本全文检索实现了对文本信息的有效存储和检索。结合文本挖掘的分类、预测和相关性分析等,可以挖掘铁路事故故障发生规律,指导现场人员对重点事故故障进行防范,保障铁路运行安全。

铁路事故故障文本一般有固定的格式,主要包括标题、概述、调查过程、原因分析、定性定责、措施及要求等六大部分。因此,采用基于文本结构及正则表达式的文本特征提取,即通过正则表达式找到相应的段落,然后对重点段落的内容进行中文分词和特征提取,提取时需要和事故故障词库、事故地点词库等专业词库进行匹配,若专业词库中存在则直接提取,若专业词库中不存在,需要根据正则表达式依据语法结构进行提取(见图4)。

图4 事故故障文本特征提取流程

根据提取的事故故障文本特征,可以应用文本挖掘的统计分析、相关性分析等技术,分析事故故障规律,例如多发故障、故障趋势预测、故障关联关系等。

4 试点应用

铁路事故故障追踪报告为典型的非结构化文本数据,是铁路安监部门对发生的事故故障进行追责调查所形成的详细文档,记载了事故故障发生地点、发生时间、发生原因、责任单位等重要信息。以某铁路局集团公司2016年7—12月的事故故障追踪报告、共计300多个文档为样本,进行事故故障报告全文检索、多发事故故障词云展示和事故故障关联性分析。

4.1 事故故障报告全文检索

对收集的文档进行检索时间对比实验,实验环境见表1。由实验可知,基于ES的事故故障报告全文检索可以大大缩短检索时间(见图5),检索时间仅为10 ms左右,几乎为实时检索。同时,由于所用数据量较小,ES全文检索所用时间基本不变,但随着文本数量的增加,传统检索所用时间呈线性增长。说明文本数据量越大,越能体现ES全文检索的优势。

表1 全文检索实验环境

图5 ES全文检索与传统检索时间对比

此外,传统检索只能全文匹配,而基于TF-IDF的检索可以检索与关键词相近的文档,例如当检索“轨道电路红光带故障”时,会检索“红光带”“轨道区段红光带”等,同时根据检索的排序推荐最相关的文档。

4.2 多发事故故障词云展示

通过对事故故障报告进行中文分词和特征提取,找出多发事故故障,并以大数据可视化技术中的词云进行展示(见图6)。

图6 多发事故故障词云展示

由图6可知,2016年7—12月,该铁路局集团公司多发事故故障为机车故障和轨道电路红光带故障,需要进行原因分析和重点防范。

4.3 事故故障关联分析

通过分析车、机、工、电、辆等专业多发的事故故障,可以发现部分专业的事故故障不仅是由于本专业内部导致,还存在与其他专业的关联关系(见图7)。

由图7可知,机务专业的机车故障和车辆专业的紧急制动停车等主要与本专业有关,但轨道电路红光带不仅与电务专业有关,还与工务和供电专业有关。这就要求电务、工务、供电等专业在进行事故故障排查时,要联合诊断,以便及时发现问题,确保铁路安全。

图7 各专业事故故障关联关系分析

5 结束语

基于铁路大数据技术,研究提出铁路行车安全领域文本大数据分析总体框架,介绍全文检索技术、中文分词技术、文本检索模型、文本特征提取与挖掘技术等文本大数据分析关键技术。通过在某铁路局集团公司进行试点应用,实现了分布式存储、近实时全文检索、多发事故故障词云展示和事故故障关联关系分析,取得良好效果,研究成果可为铁路相关业务领域的文本大数据分析提供参考。

猜你喜欢
全文检索分词文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
Word文档 高效分合有高招
Oracle数据库全文检索性能研究
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
全文检索引擎Lucene系统模型与应用研究
全文检索引擎技术在电子病历中的应用