CN109614457B - 一种基于深度学习的地理信息的识别方法及装置 - Google Patents
一种基于深度学习的地理信息的识别方法及装置 Download PDFInfo
- Publication number
- CN109614457B CN109614457B CN201811448679.5A CN201811448679A CN109614457B CN 109614457 B CN109614457 B CN 109614457B CN 201811448679 A CN201811448679 A CN 201811448679A CN 109614457 B CN109614457 B CN 109614457B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- data
- layer
- learning model
- geographic information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于深度学习的地理信息的识别方法及装置,基于BiLSTM+CRF深度神经网络模型,增加了适合细粒度标注策略的聚合层,形成了独特的地理信息分析模型(BiLSTM+CRF+AGG),并经过精心改进和优化,使得系统具有很强的容错能力,在不规范、不完整并且存在错别字的文本信息上实现了较精准的地理位置信息识别;并开发了几个完整而相互独立的辅助系统,而且还实现了性能稳定,功能完备的组件,将python开发的深度学习模型无缝地应用到windows开发平台,并友好地支持C++、C#、java等主流语言的二次开发,实现了从研究到应用的实施方案。实现了提高识别的精度的技术效果。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种基于深度学习的地理信息的识别方法及装置。
背景技术
随着国民经济的日益提高,尤其是电子商务行业的蓬勃发展,无论是出于社会安全考虑,还是出于商家优化管理、降低成本和提升效益考虑,对用户的地理位置信息进行精准而快捷的分析越来越受到重视。
然而,由于用户数据的急速增长,而且地理信息往往发生着日新月异的变化,尤其是收集数据的渠道受到历史原因和工作场景等因素的限制而呈现出多样性和随意性的态势,造成了用户信息存在诸多问题,主要表现在“地理信息缺乏规范性”和“错别字较为普遍”两个方面,这给精准高效的分析带来了一定的挑战。
目前,用户地理信息的分析方法,主要包括基于规则的方法和基于统计的方法两种。例如学者何炎祥提出了一种基于复合特征的中文地名识别方法,结合地名要素特征、词性特征和句法特征,使用条件随机场来进行中文地名的训练和识别;学者杜萍提出了一种基于本体的中文地名识别方法,引入地名本体识别文本中的县级以上行政区划地。
本发明申请人在实施本发明的过程中,发现现有方法中,主要存在下述技术问题:基于规则的方法表达直观、自然,便于人工理解和扩展,但规则编写依赖具体的语言知识和领域知识,规则较为复杂,很难覆盖全部的模式,可移植性也比较差。基于统计的方法不需要过多的语言知识和领域知识,可移植性强,但需要人工标注语料库,并选择合适的统计学习模型及参数,因而目前的方法无法对地理信息进行很好地预测。
由上可知,现有技术的方法对地理信息的识别准确性不高技术问题。
发明内容
有鉴于此,本发明提供了一种基于深度学习的地理信息的识别方法及装置,用以解决或者至少部分解决现有技术的方法对地理信息的识别准确性不高技术问题。
本发明第一方面提供了一种基于深度学习的地理信息的识别方法,包括:
步骤S1:获取包含地理信息的原始数据;
步骤S2:对原始数据进行预处理;
步骤S3:对预处理后数据进行标注,形成语料库;
步骤S4:将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;
步骤S5:将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果。
在一种实现方式中,步骤S3具体包括:
采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
在一种实现方式中,步骤S5中,采用组件技术将训练后的深度学习模型进行封装,应用于开发环境中。
在一种实现方式中,组件技术包括构建一级组件,一级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成。
在一种实现方式中,组件技术还包括构建二级组件,二级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成、是否激活、解析、返回预测结果和设定超时。
在一种实现方式中,在步骤S5之后,所述方法还包括:
对识别结果中的地理信息进行定位分区。
基于同样的发明构思,本发明第二方面提供了一种基于深度学习的地理信息的识别装置,包括:
获取模块,用于获取包含地理信息的原始数据;
预处理模块,用于对原始数据进行预处理;
标注模块,用于对预处理后数据进行标注,形成语料库;
训练模块,用于将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;
识别模块,用于将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果。
在一种实现方式中,标注模块具体用于:
采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
在一种实现方式中,还包括定位分区模块,用于:
对识别结果中的地理信息进行定位分区。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面的所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明提供的方法,通过获取包含地理信息的原始数据,并对原始数据进行预处理;然后对预处理后数据进行标注,形成语料库;接着将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;再将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果。由于基于BiLSTM+CRF深度神经网络模型,增加了适合细粒度标注策略的聚合层AGG,形成了本发明中用于地理信息识别与分析的深度学习模型(BiLSTM+CRF+AGG),通过该深度学习模型可以对非结构化不规范的数据进行识别与分析,实现了较精准的地理信息识别,解决了现有技术的方法对地理信息的识别准确性不高技术问题。
进一步地,采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库,可以提高标注的效率与准确性。
进一步地,在通过深度学习模型对待处理数据进行识别获得识别结果后,对识别结果中的地理信息进行定位分区,显著提高了定位分区的精度。
进一步地,通过一级组件可以实现深度学习模型在window平台的启动、运行和关闭,还可以实现数据的交互和管理,采用二级组件,既保证了组件的稳定性和兼容性,又增加了二次开发的灵活性和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于深度学习的地理信息的识别方法的流程图;
图2为深度学习模型的结构图;
图3为采用组件技术实现的系统架构图;
图4为一级组件的工作流程图;
图5为二级组件的工作原理图;
图6为本发明实施例中启动模型的界面示意图;
图7为本发明实施例中导入用户信息的示意图;
图8为本发明实施例中获取识别结果的示意图;
图9为本发明实施例中基于深度学习的地理信息的识别装置的结构框图;
图10为本发明实施例中计算机可读存储介质的结构图。
具体实施方式
本发明实施例提供了一种基于深度学习的地理信息的识别方法,结合前沿的BiLSTM+CRF深度学习模型,根据对数据特征的研究,提出了增加聚合层的改进模型(BiLSTM+CRF+AGG),对地理实体的标注粒度做了最优匹配,对识别结果中的地理信息进行定位分区,显著提高了定位分区的精度。此外,利用组件技术,设计并实现二级组件软件架构,实现了python开发的深度学习模型无缝地应用到windows开发平台,并友好地支持C++、C#和java等主流语言的二次开发,实现了深度学习的工业级应用。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种基于深度学习的地理信息的识别方法,请参见图1,该方法包括:
首先执行步骤S1:获取包含地理信息的原始数据。
具体来说,原始数据可以通过现有的工具进行获取或者由已有的数据库中获取。举例来说,通过爬虫从网络中获取。
然后执行步骤S2:对原始数据进行预处理。
具体来说,由于获取的原始数据中,存在重复或者错误,为了保证标注的质量,需要对这些数据进行预处理,例如数据的筛选、清洗等。
接下来执行步骤S3:对预处理后数据进行标注,形成语料库。
具体来说,标注的方式可以采用人工标注的方式、自动标注的方式或者两者结合的方式。其中,自动标注的方式可以采用主动学习策略,即根据预设选择规则,从大量信息数据中挑选出最能够使训练模型收敛,即信息量最大最有价值的未标记数据集合作为待查询样例集。举例来说,可以采用国际通用的一些标准:比如BIO、BIOS,BIOES等,进行自动标注。
为了进一步提高语料库的质量,可以通过采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
然后执行步骤S4:将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层。
具体来说,本发明中的深度学习模型是在现有的对于BiLSTM+CRF的模型基础上的一种改进的深度学习模型,其中,BiLSTM(Bi Long ShortTerm Memory)为双向长短期记忆网络,同时考虑了过去的特征(通过前向过程提取)和未来的特征(通过后向过程提取)。即双向LSTM相当于两个LSTM,一个正向输入序列,一个反向输入序列,再将两者的输出结合起来作为最终的结果。CRF(Conditional Random Field algorithm)为一种条件随机场算法,作用是获取全局最优的输出序列。
本发明中的深度学习模型在现有模型的基础上增加了聚合层AGG,是为了解决NER任务中实体的粒度均衡问题,由于识别结果中包括地理位置信息和小区信息,针对小区信息,不仅有独立的名称,还有组合的名称,比如“绿地仁和新区”就是由“绿地”、“仁和”和“新区”组成的。为了提高识别精度,提供网络模型的泛化能力,解决训练集规模与训练成本的矛盾,尽量将粒度做小一些,但是无论在自动标注阶段,还是在预测阶段(即识别阶段),都需要对精细粒度的实体做聚合处理,为此引入了AGG层。
再执行步骤S5:将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果。
具体来说,识别结果包括地理信息,例如位置信息和小区信息,更为具体地,包括道路名称、小区名称等。
在具体的实施过程中,深度学习模型为BiLSTM+CRF+AGG具体的结构如图2所示,其中,拟输出层可以看作BiLSTM+CRF模型的输出结果。聚合层主要是将该输出结果通过聚合算法对同一类型的相邻的实体进行聚合,即为最终的输出层。在BIO标注中,将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。
以“东风路中州大道”为例,其中的关键是“中”字,聚合前是B-LOC,表明其为一个道路实体的开始,但是和“东风路”一样都是道路实体(道路就是LOC类型),因此经过聚合层时,将两者聚合为一个实体,此时“中”由B-LOC变成了I-LOC,其他字的识别也类似,在此不再赘述。
在一种实施方式中,步骤S5中,采用组件技术将训练后的深度学习模型进行封装,应用于开发环境中。
具体来说,为了达到工业级的应用,本发明采用基于组件的思想,结合软件架构,对python环境下利用tensorflow对深度学习模型进行了封装,从而达到了windows平台下进行工业级应用的水准。其中,TensorFlow是一个基于数据流编程(dataflowprogramming)的符号数学系统,可以应用于各类机器学习(machine learning)算法的编程实现。
请参见图3,为采用组件技术实现的系统架构图,该系统应用环境是针对window平台的,核心思想是通过组件技术完成了Python实现的深度学习模型可以无缝地应用到window平台上。
具体来说,系统框架分为六层:
运行环境:基于window平台,而且使用了tensorflow,所以需要64位的window操作系统,为了方便操作,使用了office环境,其中的深度学习模型是采用python语言实现的,需要部署python3.6环境;
组件服务:开发了一级组件,实现python无缝融入到window平台,为了易用和精准服务,开发了二级组件,实现了数据和参数的交互和控制,是深度学习模型运行的根本保证;
二次开发平台:利用C#做二次开发,实现了系统的核心功能,并提供了日志服务,以增强系统的安全和稳定,并为后期维护做技术支撑;
应用层:面向具体的业务需求,提供了数据管理功能,实现了数据输入输出接口;
前端UI:提供操作界面,通过交互性能良好的界面,提供文件访问以及设置分区的操作平台。
整体来说,本发明采用二级组件技术,即利用C++做最底层的封装,然后利用C#做二级封装,这样既保证了组件的稳定性和兼容性,又增加了二次开发的灵活性和效率。
在一种实施方式中,组件技术包括构建一级组件,具体接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成。
具体地,凭借C++语言自身的优势,出于稳定性和兼容性考虑,本发明利用C++实现了一级组件,即开发了具有良好兼容性和稳定性的动态链接库。
其中,一级组件的具体接口说明如表1所示:
表1一级组件系统接口表
在具体的实施过程中,一级组件的工作流程如图4所示,收到启动服务请求后,开启子线程以启动深度学习模型,并等待预设时长(例如1秒),判断是否超时,如果未超时,则启动成功,否则失败。启动成功后,在共享内存中置入“null”,并等待0.5秒后,读取共享内存,判断共享内存是否等于“null”,如果是,则继续下一次等待,如果否,则退出共享内存,即将其置为“exit”,判断共享内存是否等于“exit”,如果是,则结束,如果否,则将其置为“patch”,判断共享内存是否等于“patch”,如果是,则进行如批处理流程,在共享内存中置入“null”。如果否,则判断当前信息的长度是否小于3,如果是,则回到等待0.5秒。如果否,则进入单条数据处理。
具体的,共享内存的取值包括:null:不需要做任何处理,exit:退出模型,patch:进行批处理预测,success:标识预测成功。
其中,在一级组件工作流程中,批处理流程可以通过批量处理算法来实现。批量处理算法的重点在于共享文件,一方面涉及到编码问题,另一方面涉及到交互问题,对于编码问题,本发明实施例采用“utf-8”编码;对于交互问题,本发明申请人经过不断地实验和研究,最终得出了如下的批量处理算法。
为了便与描述,引入几个变量:
Locker:独占锁,用于控制流程的逻辑;
Status:标识批量处理工作状态,取值包括1、0、-1和2,其中,1表示预测完成,0表示没有预测结果,-1表示为初始状态,2表示批处理预测刚完成;
SharedFile:共享文件,在算法开始之前,预先将待识别的数据全部写入其中;
SharedMemory:共享内存。
考虑到批量处理算法需要组件和python环境密切配合,为了更好地描述以及区分执行主题,在每一步骤前以“python”或者“组件”来进行区分,并在算法描述中以两者之名简化描述。
批量处理算法的具体流程如下:
(1)组件:判断Locker的值,如果为True,则转至⑥;
(2)组件:初始化变量,置Locker值为True,即加锁,将“patch”写入SharedMemory,Status置为-1;
(3)组件:启动检查批处理是否完成线程;
①读取SharedMemory的值,如果为“patch_success”则转至④;
②线程挂起0.5秒,判断是否超时,如果超时则转至⑤;
③Status是否为2,如果是则转至④;
④Locker置为False,Status置为1,转至⑥;
⑤Locker置为False,Status置为0;
⑥结束当前线程。
(4)python:读取SharedMemory的值,如果为“patch”,则读取SharedFile,得到批量处理的任务,并通过深度学习模型逐条任务进行预测,预测完毕后将预测结果(即识别结果)写入SharedFile,将patch_success”写入SharedMemory;
(5)组件:判断Status的值,如果为1,则读取SharedFile得到最终的批量处理结果,如果为0,则返回空结果;
(6)算法结束。
由于,上述算法在具体的实现过程中,涉及到多环境和多线程编程,有大量的循环结构,加之采用的是共享内存和共享文件,因而容易引起资源竞争和锁死等一系列操作系统和数据库中常见的问题,为了解决该问题,本实施方式引入了锁机制和逻辑量进行严格的控制,对python环境和组件(C++和C#)进行独立和联合的优化,确保算法的稳定和高效。
此外,共享文件本身可能会引发读写异常,而且数据本身也可能存在未知的问题,因此在算法的第(3)步中的②进行了超时判断,以避免程序“假死”,为此本发明提出了一种超时优化策略。
在超时判断中,记P为当前批量处理任务空间,N为任务总量|P|,i∈[1,N],当前耗时为ti,Pi为当前批量处理任务,M为当前模型,mi为处理当前数据耗时,ri为读取当前数据耗时,wi为写入当前数据耗时,由此得出如下形式化描述:
ti=mi+ri+wi (1)
mi=f(Pi,M)=g(|Pi|) (2)
ri=h(|Pi|) (3)
mi=p(|Pi|) (4)
对上述公式求解,可以得出如下结论:
t=G(P) (6)
其中,公式(2)表明处理一条数据仅与数据的长度有关,即图4中的数据长度判断。对于同样的环境,执行相同的任务耗时是稳定的,即以一定的概率以很小的幅度波动,因此可以认为耗时和任务量呈线性关系。公式(3)和(4)是同样的处理方法,(5)是处理数据的总耗时。公式(6)就是基于上述分析得到的最终的关系,正如前面所述,该问题是上界处理,由于耗时以一定的概率以很小的幅度波动,因此可以认为服从均匀分布,其数学期望就是数学平均值,因此就得到公式(7)。
Elength:数据的平均长度;
N:任务量;
Rate:放缩因子;
UnitTime:时间单位,单位为毫秒;
对公式(7)做一个变换:
于是将问题就转换为求解x的值,故而得到如下算法:
求解批量处理超时上限算法,其具体流程如下:
(1)初始化变量:Rate=1.2,UnitTime=0;
(2)根据任务量求解N和Elength;
(3)求解超时上限:
①UnitTime是否为0,如果不是,则转至⑤;
②记录当前时间t1;
③开始批量处理,等待完成后记录当前时间t2;
④根据t2和t1以及Rate,N和Elength,带入公式(8)可以得到x的值,需要说明的,此时的t并非t2-t1,而是一个上界,可以根据实际需要扩大一定百分比得到,即k(t2-t1),其中k>=Rate,将其值赋于UnitTime;
(4)算法结束。
在实际开发中,Elength并不需要每次都求解,因为数据服从一定的概率分布,可以通过概率统计方法进行简化,或者也可以将Elength记录到本地配置文件中,这样可以免去每次都求解的问题。
下面详细介绍UnitTime,通过公式(6)可以清晰看到,UnitTime具有一个稳定的值,因而不需要每次都求解,而且求解要比Elength复杂度高,因此可以将其值记录到本地中,具体可以通过序列化,也可以通过配置文件。在批量处理超时上限算法中,其具有依赖性,如果在起初UnitTime未知的情况下,可以给UnitTime一个足够的值,例如令其值为1000,即处理单位为1秒。对于目前的计算机主流配置和模型而言,已经足够,由批量处理算法和超时算法可以看出,经过算法的运行(例如一次、两次),UnitTime就得以确定。
在一种实施方式中,组件技术还包括构建二级组件,二级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成、是否激活、解析、返回预测结果和设定超时。
具体来说,可以通过C#语言进一步构建稳定可靠、高效、便于二次开发的动态链接库,即二级组件。对于其它语言比如Java,可以选择直接使用二级组件,也可以按照同样的思想和方法直接使用一级组件。二级组件实际上是在二次开发平台下更优雅更便捷地利用一级组件而开发的组件,基于组件的自身优势,可以优化二次开发,而且可以跨语言直接使用二级组件。
其中,二级组件的具体接口如表2所示:
表2二级组件系统接口表
结合图3所示的系统架构图,组件是python环境和windows平台中其它语言(比如C#)环境沟通的关键,目前微软新发布的Visual Stdio版本中,两者可以统一到.Net平台中,但是出于方便性和跨平台考虑,采用纯碎的python环境(相对于IPython而言)作为深度学习模型的开发和运行环境更为合理。而windows在操作系统层面对python和tensorflow具有良好的支持。
本本发明采用“共享”的思想,以内存和文件作为共享对象分别提供单任务和批任务处理两种服务模式,可对实时任务和大批量任务做有效的处理。图5给出了二级组件设计的基本原理示意图。
由图5可知,python环境是自成体系的,结合表1可知组件能够通过接口启动模型,从而深度学习模型(图2所示)就进入了工作状态,从内存或者文件中得到输入,然后进行求解,得到模型输出,这个过程有两种模式:单条模式和批量模式,从空间和时间上考虑,单条模式以内存作为交换媒介,批量模式以文件作为交换媒介。为了防止处理流程的混乱,本发明还可以引入锁机制,以防止流程混乱。协同和管理等工作都可以交由组件负责,而且主要是由一级组件完成的。其中,图5中的参数表示命令字符串,根据操作环境进行设置,数据包括预测的原始数据和预测的结果。
在一种实施方式中,在步骤S5之后,所述方法还包括:
对识别结果中的地理信息进行定位分区。
具体地,可以利用Geocoding API作为映射工具将识别结果中的地理信息要素作为有效的分裂属性,然后基于C4.5算法构建决策树模型,进行定位分区,从而达到了高精度的定位分区的技术效果。其中,Geocoding API为一种百度地图开放平台Web服务API,即地理编码和逆地理编码,C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化,可以通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足。
为了更清楚地说明本发明的具体应用,下面通过一个具体示例予以介绍,具体参见图6~8。
在具体实施中,本发明开发了一级组件和二级组件,实现了地理实体的识别,其中,启动深度学习模型是用户地理信息智能分析系统(方太助手系统)中利用组件技术启动BiLSTM+CRF+AGG深度学习模型实现智能分析的关键一步。涵盖了二级组件的实施和应用,是python开发的深度学习无缝融入.Net平台(方太助手系统基于.Net4.6.1开发)的关键模块,具体参见图6。
当模型启动后,则可以通过“打开文件”导入方太系统导出的Excel数据文件,尽而获得要处理的用户信息(即待处理的包含地理信息的数据)。如图7所示,从Excel信息中得到用户的“送货信息”、“区县”和“城市”信息;通过深度预测模型从送货信息得到小区和地址信息,连同区县和城市信息利用GCpDT算法进行定位分区。
接下来,通过“处理文件”菜单启动数据处理功能,即通过BiLSTM+CRF+AGG模型得到小区信息,然后进一步获得分区。具体如图8所示,其中,分区为“无”说明不在分区范围,然后将小区名称和分区直接写回原始的方太数据文件中。
总体来说,本研究技术基于tensorflow深度学习框架,实现了BiLSTM+CRF+AGG网络模型,其中AGG是聚合层,是为了解决NER任务(Named Entity Recognition,命名实体识别任务)中实体的粒度均衡问题而引入的,通过高质量的标注和BiLSTM+CRF+AGG配合产生了具有高精度识别不规范、不完整甚至有错别字的用户信息中的地理信息的深度学习模型,并基于决策树模型,通过百度Geocoding API服务,可以对识别结果中的信息进行高精度地定位分区算。
总而言之,本方法提供的识别或者预测方法具有先进性、抗干扰性、稳健性、易用性和智能性等优点。通过将本发明的方法应用于真实的应用场景,得得了非常理想的效果。根据实验数据显示,小区名称的识别率高达96.3%,而分区准确率高达98.2%;超过了预期的性能指标。
基于同一发明构思,本申请还提供了与实施例一中基于深度学习的地理信息的识别方法对应的装置,详见实施例二。
实施例二
本实施例提供了一种基于深度学习的地理信息的识别装置,请参见图9,该装置包括:
获取模块601,用于获取包含地理信息的原始数据;
预处理模块602,用于对原始数据进行预处理;
标注模块603,用于对预处理后数据进行标注,形成语料库;
训练模块604,用于将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;
识别模块605,用于将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果。
在一种实施方式中,标注模块603具体用于:
采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
在一种实施方式中,采用组件技术将训练后的深度学习模型进行封装,应用于开发环境中。
在一种实施方式中,组件技术包括构建一级组件,一级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成。
在一种实施方式中,组件技术还包括构建二级组件,二级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成、是否激活、解析、返回预测结果和设定超时。
在一种实施方式中,所述装置还包括定位分区模型,用于在获得识别结果之后:
对识别结果中的地理信息进行定位分区。
由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于深度学习的地理信息的识别方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
施例三
基于同一发明构思,本申请还提供了一种计算机可读存储介质700,请参见图10,其上存储有计算机程序711,该程序被执行时实现实施例一中的方法。
由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于深度学习的地理信息的识别方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于深度学习的地理信息的识别方法,其特征在于,包括:
步骤S1:获取包含地理信息的原始数据;
步骤S2:对原始数据进行预处理,预处理包括数据的筛选、清洗;
步骤S3:对预处理后数据进行标注,形成语料库;
步骤S4:将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;
步骤S5:将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果,识别结果中包括地理位置信息和小区信息;
其中,步骤S5中,采用组件技术将训练后的深度学习模型进行封装,应用于开发环境中,组件技术采用共享内存和共享文件两种机制;组件技术包括构建一级组件,一级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成;
组件技术还包括构建二级组件,二级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成、是否激活、解析、返回预测结果和设定超时。
2.如权利要求1所述的方法,其特征在于,步骤S3具体包括:
采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
3.如权利要求1所述的方法,其特征在于,在步骤S5之后,所述方法还包括:
对识别结果中的地理信息进行定位分区。
4.一种基于深度学习的地理信息的识别装置,其特征在于,包括:
获取模块,用于获取包含地理信息的原始数据;
预处理模块,用于对原始数据进行预处理,预处理包括数据的筛选、清洗;
标注模块,用于对预处理后数据进行标注,形成语料库;
训练模块,用于将语料库输入深度学习模型,对深度学习模型进行训练,其中,深度学习模型为BiLSTM+CRF+AGG,包括特征嵌入层、双向LSTM层、BiLSTM输出层、CRF层、拟输出层、聚合层和最终输出层,AGG为增加的聚合层;
识别模块,用于将待处理的包含地理信息的数据输入训练后的深度学习模型,并通过聚合层对同一类型的相邻实体进行聚合,进而获得识别结果,识别结果中包括地理位置信息和小区信息;
其中,识别模块中,采用组件技术将训练后的深度学习模型进行封装,应用于开发环境中,组件技术采用共享内存和共享文件两种机制;组件技术包括构建一级组件,一级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成;
组件技术还包括构建二级组件,二级组件的接口包括:启动服务、停止服务、单条数据预测、服务状态判断、批量数据预测、批量预测是否完成、是否激活、解析、返回预测结果和设定超时。
5.如权利要求4所述的装置,其特征在于,标注模块具体用于:
采用自动标注与人工调整相结合的方式对预处理后的数据进行标注,形成预料库。
6.如权利要求4所述的装置,其特征在于,还包括定位分区模块,用于:
对识别结果中的地理信息进行定位分区。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至3中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811448679.5A CN109614457B (zh) | 2018-11-28 | 2018-11-28 | 一种基于深度学习的地理信息的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811448679.5A CN109614457B (zh) | 2018-11-28 | 2018-11-28 | 一种基于深度学习的地理信息的识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614457A CN109614457A (zh) | 2019-04-12 |
CN109614457B true CN109614457B (zh) | 2021-01-01 |
Family
ID=66005949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811448679.5A Expired - Fee Related CN109614457B (zh) | 2018-11-28 | 2018-11-28 | 一种基于深度学习的地理信息的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614457B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858817B (zh) * | 2020-07-23 | 2021-05-18 | 中国石油大学(华东) | 一种用于稀疏轨迹的BiLSTM-CRF路径推断方法 |
CN111930909B (zh) * | 2020-08-11 | 2023-09-12 | 付立军 | 一种面向地质智能问答的数据自动化序列标注识别方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491548A (zh) * | 2017-08-28 | 2017-12-19 | 武汉烽火普天信息技术有限公司 | 一种网络舆情文本信息推荐及可视化方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133220B (zh) * | 2017-06-07 | 2020-11-24 | 东南大学 | 一种地理学科领域命名实体识别方法 |
CN108764835A (zh) * | 2018-05-24 | 2018-11-06 | 广州合摩计算机科技有限公司 | 逆向人才推送信息方法和装置 |
-
2018
- 2018-11-28 CN CN201811448679.5A patent/CN109614457B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491548A (zh) * | 2017-08-28 | 2017-12-19 | 武汉烽火普天信息技术有限公司 | 一种网络舆情文本信息推荐及可视化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109614457A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090461B (zh) | 一种基于机器翻译模型的代码注释生成方法 | |
Bilal et al. | Guidelines for applied machine learning in construction industry—A case of profit margins estimation | |
US9330090B2 (en) | Translating natural language descriptions to programs in a domain-specific language for spreadsheets | |
US20170011306A1 (en) | Transfer Learning Techniques for Disparate Label Sets | |
US20110112986A1 (en) | Generative Investment Method and System | |
CN109033220B (zh) | 标注数据的自动选取方法、系统、设备和存储介质 | |
US10818082B2 (en) | Method and system for parametrically creating an optimal three dimensional building structure | |
CN109614457B (zh) | 一种基于深度学习的地理信息的识别方法及装置 | |
CN101430714A (zh) | 一种基于样式的内容结构化加工方法及系统 | |
CN112766319A (zh) | 对话意图识别模型训练方法、装置、计算机设备及介质 | |
CN113011461B (zh) | 通过知识学习增强基于分类的软件需求跟踪链接恢复方法及电子装置 | |
CN115964273A (zh) | 基于深度学习的航天器测试脚本自动生成方法 | |
Eriksson et al. | Marrying features and use cases for product line requirements modeling of embedded systems | |
CN109408592B (zh) | 一种决策型分布式数据库系统中ai的特征工程知识库及其实现方法 | |
CN111144139A (zh) | 基于区块链的翻译结果的唯一性认证方法和认定系统 | |
CN101162480A (zh) | 工程图自动识别与理解的方法 | |
CN116502648A (zh) | 一种基于多跳推理的机器阅读理解语义推理方法 | |
Scherer et al. | Retrieval of project knowledge from heterogeneous AEC documents | |
US11194966B1 (en) | Management of concepts and intents in conversational systems | |
Gokyer et al. | Non-functional requirements to architectural concerns: ML and NLP at crossroads | |
CN115238009A (zh) | 基于血缘分析的元数据管理方法、装置、设备及存储介质 | |
Babur et al. | Towards Distributed Model Analytics with Apache Spark. | |
CN112559753A (zh) | 一种基于业务过程管理技术的自然语言文本处理与分析任务的管理框架 | |
Lee et al. | Customizing the capture of software architectural design decisions | |
Rathnayaka et al. | Grey system based novel forecasting and portfolio mechanism on CSE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210101 Termination date: 20211128 |