一种中文地址识别方法及设备与流程

文档序号:18755417发布日期:2019-09-24 22:13阅读:296来源:国知局
一种中文地址识别方法及设备与流程

本发明涉及生物计算机技术领域,尤其涉及一种中文地址识别方法及设备。



背景技术:

在房地产相关的业务系统中,房屋的地理位置是一个非常重要的信息维度,在按地理位置进行的房屋查找筛选、数据统计、挖掘分析等业务处理过程中,常常要处理大量的地址信息,而这些地址信息大都是以文本形式存放在数据库中,并不能直接进行处理和计算。因此,中文地址信息标准化建模是地址信息处理的重要步骤,而地址建模过程中地址元素识别的准确度将直接影响到后续业务处理的正确性。

现在技术中常见的方法有,基于正则表达式的匹配算法、基于关联规则的方法、地址要素层级模型为核心的地址匹配方法、基于自然语义理解的方法。基于正则表达式的方法,实现起来最简单,但效果也最差,因为算法完全是建立在字符串比较的基础之上,没办法识别地址要素层级,很难对地址消歧,匹配准确率低,稳定性差,只能匹配一些简单模式的地址。在基于关联规则的算法中,是通过计算地址要素联系的频率实现关联。其算法主要包括两大块:首先是在地址数据集中找出高频地址要素组;其次是从这些高频地址要素组中产生关联规则。关联规则挖掘的方法运用到对地址模型自适应构建,可以把两个前后出现频率高的地址要素看作高频地址要素组,地址要素出现的频率称为支持度。首先找出地址数据集中所有的地址要素组,然后在这些地址要素组之间计算关联规则。然而基于的算法需要大量的地址数据集进行训练,因此无法进行冷启动。并且关联规则方法是基于最小支持度和最小信赖度来挖掘地址要素之间的联系,末达到阈值的要素联系是不会被提取出来的,就会造成一些低频抽取模型的地址无法识别。以地址要素层级为核心的地址匹配方法认为地址要素都有存在层次级别属性,每一类地址要素的属性都有唯一的级别值。这类方法对地址的描述要求符合等级规则,地址要素对应的级别要按照升序排列。在实现中,首先要创建一个符合地址分级模型的地名库,并在此基础上通过地址串的拆分和匹配来完成地址标准化编码工作,这种方法最大的困难需要人工维护的方式来建设最新数据量巨大的基础地址库。基于自然语言理解方面的地址匹配研究,就是利用自然语言理解这一人工智能领域新技术来建立新的中文地址匹配算法。由于机械分词的主要缺点在于它不是从理解语义的角度出发,而是采用机械的字符串匹配方式来实现地址匹配,所以无未能处理采用非结构化形式的自然语言描述的中文地址,此时就要采用自然语言理解的地址匹配方法。但该类方法的缺点是对训练集数据依赖性较高,实话前需要进行大量的地址训练,无法冷启动。

由于地址名词本身具有的复杂性和多样性,各地的地址使用习惯复杂多变,除了国家统计局对县及县以上行政地址的代码和名称有明确规定外,其它级别的地址信息由于数量繁多、结构复杂,长期以来按照属地化管理等原因造成了地名、地址的使用均带有较重的地方特色,没有形成统一的地址编码和命名规范,也就是没有一个统一的模式可以匹配。另外,由于中文词语是由字组成的,切分的时候情况就要复杂得多,这也为地址要素识别带来许多问题。再加上人们在输入地址时常常省略特征词,造成名词边界的界定困难。而同一个名词也可能出现在不同地址的不同级别要素中。可见,现有技术并没有一个有效的方式来对中文地址进行精确的识别。



技术实现要素:

本发明实施例提供一种中文地址识别方法及设备,用以解决现有技术中并没有一个有效的方式来对中文地址进行精确的识别的问题。

第一方面,本发明实施例提供了一种中文地址识别方法,包括:

获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;

根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;

根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;

若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;

根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

第二方面,本发明实施例还提供了一种电子设备,包括:

处理器、存储器、通信接口和通信总线;其中,

所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;

