刘 新,吕 峰,孙玉明,李福顺
(1.中国铁道科学研究院集团有限公司 运输及经济研究所,北京 100081;2.中国国家铁路集团有限公司 安全监督管理局,北京 100844;3.中国国家铁路集团有限公司 科技与信息化部,北京 100844;4.中国铁路北京局集团有限公司 丰台机务段,北京 100070)
安全是铁路的生命线,但是铁路作为一个复杂的巨型系统,在某种程度上,铁路交通事故是铁路运输生产的必然附带品。因此,当事故发生时,及时、准确地对事故进行分析和判断,明确事故原因和责任,以便为事故预防提供决策支持,是一项重要的安全管理工作。其中,对于违章导致的事故,明确其违反的具体规章和条款是铁路交通事故分析中的重要一环,目前,这项工作主要由人工完成。由于技术规章繁多,并且涉及众多不同的专业,对事故调查人员及时、准确地进行分析判断提出了不小的挑战。
近年来,大数据、自然语言处理等技术在铁路安全领域的研究和应用越来越得到重视,王同军[1]认为安全大数据是铁路大数据应用的一个重要方面;邹丹等人[2]、宋修德等人[3]探讨了大数据平台的设计和应用;宁勇[4]研究了基于大数据的安全预警方法;杨连报等人[5]研究了利用文本大数据分析技术对事故报告进行文本挖掘,并分析了几个典型的应用场景,但仅限于对事故报告文本所提取信息的分析。
经过多年的信息化建设,我国已建成了相对比较完善的铁路安全监督管理信息系统和铁路技术规章管理系统,实现了全路交通事故和技术规章的电子化管理。因此,将铁路安全信息与铁路技术规章数据进行融合应用,借助于大数据、自然语言处理等先进技术,对事故概况等安全信息进行智能化的自动分析判断,在人工辅助下提取相关技术规章条款,实现铁路安全监督管理信息系统与铁路技术规章管理系统的有机融合,有助于提高事故分析的准确性,推动事故调查手段的智能化。
根据铁路交通事故调查流程,有事故发生时,列车调度员要在第一时间填写《铁路交通事故(设备故障)概况表》(安监报1)并提报事故发生地安全监察值班人员;安全监察值班人员接到安监报1或现场事故报告后,要立即填写《铁路交通事故基本情况表》(安监报3),并向中国国家铁路集团有限公司(简称:国铁集团)安监局值班人员报告[6]。根据事故等级,由相应部门或授权的相应部门组织有关人员进行事故调查,厘清事故原因,认定事故责任,总结事故教训;国铁集团安监局和铁路局集团公司(简称:铁路局)安监室需要定期对铁路交通事故情况进行统计分析。事故报告信息流程如图1所示。
在事故调查分析初期,事故概况是分析该事故违反的具体技术规章条款的主要依据;但由于事故概况大多只是对事故现象的简单概括性描述,单从事故概况入手去分析和确定违反的规章条款,可能性微乎其微。通过对历史事故报告的数据挖掘,可以获取事故概况与违反的技术规章及条款之间的某种关联,借助于建立在大数据基础上的这种关联性,根据事故概况的文本描述,大概率能够检索到相关的规章条款,辅之以人工分析和确认,实现对铁路交通事故进行智能化分析的目标[7]。
在业务需求分析的基础上,设计开发铁路安全信息与技术规章协同分析系统,系统功能主要包括事故分析、智能检索、统计分析及系统管理等。
1.2.1 事故分析
根据事故概况、基于大数据和自然语言处理技术构建的铁路专业关键词库可自动提取事故特征,智能推荐事故可能违反的技术规章条款。同时,用户可以根据推荐结果进行关键词调整,或者缩小规章推荐范围,以提高推荐准确率。
1.2.2 智能检索
用户可输入任意关键词或词组,对技术规章库进行全文检索,并按与关键词的关联度对检索结果进行排序。系统支持在第一次检索结果中进行二次检索,并可通过设置特定条件进行高级检索,提高规章检索的准确率。为提高检索召回率,系统可利用中文分词算法对用户输入的词组进行分词处理后再进行全文检索。
1.2.3 统计分析
包括事故统计和关联分析。事故统计以表格和图形相结合的形式,从多个维度对事故发生情况进行分类展示;关联分析功能则对违反某一规章或条款的事故数量进行统计,建立技术规章与事故之间的关联关系,辅助技术规章管理人员对技术规章的应用和适用情况进行分析,以便为技术规章的编修、培训等工作提供决策支持。
1.2.4 系统管理
主要包括角色管理、用户管理和操作日志等功能。系统将所有的功能模块分解为相对独立的子功能模块,可根据用户类别的不同设定不同的角色,并可根据需要为每个角色赋予不同的权限(子功能模块组合);而用户则与角色绑定,系统管理员可以随时根据需要对用户的角色进行调整[8]。
(1)采用自然语言处理领域中前沿的机器学习模型对海量事故报告进行智能分析,搭建机器学习模型,抽取能够表征事故特征的关键词并训练机器学习模型,以满足系统自动分析的要求。
(2)搭建事故智能检索平台,使用自然语言领域领先的智能语义分析和全文检索技术,从海量技术规章库中根据关键词,智能、快速、准确、高效地检索出目标规章及条款。
铁路安全信息与技术规章协同分析系统的总体架构由数据接入、数据存储、数据分析、数据资源管理和接入服务5层结构组成,如图2所示。
(1)数据接入:系统接入的数据主要包括2部分,铁路安全监督管理信息系统的事故信息和铁路技术规章管理系统的技术规章数据。
(2)数据存储:根据数据量的大小、应用方向的不同,将收集来的数据以不同的方式进行存储。例如,大量的离线计算数据存储在HDFS里,缓存数据存储在Redis里,关系型数据存储在Oracle数据库中[9]。
(3)数据分析:对各种数据进行预处理、清洗、加工、学习、计算、建模,输出系统需要的数据类型,以及各种模型和接口。
(4)数据资源管理:对各种类型的数据、计算模型和相应的接口进行管理,并生成相应的平台供最外层调用,包括各种资源的管理、应用开发、开放平台等。
(5)接入服务:提供相应的接口和平台,供展示和第三方调用。
(1)标准的铁路交通事故报告通常包含事故概况、调查情况、原因分析、定性定责、整改措施等多个部分,根据对历史事故报告文本的语义分析和数据挖掘,可以提取事故特征及事故违反的具体规章条款的特征,从而在事故特征与规章条款特征之间建立关联关系。对全部历史事故报告分析完成后,即可初步建立事故特征与规章条款特征关联库(简称:事故-规章关联库),事故特征与规章条款特征
通常是多对多的关系。
(2)对于需要分析的事故,系统根据安监报3中的事故概况自动提取事故特征,并根据事故特征检索事故-规章关联库。如果事故-规章关联库中存在与该事故特征相关联的规章特征,则取回规章特征,在规章库中进行检索,然后由用户在检索返回的规章条款中确定作为事故原因的1个或多个条款;如果事故-规章关联库中没有与该事故特征相关联的规章特征,则由用户根据经验和专业知识将事故特征转换为规章特征并进行规章检索。用户确认后的规章特征将自动添加到事故-规章库中,通过这种方式不断丰富事故-规章库,提高根据事故概况检索规章条款的准确性,事故智能分析流程如图3所示。
技术规章全文检索采用开源的Elasticsearch搜索引擎。Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,能够实现接近实时地存储、搜索和分析海量数据,对结构化和非结构化数据都有着很好的支持,同时,它还有良好的可扩展性,既能够在笔记本电脑上运行,也可以在承载了 PB 级数据的成百上千台服务器上运行,能够根据业务需要进行灵活的部署[10]。技术规章的全文检索可以分为分词处理和全文检索2个过程。
(1)分词处理:系统支持根据任意关键词或短语进行规章检索,由于对用户输入内容没有严格的限制,因此输入的关键词或短语具有一定的随意性,未必能够在技术规章中检索到匹配的条款。为提高检索的召回率,在检索开始之前,先对用户输入的关键词或短语进行分词处理[11-12],分词的依据是开源分词工具附带的通用中文词库和根据铁路行业特点自定义的铁路专业词库。经过多年积累,通用中文词库已经渐趋完善,提升空间有限;铁路专业词库则对分词结果是否理想起着更大的作用,而它的完善有赖于对大量专业语料的占有和长期的机器学习。
(2)全文检索:Elasticsearch是面向文档的(Document Oriented),Elasticsearch中的一条数据就是一个文档,用JSON作为文档序列化的格式,形式简洁、清晰易读,系统默认为其中的每个字段都建立一个倒排索引,因而能够实现对全文的快速检索[13]。对于检索结果,主要依据词频-逆向文档频率(TF-IDF)值、关键词权重等因素综合计算文档与关键词的相关性,并按其从高至低显示。
本文从业务需求入手,按照优化的业务流程进行系统功能设计,系统架构采用分层设计,开发语言采用Java,全文检索功能基于Elasticsearch实现。根据模拟数据测试,铁路安全信息与技术规章协同分析系统能够基于事故概况,快速、准确地推荐事故违反的技术规章条款,辅助安监人员进行事故分析,具有较好的应用前景。但要进一步提高事故分析和规章检索的精确度,则需要在搜集和积累大量相关语料及用户使用行为的基础上,对模型进行深度优化。