具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了解决现有技术在地址信息提取时,构建适用于地址信息的分词词库就要耗费大量的时长,地址信息提取效率低,并且只能提取到离散的地址文本,而不能形成完整的地址信息的问题,本申请提供了一种地址信息提取方法及装置。
下面是本申请的方法实施例。
图1是本申请一示例性实施例示出的一种地址信息提取方法的流程图。该方法可以应用于PC(个人电脑)、平板电脑、手机和服务器等多种设备。
参见图1所示,该方法可以包括以下步骤:
步骤S110,根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重。
本申请中,基本思路是通过地址信息的积累或地址信息的定向采集,不断获取一个目标区域内的已知地址信息;然后,使用分词工具对已知地址信息的文本进行分词,得到地址词;最后,根据分词得到的地址词创建目标区域的地址词库,并设置地址词的权重,其中,地址词的权重高于分词工具的分词词库中非地址词的权重。
示例地,我们以北京市作为目标区域,创建北京市的地址词库。首先,通过地址积累或定向采集等方式,获取北京市的已知地址信息,例如:在开展基于LBS(基于位置服务)的业务时不断积累地址信息,或者,在语音助手与人类的对话中不断积累语料,并从语料中获取地址信息(例如:用户说“日坛公园怎么走?”,那么“日坛公园”就可以被提取成地址信息);或者,可定向采集某个行政区域、商圈、轨道交通线路等包含的地址信息,例如:“王府井步行街东来顺饭店”“北京市海淀区五道口购物中心”“奥林匹克公园”“磁器口”等。然后,使用分词工具对获取的已知地址信息的文本进行分词,得到地址词,例如:“日坛公园”被分成日坛、公园,“王府井步行街东来顺饭店”被分成王府井、步行街、东来顺、饭店,“北京市海淀区五道口购物中心”被分成北京市、海淀区、五道口、购物、中心。然后,根据对北京市的已知地址信息分词得到的地址词创建北京市的地址词库。进一步地,对地址词设置权重,要保证地址词的权重要高于非地址词的权重;具体地,可以将非地址词的权重与一个预设的放大系数相乘,作为地址词的权重,例如:预设放大系数为10,如果非地址词的权重为100,那么地址词的权重就是1000;或者,将非地址词的权重增大一个数量级作为地址词的权重,例如,如果非地址词的权重为101,那么,地址词的权重就可以是1001。进一步地,还可对地址词库中的每个地址词添加一个词性标签,以对地址词的身份进行标记,便于被机器学习模型识别。
可以理解的是,除了可以对一个行政区域内的已知地址信息建立地址词库之外,还可以对某个行业或领域内的已知地址信息建立地址词库,例如,建立北京市所有商场超市的地址词库、建立北京市所有银行网点的地址词库等;也就是说,在本申请实施例的技术方案和思想的启示下,本领域技术人员建立的地址词库中具体包含哪些地址信息,可根据地址词库的实际用途设计,这些设计都没有背离本发明的精神和保护范围。
需要补充说明的是,本申请中,根据地址词在已知地址信息中的词频,地址词可以被分成公共词和专有词。具体地,如果一个地址词在所有已知地址信息中多次出现,即超过一定次数,那么,就可以将该地址词定义为公共词;相反地,如果一个地址词在所有已知地址信息中出现的次数较少,即低于一定次数,那么,就可以将该地址词定义为专有词。
需要补充说明的是,在中国的地址命名中,一些连接词也充当着地址词的成分,例如“里”“弄”“到”“至”等,以北京市为例,包含连接词的地址名称就有“安贞里”“弄堂里”等,因此,在已知地址信息的积累和采集过程中,可以积累地址名称中出现的连接词,并将连接词也加入到地址词库中,从而提高地址词库的丰富程度,有利于提高地址信息提取的全面性和准确性。
需要补充说明的是,在对地址进行描述时,方位词能够更加具体地对一个地址进行限定,因此,方位词在地址信息中也经常出现,例如“肯德基餐厅旁”中的“旁”、“幸福里小区西门”中的“西门”等;因此,可以将例如“旁”“左边”“后边”“门口”“东门”“前门”等方位词添加到地址词库中,并作为地址词库中的公共词使用,从而提高地址词库的丰富程度,有利于提高地址信息提取的全面性和准确性。
需要补充说明的是,本申请在创建地址词库时,地址词库中的公共词除了从已知地址词库中获得以外,还可以从其他已知的公共词库中获得,这些公共词库可以通过本领域技术人员对不同领域地址的公共词进行采集而获得,例如:金融领域、教育领域、商超领域等。
示例地,金融领域的公共词可以包括:工商银行、民生银行、招商证券、支行、总行、自助银行等;教育领域的公共词可以包括:大学、小学、中学、学院、职业、培训学校等;商超领域的公共词可以包括:卖场、便利店、超市、购物中心、步行街等。
图2是本申请一示例性实施例示出的一种从公共词库中获得地址词的流程图。
如图2所示,在一种可选择的实施方式中,从公共词库中获取公共词并加入到地址词库的过程可以包括以下步骤:
步骤S210,获取至少一个已知公共词库。
步骤S220,对所述已知公共词库中的公共词进行规整。
本申请中,对已知公共词库中的公共词进行规整的过程可以包括:对公共词进行去重处理,即对同时存在于多个领域公共词库中的公共词仅保留一个;以及,判断公共词库中的公共词是否已经在地址词库中被定义为专有词,如果是,则从公共词库中去除该词;以及,对公共词库进行去停用词等。
步骤S230,将规整后的公共词加入到所述地址词库中。
步骤S120,使用分词工具并加载地址词库,根据权重优先和长度优先原则对样本语料进行分词,并对分词后的样本语料进行词性标注。
本申请中,基本思路是:首先,使用分词工具并加载地址词库,使分词工具同时使用地址词库和分词工具自带的分词词库对样本语料进行分词,在分词过程中要遵循权重优先和长度优先原则;然后,对分词后的样本语料进行词性标注,即:分别标注哪些词是地址词,哪些词是非地址词,从而将样本语料中的地址词和非地址词区分开,便于机器学习模型能够从样本语料中识别出哪些是地址词,哪些是非地址词。
为了帮助本领域技术人员充分理解本申请的技术方案和思想,下面结合具体示例对分词时遵循的权重优先原则和长度优先原则做出具体说明。
示例地,样本语料为:北京市东城区东直门外大街
地址词库中包含(数字表示权重):北京市1001、东城区1001、东直门外大街1001、东直门1001、大街1001、……
分词工具的分词词库中包含(数字表示权重):北京市100、城区100、门外100、大街100、……
那么,如果仅使用分词工具的分词词库对样本语料分词,可能会得到:
北京市/东/城区/东/直/门外/大街
显然,不能保证分词的准确性。
如果同时使用地址词库和分词工具的分词词库进行分词,根据权重优先原则,由于地址词的权重大于非地址词的权重,分词工具会优先根据地址词库中的地址词对样本语料进行拆分,从而分词工具会从样本语料中拆分出“北京市/东城区”;并且,根据长度优先原则,虽然地址词库中包含“东直门1001”和“大街1001”,但是分词工具不会从样本语料中拆分出“东直门/外大街”,而是拆分出完整的“东直门外大街”,这是因为,地址词库还包括长度更长的“东直门外大街1001”。
步骤S130,根据标注后的样本语料训练用于提取地址信息的机器学习模型。
本申请中,基本思路是:首先,搭建一个可用进行命名实体识别的机器学习模型,例如BiLSTM-CRF模型(一种基于序列标注长短期记忆和条件随机场的机器学习模型);然后,使用在步骤S120中已经做好词性标注的样本语料对搭建的机器学习模型进行训练,训练后就会得到一个具有地址信息提取能力的机器学习模型。
步骤S140,根据训练后的机器学习模型从未知语料中提取地址实体。
训练好用于提取地址信息的机器学习模型之后,在步骤S140中,使用该机器学习模型从可能包含地址信息的未知语料中提取出地址实体。
示例地,一条未知语料为:“警方在接到群众举报后,迅速出警,并很快在七一路一理发店内将犯罪嫌疑人成功抓获”。
使用训练好的机器学习模型可以从中提取出以下地址实体:
七一路(专有词)一(连接词)理发店(公共词)内(连接词)
步骤S150,根据每个地址实体在未知语料中的位置,标注每个地址实体的位置信息。
本申请中,基本思路是:以语料句首的第一个字符作为0位,按照每个字符占据一个位置的方法,获取训练语料中每个字符的位置,从而得到每个地址实体在未知语料中的位置。示例地:
…… |
…… |
并 |
很 |
快 |
在 |
七 |
一 |
路 |
一 |
…… |
…… |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
理 |
发 |
店 |
内 |
将 |
犯 |
罪 |
嫌 |
…… |
…… |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
…… |
…… |
在得到每个字符在未知语料中的位置以后,就可以用一种特定的方式去表达一个地址实体在未知语料中的位置信息。下面示例性地示出一些可选择的位置信息的表达方式:
第一种表达方式:位置信息包括地址实体在未知语料中的起始位置和结束位置。具体地,将地址实体的首个字符在未知语料中的位置标注为地址实体的起始位置,将与地址实体相邻的下一个分词的首个字符在未知语料中的位置标注为地址实体的结束位置。那么,上述训练文本中的地址实体的位置信息就可以表达为:
七一路|20,23 一|23,24 理发店|24,27 内|27,28
第二种表达方式:位置信息包括地址实体在未知语料中的起始位置和地址实体的长度,具体地,可以将地址实体的首个字符在未知语料中的位置标注为地址实体的起始位置,将地址实体的字符数量作为地址实体的长度。那么,上述训练文本中的地址实体的位置信息就可以表达为:
七一路|20,3 一|23,1 理发店|24,3 内|27,1
第三种表达方式:第三种表达方式与第一种表达方式类似,位置信息也包括地址实体在未知语料中的起始位置和结束位置。具体地,将地址实体的首个字符在未知语料中的位置标注为地址实体的起始位置,将地址实体的末尾字符在未知语料中的位置标注为地址实体的结束位置。那么,上述训练文本中的地址实体的位置信息就可以表达为:
七一路|20,22 一|23,23 理发店|24,26 内|27,27
步骤S160,根据所述位置信息,对地址实体进行拼接,生成完整的地址信息。
图3是本申请一示例性实施例示出的一种地址信息提取方法步骤S160的流程图。
如图3所示,在一种可选择的实施方式中,步骤S160可以包括以下步骤:
步骤S161,提取每个地址实体的所述位置信息,并对所述位置信息排序。
步骤S162,将排序后的地址实体进行拼接,生成完整的地址信息。
参见图4(a),下面结合本申请实施例示出的第一种地址信息的表达方式,对步骤S161和步骤S162做出具体说明。
首先,在步骤S161中,提取每个地址实体的位置信息,并按照起始位置或结束位置递增的顺序对所有位置信息进行排列。从而得到位置信息的序列:
[20,23][23,24][24,27][27,28]
然后,在步骤S162中,判断序列中相邻的两个位置信息中,前一个位置信息的结束为与后一个位置信息的起始位置是否相同,如果相同,则将两个位置信息对应的地址实体拼接,从而将离散的地址实体拼接成完整的地址信息。
参见图4(b),下面结合本申请实施例示出的第二种地址信息的表达方式,对步骤S161和步骤S162做出具体说明。
首先,在步骤S161中,提取每个地址实体的位置信息,并按照起始位置递增的顺序对所有位置信息进行排列。从而得到位置信息的序列:
[20,3][23,1][24,3][27,1]
然后,在步骤S162中,判断序列中相邻的两个位置信息中,前一个位置信息的起始位置与长度之和是否等于后一个位置信息的起始位置,如果等于,则将两个位置信息对应的地址实体拼接,从而将离散的地址实体拼接成完整的地址信息。
参见图4(c),下面结合本申请实施例示出的第三种地址信息的表达方式,对步骤S161和步骤S162做出具体说明。
首先,在步骤S161中,提取每个地址实体的位置信息,并按照起始位置递增的顺序对所有位置信息进行排列。从而得到位置信息的序列:
[20,22][23,23][24,26][27,27]
然后,在步骤S162中,判断序列中相邻的两个位置信息中,后一个位置信息的起始位置与前一个位置信息的结束位置的差是否等于1,如果等于,则将两个位置信息对应的地址实体拼接,从而将离散的地址实体拼接成完整的地址信息。
需要补充说明的是,为了进一步提高提取到的地址信息的准确性,在一种可选择的实施方式中,步骤S160之后还可以包括:
步骤S170,根据预设地址过滤规则,对拼接后生成的地址信息进行过滤。
本申请中,基本思路是预先编辑一个用于对地址信息进行过滤的过滤规则,在提取到地址信息之后,使用预先编辑的过滤规则,将地址信息中可能存在的停用词以及语法错误去除掉。例如,可以在过滤规则添加一个停用词表,如果提取到的地址信息中存在命中该停用词表的停用词,那么,就从地址信息中去除该停用词,从而进一步提高地址信息的准确性。又例如,可以对提取到的地址信息进行句法成分分析,如果分析到地址信息是以动词或副开头,说明该地址信息是错误的,那么,就去除这一条地址信息。
由以上技术方案可知,本申请实施例提供了一种地址信息提取方法。包括:根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重;使用分词工具并加载地址词库,根据权重优先和长度优先原则对样本语料进行分词,并对分词后的样本语料进行词性标注;根据标注后的样本语料训练用于提取地址信息的机器学习模型;根据训练后的机器学习模型从未知语料中提取地址实体;根据每个地址实体在未知语料中的位置,标注每个地址实体的位置信息;根据所述位置信息,对地址实体进行拼接,生成完整的地址信息。本申请实施例提供的技术方案,通过创建地址词库,降低了使用分词工具对样本语料进行分词时,对分词词库的依赖,使用户无需构建规模庞大的分词词库,就能够准确高效地对样本语料进行分词,从而提高信息提取的效率;此外,本申请通过标注地址实体的位置信息,将从未知语料中提取的离散的地址实体拼接成完整的地址信息,解决了现有技术无法从未知语料中提取到完整的地址信息的问题。
为了帮助本领域普通技术人员进一步理解本申请的技术方案和思想,下面结合具体示例,对步骤S110中根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重的过程做出具体阐述说明。
图5是本申请一示例性实施例示出的一种地址信息提取方法步骤S110的流程图。
如图5所示,在一种可选择的实施方式中,步骤S110可以包括以下步骤:
步骤S111,对已知地址信息进行分词,并对分词得到的地址词进行词频统计。
本申请中,基本思路是使用分词工具对已知地址信息进行分词,然后,统计每个地址词在已知地址信息中出现的总次数,以及地址词的总数量。然后,在定义词频时,可以将地址词在已知地址信息中出现的总次数作为该地址词的词频,即:如果一个地址词在已知地址信息中共出现了10次,那么,该地址词的词频为10。或者,将地址词占地址词总数量的百分比作为词频,即:如果地址词的总数量为1000,某个地址词在已知地址信息中出现了10次,那么,该地址词的词频为1%。
步骤S112,将词频小于预设阈值的地址词作为专有词,以及,将词频大于预设阈值的地址词作为公共词。
本申请中,如果将地址词在已知地址信息中共出现的次数作为词频,那么,阈值就是一个词频的值,例如,可以设置阈值为10,如果地址词的词频小于10,则地址词为专有词,如果地址词的词频大于10,则地址词为公共词。如果将地址词占地址词总数量的百分比作为词频,那么,阈值就是一个比例值,例如,可设置阈值为2%,如果地址词的词频小于2%,则地址词为专有词,如果地址词的词频大于2%,则地址词为公共词。
步骤S113,以所述分词词库中非地址词的权重为取值基准,设置地址词的权重。
本申请中,为了使分词工具能够准确地将样本语料中的地址词切分出来,分词工具在对样本语料进行分词时,同时使用了地址词库和分词工具自带的分词词库,并且要优先使用地址词库。
为了实现地址词库的优先使用,本申请中,基本思路是:获取分词工具自带的分词词库中非地址词的权重,然后以这个权重为取值基准,对地址词设置更高的权重。具体地,可以将权重与一个预设的放大系数相乘,作为地址词的权重,例如:预设放大系数为10,如果权重为100,那么地址词的权重就是1000;或者,将权重的值增大一个数量级作为地址词的权重,例如,如果权重为101,那么,地址词的权重就可以是1001。
为了帮助本领域普通技术人员进一步理解本申请的技术方案和思想,下面结合具体示例,对步骤S120中对分词后的样本语料进行词性标注的过程做出具体阐述说明。
图6是本申请一示例性实施例示出的一种词性标注方法的流程图。
如图6所示,在一种可选择的实施方式中,对分词后的样本语料进行词性标注可以包括以下步骤:
步骤S121,根据分词结果,对样本语料中的地址词和非地址词标注不同的学习目标值。
本申请中的学习目标值,是使用样本语料训练机器学模型时,机器学习模型需要使用的一种参数值,通过对地址词和非地址词标注不同的学习目标值,以使机器学习模型能够识别出语料中哪些是非地址词,哪些是地址词,并通过机器学习模型内部神经网络的训练,使机器学习模型具备从未知语料中提取地址信息的能力。
在一种可选择的实施方式中,可以对地址词的首个字符第一学习目标值,以及,对地址词除首个字符以外的其余字符标注第二学习目标值,以及,对样本语料中的非地址词标注第三学习目标值。其中,第一学习目标值大于第二学习目标值,第二学习目标值大于第三学习目标值,且第三学习目标值可以为0。
示例地,设置第一学习目标值为6,第二学习目标值为5,第三学习目标值为0,那么:
“贾某某称在西小口兰龙家园,因为工资纠纷,受到威胁。”
就会被标注为:00000566566600000000000。
步骤S122,将已标注学习目标值的样本语料转换成适用于机器学习模型的稀疏目标矩阵。
稀疏目标矩阵,就是很多元素为零的矩阵,或者说矩阵中非零元素的个数远远小于矩阵元素的总数。稀疏目标矩阵是机器学习领域的一种常见的数据格式,因此,本申请中对如何让样本语料转换成稀疏目标矩阵,以及,稀疏目标矩阵的维度等参数不做具体限定。
由以上技术方案可知,本申请实施例提供了一种地址信息提取方法。包括:根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重;使用分词工具并加载地址词库,根据权重优先和长度优先原则对样本语料进行分词,并对分词后的样本语料进行词性标注;根据标注后的样本语料训练用于提取地址信息的机器学习模型;根据训练后的机器学习模型从未知语料中提取地址实体;根据每个地址实体在未知语料中的位置,标注每个地址实体的位置信息;根据所述位置信息,对地址实体进行拼接,生成完整的地址信息。本申请实施例提供的技术方案,通过创建地址词库,降低了使用分词工具对样本语料进行分词时,对分词词库的依赖,使用户无需构建规模庞大的分词词库,就能够准确高效地对样本语料进行分词,从而提高信息提取的效率;此外,本申请通过标注地址实体的位置信息,将从未知语料中提取的离散的地址实体拼接成完整的地址信息,解决了现有技术无法从未知语料中提取到完整的地址信息的问题。
下面是本申请的装置实施例,可用于执行本申请的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7是本申请一示例性实施例示出的一种地址信息提取装置的示意图。该装置可以应用于PC(个人电脑)、平板电脑、手机和服务器等多种设备。
参见图7所示,该装置可以包括:
地址词库创建模块510,用于根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重;
词性标注模块520,用于使用分词工具并加载地址词库,根据权重优先和长度优先原则对样本语料进行分词,并对分词后的样本语料进行词性标注;
训练模块530,用于根据标注后的样本语料训练用于提取地址信息的机器学习模型;
提取模块540,用于根据训练后的机器学习模型从未知语料中提取地址实体;
位置标注模块550,用于根据每个地址实体在未知语料中的位置,标注每个地址实体的位置信息;
拼接模块560,用于根据所述位置信息,对地址实体进行拼接,生成完整的地址信息;
其中,根据地址词在已知地址信息中的词频,所述地址词包括公共词和专有词;所述地址词的权重高于分词工具的分词词库中非地址词的权重。
由以上技术方案可知,本申请实施例提供了一种地址信息提取装置。用于:根据已知地址信息创建包含地址词的地址词库,并设置地址词的权重;使用分词工具并加载地址词库,根据权重优先和长度优先原则对样本语料进行分词,并对分词后的样本语料进行词性标注;根据标注后的样本语料训练用于提取地址信息的机器学习模型;根据训练后的机器学习模型从未知语料中提取地址实体;根据每个地址实体在未知语料中的位置,标注每个地址实体的位置信息;根据所述位置信息,对地址实体进行拼接,生成完整的地址信息。本申请实施例提供的技术方案,通过创建地址词库,降低了使用分词工具对样本语料进行分词时,对分词词库的依赖,使用户无需构建规模庞大的分词词库,就能够准确高效地对样本语料进行分词,从而提高信息提取的效率;此外,本申请通过标注地址实体的位置信息,将从未知语料中提取的离散的地址实体拼接成完整的地址信息,解决了现有技术无法从未知语料中提取到完整的地址信息的问题。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。