所述通信接口用于该电子设备的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:

获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;

根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;

根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;

若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;

根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

第三方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:

获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;

根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;

根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;

若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;

根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

本发明实施例提供的中文地址识别方法及设备,通过构建包括预设总层级数地址要素层的地址模型,以及每个地址要素层的识别函数,分别对从有序词项序列中提取出的词项拼接得到待识别词进行识别,从而不需要语料进行训练、工作量小,可以冷启动,能够更加快速、准确得从待识别文本中得到正确的中文地址,且各个地址要素层的识别函数可灵活实时更新,适应新出现的地名种类,后续更新维护的工作量小。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的中文地址识别方法流程图;

图2为本发明实施例的另一中文地址识别方法流程图;

图3为本发明实施例的又一中文地址识别方法流程图;

图4为本发明实施例的还一中文地址识别方法流程图;

图5为本发明实施例的再一中文地址识别方法流程图;

图6为本发明实施例的用于中文地址识别方法的状态机结构示意图;

图7为本发明实施例的中文地址识别装置结构示意图;

图8示例了一种电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例的中文地址识别方法流程图,如图1所示,所述方法包括:

步骤s01、获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数。

本发明实施例根据中文地址的书写习惯和规则为每个待识别文本构建一个相对应的地址模型,所述地址模型由多个地址要素层组成,且针对每个地址要素层分别设置了对应的识别函数。所有的地址要素层由低到高进行排列,可根据实际的需要将所有地址要素层划分为预设的总层级数,在此不作具体限定。例如,如表1所示:

如表1所示,所述地址模型由低到高共被划分为11层级的地址要素层。每个地址要素层的识别函数可以根据每个地址要素层划分的特点,分别设计各不相同的识别函数,例如可以为根据如表1所示的关键词的匹配算法,或者是根据是否存在数字的特点以及相对应的量词设计匹配算法,还可以根据相邻地址要素层在经过匹配后得到的已识别地址要素来进一步约束该地址要素层的识别函数。

同时,对所述待识别文本进行分词处理,从而得到由多个词项组成的有序词项序列。例如,所述待识别的地址文本为“苏州工业园区榭雨街329号太阳星辰花园三区78幢116室”,则通过分词处理后得到的有序词项序列为{苏州,工业园区,榭,雨,街,329,号,太阳,星辰,花园,三区,78,幢,116,室}。

步骤s02、根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级。

根据预设的拼接规则从所述有序词项序列中依次提取出位于首位的词项,来判断是否满足可拼接的条件,若满足,则将对多个词项进行接接来得到待识别词,而若不满足,则仅将一个词项作为待识别词。

进一步地,所述拼接规则具体为:

在从所述有序词项序列中提取出位于开始的一个词项后,判断下一个词项是否为预设的地址单位特征词;

若是,则同时提取出下一个词项。

所述拼接规则可根据实际的需要来进行设定,可基于自定义的窗口滑动规则进行。本发明实施例仅给出了其中的一种举例说明。预先设定或保存有地址单位特征词,在从所述有序词项序列中提取出位于开始的一个词项后,进一步判断下一个词项是否为所述地址单位特征词,如果是,则同样提取出下一个词项,若否,则不会提取出下一个词项。通过该方法能够匹配到较优长度的地址要素词。

例如:有序词项序列{苏州,工业园区,榭,雨,街,329,号,太阳,星辰,花园,三区,78,幢,116,室},提取出位于首位的词项“苏州”作为待识别词,此时的有序词项序列为{工业园区,榭,雨,街,329,号,太阳,星辰,花园,三区,78,幢,116,室}。而对于有序词项序列{329,号,太阳,星辰,花园,三区,78,幢,116,室},则需要提取出两个词项“329”和“号”,拼接后得到“329号”作为所述待识别词。

同时,根据所述地址模型中各个层级的地址要素层的当前状态,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中已经匹配成功的要素层中的最高层级。例如,以如表1所示的地址模型为例,若所有的地址要素层中第一、二、三、六层级的地址要素已经匹配成功,则所述识别状态为第六层级。当然,若所述地址模型中不存在已经匹配成功的地址要素层,则将所述识别状态设置为默认的初始状态。

步骤s03、根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配。

根据所述识别状态,开始调用比所述识别状态高一级的地址要素层的识别函数,对所述待识别词进行匹配,例如,如所述识别状态为第六层级,则先调用第七层级的地址要素层的识别函数对所述待识别词进行匹配。

若匹配不成功,则再根据层级顺序,调用更高一层级的地址要素层的识别函数对所述待识别词再进行匹配。以次类推。

步骤s04、若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中。

经过依次将不同层级的地址要素层的识别函数与所述待识别词进行匹配,直到任一识别函数匹配成功,则不再需要调用更高层级的地址要素层的识别函数。此时,将与该匹配成功的识别函数对应的地址要素层标记为匹配成功。同时,根据所述匹配函数的得到已识别地址要素,例如,表1所示的示例,将所述已识别地址要素记录到该地址要素层中。例如,若所述待识别词为“329号”,且与第七层级的地址要素层的识别函数匹配成功,则将所述第七层级的地址要素层标记为匹配成功。同时,得到已识别地址要素为“329号”,并记录到所述第七层级的地址要素层中。

所述已识别地址要素由识别函数对所述待识别词进行匹配后得到,并不一定完全等同与所述待识别词,例如,若所述待识别词为“329”,则所述已识别要素根据识别函数可以为“329号”,具体根据实际的需要在识别函数中作相应地设定。

步骤s05、根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

由于所述地址模型中已匹配成功的地址要素层增加,则所述地址模型的识别状态也将得到更新,例如,若所述已匹配成功的地址要素层由原来的第一、二、三、六层级,增加为第一、二、三、六、七层级,则所述识别状态也将由原来的第六层级更新为第七层级。

另外,由于所述待识别词已被匹配成功,因此,需要清空所述待识别词,并且根据当前的有序词项序列和拼接规则得到新的待识别词。例如,若所述待识别词“329号”已被匹配成功,此时,所述有序词项序列为{太阳,星辰,花园,三区,78,幢,116,室},则再根据所述拼接规则,从所述有序词项序列中提取出位于首位的至少一个词项,得到新的待识别词为“太阳星辰花园三区”,所述有序词项序列变为{78,幢,116,室}。

然后,再根据更新的识别状态来依次调用识别函数对新的待识别词进行匹配。

直到所述有序词项序列为空,其中的每个词项均作为待识别词被匹配成功,则判定本次匹配成功结束。另外,若地址模型中最高层级的地址要素层也已经被标识为匹配成功,则同样可判定本次匹配成功结束,而若此时,所述有序词项序列还不为空,则依然可判定本次匹配成功结束或者改判为本次匹配失败结束,具体可根据实际的需要进行设定。

通过本次匹配成功结束后的地址模型,将记录在所有匹配成功的地址要素层中的已识别地址要素进行拼接就可以得到对所述待识别文本识别后的中文地址。

本发明实施例通过构建包括预设总层级数地址要素层的地址模型,以及每个地址要素层的识别函数,分别对从有序词项序列中提取出的词项拼接得到待识别词进行识别,从而不需要语料进行训练、工作量小,可以冷启动,能够更加快速、准确得从待识别文本中得到正确的中文地址,且各个地址要素层的识别函数可灵活实时更新,适应新出现的地名种类,后续更新维护的工作量小。

图2为本发明实施例的另一中文地址识别方法流程图,如图2所示,在所述步骤s03后所述方法还包括:

步骤s041、若所有的识别函数均匹配失败,则将所述待识别词命名为未识别词。

根据所述识别状态,依次调取所述层级高于所述识别状态的地址要素层的识别函数,分别对所述待识别词进行匹配之后。若所有调取的识别函数均匹配失败,则将所述待识别词命名为未识别词。

步骤s042、根据所述拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接到所述未识别词后得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配。

从所述有序词项序列中再次提取出位于首位的至少一个词项,根据所述拼接规则,将提取出的词项拼接到所述未识别词后,以得到新的待识别词。然后再次根据未更新的识别状态,对新的待识别词进行匹配。

例如,若所述待识别词为“太阳”,所述有序词项序列为{星辰,花园,三区,78,幢,116,室},所述识别状态为第七层级,在将调取从第八层级开始的所有地址要素层的识别函数对待识别词“太阳”进行匹配后。若均没有匹配成功,则将所述“太阳”命名为未识别词,再从所述有序词项序列中提取出“星辰”与所述未识别词进行拼接得到新的待识别词“太阳星辰”。再次根据当前的识别状态为第七层级对所述新的待识别词“太阳星辰”进行匹配。若再次没有匹配成功,将再次从所述有序词项序列中提取出新的词项拼接到“太阳星辰”之后,得到“太阳星辰花园三区”,从而使第八层级的地址要素层的识别函数匹配成功。

相应地,所述方法还包括:

步骤s051、在将所述待识别词命名为未识别词后,若此时,所述有序词项序列为空,则判定本次匹配失败结束。

在一轮匹配失败后,将所述待识别词命名为未识别词,而若此时,所述有序词项序列为空,相当于,无法再通过拼接规则对所述未识别词进行拼接来得到新的待识别词,则可以判断本次匹配失败结束。

本发明实施例在根据识别状态对所述待识别词进行匹配后,若没有匹配成功,则将所述待识别词与所述有序词项序列中提取出的词项进行拼接,以得到新的待识别词,并再次根据所述识别状态对新的待识别词进行匹配,从而通过反复更新所述待识别词进行匹配,能够更加快速、准确得从待识别文本中得到正确的中文地址。

图3为本发明实施例的又一中文地址识别方法流程图,如图3所示,所述地址模型将所有的地址要素层分为预设第一层级数的行政地址要素层和预设第二层级数的详细地址要素层;其中,所述总层级数等于所述第一层级数与第二层级数的和,所述行政地址要素层的层级低于所述详细地址要素层的层级;相应地,所述步骤s03具体为:

步骤s031、若所述识别状态显示为初始状态,或显示的层级为行政地址要素层,则根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的行政地址要素层的识别函数,分别与所述待识别词进行匹配。

根据中文地址的特点,可以将任一中文地址分为行政地址和详细地址,为此,将所述地址模型中总层级数的地址要素层也同样分为第一层级数的行政地址要素层和第二层级数的详细地址要素层,其中,所述行政地址要素层的层级低于所述详细地址要素层的层级。例如,如表1所示,其中,第一层级-第五层级为行政地址要素层,而第六层级-第十一层级则为详细地址要素层。

为此,在对有序词项序列进行识别的过程中,也将先识别对应的行政地址,再识别对应的详细地址。相当于,将所述有序词项序列也分为了与行政地址相关的部分和与详细地址相关的部分。

在根据有序词项序列得到待识别词,根据地址模型得到识别状态时,若判断所述识别状态显示为初始状态,或者显示的层级为行政地址要素层,则仅需要调用行政地址要素层的识别函数来对所述待识别词进行匹配。

步骤s032、若所有的识别函数均匹配失败,则将所述识别状态设为行政区划匹配结束,再根据当前的识别状态对当前的待识别词进行匹配。

若针对当前的待识别词,通过调用层级高于所述识别状态的行政地址要素层的识别函数无法匹配成功,则可判定所述待识别词和当前的有序词项序列均为与详细地址相关的部分。此时,将所述识别状态直接设定为行政区划匹配结束。例如,待识别词为“榭”,有序词项序列为{雨,街,329,号,太阳,星辰,花园,三区,78,幢,116,室},则通过调用行政地址要素层的识别函数将无法匹配所述待识别词“榭”,此时,将所述识别状态设定为行政区划匹配结束。

相应地,所述根据当前的地址模型,更新所述识别状态,具体为:

步骤s043、根据当前的地址模型中已经匹配成功的地址要素层中的最高层级,更新所述识别状态,若所述识别状态为最高层级的行政地址要素层,则将所述识别状态设为所述行政区划匹配结束。

而若任一行政地址要素层的识别函数与所述待识别词匹配成功,则将与所述识别函数对应的行政地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中。

此时,在根据当前地址模型更新所述识别状态时,若匹配成功的行政地址要素层为所述地址模型中层级最高的行政地址要素层,则将所述识别状态直接设定为行政匹配完成。例如,如表1所示,若匹配成功的行政地址要素为第五层级,则将所述识别状态设为行政区划匹配结束。

此时,将所述地址模型中所有已经匹配成功的行政地址要素层记录的已识别地址要素拼接后就可以得到与所述待识别文本对应的中文地址的行政地址部分。

相应地,所述方法还包括:

步骤s033、若所述识别状态显示为行政区划匹配结束,则根据所述层级由低到高,依次调用所有的详细地址要素层的识别函数,分别与所述待识别词进行匹配。

当所述识别状态显示为行政区划匹配结束,或者显示的层级为详细地址要素层时,则可以依次调用详细地址要素层的识别函数,来分别与所述待识别词进行匹配。

若匹配成功,则更新后的识别状态显示的层级将为详细地址要素层。

本发明实施例通过将所有的地址要素层分为行政地址要素层和详细地址要素层,且若识别状态显示为初始状态,或显示的层级为行政地址要素层,则仅调用行政地址要素层的识别函数,若匹配不成功或者匹配成功的行政地址要素层为最高层级的行政地址要素层,则将所述识别状态设为行政区划匹配结束,然后再调用详细地址要素层的识别函数来进行匹配,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

图4为本发明实施例的还一中文地址识别方法流程图,如图4所示,所述步骤s03具体为:

步骤s034、若所述识别状态显示为所述初始状态,则根据所述层级由低到高,依次调用预设层级阈值的行政地址要素层的识别函数,分别与所述待识别词进行匹配;其中,所述层级阈值小于等于所有行政地址要素层的层级数量:

步骤s035、若所有的识别函数均匹配失败,则判定本次匹配失败结束。

由于中文地址中必须包括有行政地址才能够明确所述详细地址的范围,对于没有行政地址的中文地址将很难应用于实际的生活当中,为此,可以先确定能否从所述有序词项序列中匹配到具体的行政地址,如果不能,则可直接判定本次匹配失败结束。具体为:

所述地址模型设定一个层级阈值,例如2,当所述识别状态显示为初始状态时,依次调用识别函数将不再是所有的行政地址要素层的识虽函数,而仅调用开始的层级阈值的行政地址要素层的识别函数,分别与所述待识别词进行匹配。

若匹配失败,则直接判定本次匹配失败结束。

例如,如表1所示,所述地址模型包括5层级的行政地址要素层,包括第一层级-第五层级。若设所述层级阈值为2,则当所述识别状态为初始状态时,分别调用第一层级的省级和第二层级的市级的识别函数,来对所述待识别词进行匹配,若匹配成功,则所述识别状态将更新显示的层级为行政地址要素层,而若匹配失败,则相当于所述原有序词项序列中位于首位的词项不对应于省级和市级行政地址,此时,直接判定本次匹配失败结束。

本发明实施例通过对所述有序词项序列进行识别的开始阶段,调用预设层级阈值的行政地址要素层的识别函数,来对所述待识别词进行匹配来判断所述有序词项序列是否可用,若不匹配,则判定本次匹配失败结束,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

图5为本发明实施例的再一中文地址识别方法流程图,如图5所示,所述步骤s04具体为:

步骤s044、在所述识别状态显示为行政区划匹配结束,或者显示的层级为详细地址要素层时,若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中,从所述待识别词中去除与所述已识别地址要素匹配的词项。

当在对所述有序词项序列中的详细地址部分进行识别时,相当于,所述识别状态显示为行政区划匹配结束,或者显示的层级为详细地址要素层时,若任一识别函数匹配成功,则将得到与所述识别函数对应的地址要素层的已识别地址要素。所述已识别地址要素,若并非与所述待识别词完全匹配,而仅与拼接成所述待识别词的部分词项相匹配。此时,在将该地址要素层标记为匹配成功,并将已识别地址要素记录到所述地址要素层中后,还需要将与所述已识别地址要素匹配的词项从所述待识别词中去除。

步骤s045、此时,若当前的待识别词不为空,且比所述匹配成功的地址要素层低一层级的地址要素层未匹配成功,则将当前的待识别词记录为所述低一层级的地址要素层的已识别地址要素,并将所述低一层的地址要素层标记为匹配成功。

若去除后的待识别词为空,则需要从有序词项序列中提取出位于首位的词项作为新的待识别词;而若去除后的待识别词不为空,则查看比匹配成功的地址要素层低一层级的地址要素层是否已经匹配成功:若所述低一层级的地址要素层处于未匹配成功的状态,则可以直接将当前的待识别词记录为该低一层级的地址要素层的已识别地址要素,并将所述低一层的地址要素层标记为匹配成功;如果该低一层级的地址要素层已经匹配成功,则可以将当前的待识别词清空,又或者将当前的待识别词拼接到该低一层级的地址要素层的已识别地址要素的后面成为新的已识别地址要素。

例如,如表1所示,若所述待识别词为“太阳星辰”,而位于所述有序词项序列开始的词项为{78、幢、……},所述识别状态为第七层级,则后续的执行步骤如下:

1、通过调取从第八层级开始的识别函数,对“太阳星辰”进行匹配,匹配失败,将所述“太阳星辰”标识为未识别词;

2、根据拼接规则,可以将所述有序词项序列中前两个“78”和“幢”都拼接到所述未识别词后面,得到新的待识别词“太阳星辰78幢”;

3、继续从第八层级开始依次调取相应的地址要素层的识别函数,对“太阳星辰78幢”进行匹配;在第九层级地址要素层的识别函数匹配成功,得到的第九层级的地址要素层的已识别地址要素为“78幢”,从所述待识别词去除与“78幢”对应的词项,得到去除后的待识别词为“太阳星辰”;

4、由于第八层级的地址要素层也未匹配成功,此时,可以将“太阳星辰”记录为第八层级的地址要素层的已识别地址要素,且将所述第八层级的地址要素层标记为匹配成功。

其中,第3步还可以根据需要具体设计为:

3.1、继续从第八层级开始依次调取相应的地址要素层的识别函数,对“太阳星辰78幢”进行匹配,但由于对第九层级地址要素层的识别函数,只能准确识别“***幢”,其中“***”必须为纯数字,因此,无法匹配成功;

3.2、将所述“太阳星辰78幢”中原未识别词“太阳星辰”暂时拆出作为前待识别词,单独用“78幢”去匹配从第八层级开始的地址要素层的识别函数,并与第九层级的地址要素层的识别函数,匹配成功,将“78幢”记为第八层级的地址要素层的已识别地址要素;然后,再在第4步中将前待识别词记为第八层级的地址要素层的已识别地址要素。

本发明实施例通过在匹配成功后从所述待识别词中去除与已识别地址要素匹配的词项,从而来判断是否需要对低一层级的地址要素层进行补全操作,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

基于上述实施例,进一步地,所述地址模型还包括预设的行政地址库;相应地,所有行政地址要素层的识别函数根据所述行政地址库得到;相应地,所述方法还包括:

在所述识别状态显示为初始状态,或者显示的层级为行政地址要素层时,若任一识别函数匹配成功,则将与所述识别函数对应的行政地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中,判断在所述匹配成功的行政地址要素层的层级下是否还存在未匹配成功的行政地址要素层:若存在则根据所述行政地址库,所述匹配得到的已识别地址要素,补全所述未匹配成功的行政地址要素层的已识别地址要素。

所述地址模型预设有行政地址库,所述行政地址库保存有所有层级的行政地址要素层能够匹配到的所有可能的行政地址。例如,如表1所示,所述行政地址库包括了第一层级-第五层级地址要素层的所有省地址、市地址、区/县地址、乡/镇/街道地址、村/社区地址。

在任一行政地址要素层的识别函数匹配成功,得到该行政地址要素层的已识别地址要素后,可根据所述已识别地址要素和所述行政地址库中各个层级的行政地址间的关系,可以得到所述层级低于该行政地址要素层的其它没有匹配成功的行政地址要素层的已识别地址要素,并加以记录。

例如,如表1所示,若所述待识别词为“苏州”,通过识别函数的匹配,可得到与第二层级的行政地址要素层相匹配,得到的已识别地址要素为“苏州市”,则根据所述行政地址库可得到第一层级的行政地址库的已识别地址为“江苏省”,将“江苏省”记录到第一层级的行政地址要素层中,并将所述第一层级的行政地址要素层标记为匹配成功。

本发明实施例通过预设的行政地址库可对未匹配到的行政地址要素层的已识别地址要素进行一定的补充,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

基于上述实施例,进一步地的,在步骤s01前所述方法还包括:

获取待识别文本,根据预设的分词规则和预设的基础地址词库,将所述待识别文本经过分词得到所述有序词项序列。

在获取到待识别文本后,首先采用预设的分词规则进行分词,所述分词规则可以根据实际的需要来进行设计,但由于后续可以通过拼接规则对词项进行拼接,因此,可以采用细粒度分词规则,确保粒度尽量细。同时为了一定程度地简化后续待识别词的边界识别,建立一个基础地址词库,对于添加在词库里的词,会采用最长匹配,例如“工业园区”,若根据基础地址词库可以得到的词项同时有“工业”、“园区”和“工业园区”两种切分方法,则选择最长匹配的词进行切分

本发明实施例通过预设的分词规则和基础地址词库,对待识别文本进行分词,得到有序词项序列,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

图6为本发明实施例的用于中文地址识别方法的状态机结构示意图,所述地址模型可以等同一个有限状态自动机,如图6所示,是与所述表1相对应的有限状态自动机,所述有限状态自动机上的每个状态为所述识别状态,根据当前所在状态依次调用识别函数对待识别词进行匹配,并且根据预设的跳转规则在各个状态间进行跳转。

通过所述地址模型输入待识别地址文本,最终得到的解析结果各个地址要素层记录的已识别地址要素。

例如:所述待识别地址文本为:

苏州工业园区榭雨街329号太阳星辰花园三区78幢116室,

则解析结果为:

相对于现有的中文地址识别方法,所述有限状态自动机具有如下优势:

·不需要语料进行训练,工作量小,可以冷启动

·能够有效识别地址元素名词,准确率较高

·能够对缺失行政区划要素进行补全

·能够有效识别出地址要素层级

·各状态的识别函数可灵活实时更新,适应新出现的地名种类,后续更新维护的工作量小。

图7为本发明实施例的中文地址识别装置结构示意图,如图7所示,所述装置包括:信息获取模块10、信息提取模块11、信息匹配模块12、结果处理模块13;其中

所述信息获取模块10用于获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;所述信息提取模块11用于根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;所述信息匹配模块12用于根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;所述结果处理模块13若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;所述信息提取模块11还用于根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再由所述信息匹配模块12根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

所述信息获取模块10根据中文地址的书写习惯和规则为每个待识别文本构建一个相对应的地址模型,所述地址模型由多个地址要素层组成,且针对每个地址要素层分别设置了对应的识别函数。所有的地址要素层由低到高进行排列,可根据实际的需要将所有地址要素层划分为预设的总层级数,在此不作具体限定。

同时,信息获取模块10对所述待识别文本进行分词处理,从而得到由多个词项组成的有序词项序列。所述信息获取模块10将所述有序词项序列和地址模型发送的所述信息提取模块11。

所述信息提取模块11根据预设的拼接规则从所述有序词项序列中依次提取出位于首位的词项,来判断是否满足可拼接的条件,若满足,则将对多个词项进行接接来得到待识别词,而若不满足,则仅将一个词项作为待识别词。

所述拼接规则可根据实际的需要来进行设定,可基于自定义的窗口滑动规则进行。根据预先设定或保存有地址单位特征词,在从所述有序词项序列中提取出位于开始的一个词项后,进一步判断下一个词项是否为所述地址单位特征词,如果是,则同样提取出下一个词项,若否,则不会提取出下一个词项。通过该方法能够匹配到较优长度的地址要素词。

同时,所述信息提取模块11根据所述地址模型中各个层级的地址要素层的当前状态,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中已经匹配成功的要素层中的最高层级。若所述地址模型中不存在已经匹配成功的地址要素层,则将所述识别状态设置为默认的初始状态。所述信息提取模块11将得到的待识别词和识别状态发送给所述信息匹配模块12。

所述信息匹配模块12根据所述识别状态,开始调用比所述识别状态高一级的地址要素层的识别函数,对所述待识别词进行匹配。若匹配不成功,则再根据层级顺序,所述信息匹配模块12调用更高一层级的地址要素层的识别函数对所述待识别词再进行匹配。以次类推。

经过依次将不同层级的地址要素层的识别函数与所述待识别词进行匹配,直到任一识别函数匹配成功,则所述信息匹配模块12不再需要调用更高层级的地址要素层的识别函数。此时,所述信息匹配模块12指示所述结果处理模块13将与该匹配成功的识别函数对应的地址要素层标记为匹配成功。同时,所述信息匹配模块12根据所述匹配函数的得到已识别地址要素并发送给结果处理模块13,由所述结果处理模块13将所述已识别地址要素记录到该地址要素层中。

所述已识别地址要素由识别函数对所述待识别词进行匹配后得到,并不一定完全等同与所述待识别词,具体根据实际的需要在识别函数中作相应地设定。

由于所述地址模型中已匹配成功的地址要素层增加,则所述信息提取模块11对所述地址模型的识别状态也将得到更新。

另外,由于所述待识别词已被匹配成功,因此,需要所述信息提取模块11清空所述待识别词,并且根据当前的有序词项序列和拼接规则得到新的待识别词。

然后,由所述信息匹配模块12再根据更新的识别状态来依次调用识别函数对新的待识别词进行匹配。

直到所述有序词项序列为空,其中的每个词项均作为待识别词被匹配成功,则所述结果处理模块13判定本次匹配成功结束。另外,若地址模型中最高层级的地址要素层也已经被标识为匹配成功,则同样可判定本次匹配成功结束,而若此时,所述有序词项序列还不为空,则依然可判定本次匹配成功结束或者改判为本次匹配失败结束,具体可根据实际的需要进行设定。

通过本次匹配成功结束后的地址模型,所述结果处理模块13将记录在所有匹配成功的地址要素层中的已识别地址要素进行拼接就可以得到对所述待识别文本识别后的中文地址。

本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过构建包括预设总层级数地址要素层的地址模型,以及每个地址要素层的识别函数,分别对从有序词项序列中提取出的词项拼接得到待识别词进行识别,从而能够更加快速、准确得从待识别文本中得到正确的中文地址。

图8示例了一种电子设备的实体结构示意图,如图8所示,该服务器可以包括:处理器(processor)810、通信接口(communicationsinterface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取有序词项序列和与所述序词项序列对应的地址模型;其中,所述有序词项序列包括按预设顺序排列的复数个词项,所述地址模型包括由低到高排列的预设总层级数的地址要素层,以及每个地址要素层的识别函数;根据预设的拼接规则,从所述有序词项序列中提取出位于开始的至少一个词项,拼接得到待识别词;并根据所述地址模型,得到所述地址模型的识别状态,所述识别状态用于显示所述地址模型中匹配成功的地址要素层中的最高层级;根据所述层级由低到高,依次调用所述层级高于所述识别状态显示的层级的地址要素层的识别函数,分别与所述待识别词进行匹配;若任一识别函数匹配成功,则将与所述识别函数对应的地址要素层标记为匹配成功,并将匹配得到的已识别地址要素记录到所述地址要素层中;根据当前的地址模型,更新所述识别状态,并根据当前的有序词项序列得到新的待识别词,再根据当前的识别状态对新的待识别词进行匹配,直到所述有序词项序列为空,或者直到最高层级的地址要素层匹配成功,则判定本次匹配成功结束。

本领域普通技术人员可以理解:此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1