具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种地名识别方法及装置,能够准确识别地名。
请参阅图1,本发明地名识别方法一个实施例包括:
101、对待识别地名中的字符串进行分词得到候选词集;
本实施例中用户可以按照中文地名书写习惯输入待识别地名,即将大地名输入在前,小地名输入在后,通常一个地名会有多个字符串组成。
待地名输入完成后,地名识别装置对待识别地名中的字符串进行分词,分词之后会形成一个候选词集,候选词集中的每一个候选词就是待识别地名中的一个子地名。
102、以候选词集中的候选词为关键字,在标准地名数据库中查找与上述关键字匹配的标准地名,标准地名即为待识别地名的目标地名。
地名识别装置以候选词集中的候选词为关键字,在标准地名数据库中查找与这些关键字匹配的标准地名,将这个标准地名作为待识别地名的目标地名。
本实施例中的标准地名数据库可以根据国家统计局或其他权威机构提供的数据整理得到,当然也可以由用户自行创建,此处不做具体限定。标准地名数据库中包含标准地名,每个标准地名由一个或多个按级划分的标准子地名组成。例如,每个标准地名可以包含省、地、县、乡、村的详细名称。另外,标准地名数据库中还可以包含行政区划编码,行政区划编码可以使用固定长度、按位切分的数字结构表示;且行政区划编码与标准地名一一对应。这样每一个正确输入的待识别地名,地名识别装置都将能从标准地名数据库找到与之对应的标准地名。
本实施例中,以标准地名数据库中的地名为标准地名,在对待识别地名进行分词匹配处理后,最终在标准地名数据库中找出与待识别地名对应的标准地名,将标准地名作为待识别地名的目标地名,从而实现准确识别地名。
为便于理解,下面以一具体实施例对本发明实施例中地名识别方法进行描述,请参阅图2,本实施例方法包括:
201、对待识别地名中的字符串进行分词得到候选词集;
本实施例中用户可以按照中文地名书写习惯输入待识别地名,即将大地名输入在前,小地名输入在后,通常一个地名会有多个字符串组成。
本实施例中,可以采用MMSEG分词工具对待识别地名中的字符串进行分词,当然也可以采用其他分词中文工具对待识别地名中的字符串进行分词,分词之后会形成一个候选词集,候选词集中的每一个候选词就是待识别地名中的一个子地名。例如,待识别地名为“北京市东城区东华门”,分词之后得到的候选词集为{北京市,东城区,东华门}。
202、在标准地名数据库中查找与候选词集中的第一个候选词匹配的第一标准地名集;
本实施例中的标准地名数据库可以根据国家统计局或其他权威机构提供的数据整理得到,当然也可以由用户自行创建,此处不做具体限定。标准地名数据库中包含标准地名,每个标准地名由一个或多个按级划分的标准子地名组成。例如,每个标准地名可以包含省、地、县、乡、村的详细名称。另外,标准地名数据库中还可以包含行政区划编码,行政区划编码可以使用固定长度、按位切分的数字结构表示;且行政区划编码与标准地名一一对应。下面举例说明本实施例提供的标准地名数据库,假如从国家统计局获取的地名数据如表1所示:
表1
行政区划编码 |
省 |
地 |
县 |
乡 |
级次 |
110000000000 |
北京 |
|
|
|
1 |
110100000000 |
北京 |
东城区 |
|
|
2 |
110101000000 |
北京 |
东城区 |
东城区 |
|
3 |
110101001000 |
北京 |
东城区 |
东城区 |
东华门 |
4 |
110101002000 |
北京 |
东城区 |
东城区 |
景山 |
4 |
110101003000 |
北京 |
东城区 |
东城区 |
交道口 |
4 |
110101004000 |
北京 |
东城区 |
东城区 |
安定门 |
4 |
110101005000 |
北京 |
东城区 |
东城区 |
北新桥 |
4 |
110101006000 |
北京 |
东城区 |
东城区 |
东四 |
4 |
对表1中的数据进行整理之后得到本实施例的标准地名数据库,本实施例的标准地名数据库中的数据如表2所示:
表2
行政区划编码 |
标准地名 |
110000000000 |
{北京} |
110100000000 |
{北京,东城区} |
110101000000 |
{北京,东城区,东城区} |
110101001000 |
{北京,东城区,东城区,东华门} |
110101002000 |
{北京,东城区,东城区,景山} |
110101003000 |
{北京,东城区,东城区,交道口} |
110101004000 |
{北京,东城区,东城区,安定门} |
110101005000 |
{北京,东城区,东城区,北新桥} |
110101006000 |
{北京,东城区,东城区,东四} |
为了进一步提高后续对地名识别的准确性,本实施例中,还可以对表2中的数据做去冗余处理,以使每个标准地名最简化。例如,对于行政区划编码为110101001000的标准地名,去冗余之后的标准地名就可以表示为{北京,东城,东城,东华门}。
同样,还可以对经过步骤201进行分词之后得到的候选词集中的每个候选词进行去冗余处理,上面的例子中,待识别地名对应的候选词集为{北京市,东城区,东华门},去冗余处理后得到的候选词集为{北京,东城,东华门}。
在标准地名数据库中查找与候选词集中的第一个候选词匹配的标准地名集。本实施例中所指的匹配可以是二者的完全相同,也可以是二者主要的部分相同。假如标准地名数据库中的标准地名是无冗余,最简化的,且对待识别地名形成的候选词集中的候选词也做了去冗余处理,那么这里的匹配即指的是二者完全相同,否则,二者的主要部分相同就认为是匹配的,例如,对于“北京”与“北京市”,地名识别装置将会认为二者是相互匹配的。
上面的例子中,假设与候选词集中的第一个候选词“北京市”匹配的标准地名有9个,如表2所示,那么第一标准地名集里就包括9个标准地名。
203、在第一标准地名集里查找与候选词集中的第二个候选词匹配的第二标准地名集;
上面的例子中,在第一标准地名集里与第二候选词“东城区”匹配的标准地名有8个,这8个标准地名组成第二标准地名集,第二标准地名集中标准地名的数量小于第一标准地名集中标准地名的数量。
204、依次遍历候选词集中的每一个候选词,最终找出与候选词集中的最后一个候选词匹配的标准地名,标准地名即为待识别地名的目标地名。
接下来在第二标准地名集里寻找与候选词集中的第三个候选词匹配的标准地名,找到的匹配的标准地名只有一个,即行政区划编码为110101001000对应的标准地名。
从上面的例子可以看出,如果用户输入的每个待识别地名是正确的,则按照上述递进式逐级缩小范围的匹配方法一定会在标准地名数据库中找到与待识别地名对应的目标地名。对于本实施例中所提到的例子,识别出的待识别地名为“北京市东城区东华门”的目标地名为“北京东城区东城区东华门”(没做去冗余处理的)或“北京东城东城东华门”(做过去冗余处理的)。
需要说明的是,按照本实施例提供的方法,还可以识别输入的不完整的地名,例如:输入的地名为“广东省,南山区”,按照上述递进式搜索匹配方法最终可以识别出目标地名为“广东省,深圳市,南山区”。另外,因本实施例中对候选词的匹配采用的是采用递进式搜索匹配的方法,所以可以有效避免逻辑误判。例如:输入的是“广东省,南山区”,最终识别出的目标地址只会是“广东省,深圳市,南山区”,而不会是“黑龙江,鹤岗市,南山区”。
本实施例中,以标准地名数据库中的地名为标准地名,在对待识别地名进行分词处理后,在标准地名数据库中以递进式搜索方式找出与待识别地名对应的标准地名,将标准地名作为待识别地名的目标地名,从而实现准确识别地名。
下面将描述本发明实施例提供的另一种地名识别方法,请参阅图3,本实施例与上述实施例的主要区别在于查找与每个候选词匹配的标准地名的方法不同,本实施例方法包括:
301、对待识别地名中的字符串进行分词得到候选词集;
本实施例中用户可以按照中文地名书写习惯输入待识别地名,即将大地名输入在前,小地名输入在后,通常一个地名会有多个字符串组成。
本实施例中,可以采用MMSEG分词工具对待识别地名中的字符串进行分词,当然也可以采用其他分词中文工具对待识别地名中的字符串进行分词,分词之后会形成一个候选词集,候选词集中的每一个候选词就是待识别地名中的一个子地名。例如,待识别地名为“北京市东城区东华门”,分词之后得到的候选词集为{北京市,东城区,东华门}。同样,还可以按照前述实施例的方法对候选词集中的候选词做去冗余处理。
302、直接在标准地名数据库中查找与候选词集中的所有候选词同时匹配的标准地名,标准地名即为待识别地名的目标地名。
本实施例中,直接将候选词集中的所有候选词放入标准地名数据库中查找,然后将同时命中所有候选词的标准地名作为目标地名。标准地名数据库中的每个标准地名也可以由一个或多个按级划分的标准子地名组成,且每个标准地名也可以是无冗余的最简的标准地名。
本实施例中,以标准地名数据库中的地名为标准地名,在对待识别地名进行分词匹配处理后,在标准地名数据库中找出与所有候选词同时匹配的标准地名,将与候选词同时匹配的标准地名作为待识别地名的目标地名,从而实现准确识别地名。
下面对本发明实施例中的地名识别装置进行描述,请参阅图4,本发明中地名识别装置一个实施例包括:
分词单元401,用于对待识别地名中的字符串进行分词得到候选词集;
处理单元402,用于以候选词集中的候选词为关键字,在标准地名数据库中查找与上述关键字匹配的标准地名,标准地名即为待识别地名的目标地名。
为便于理解,下面以一个实际应用场景对本实施例中的地名识别装置的各个单元之间的交互方式进行描述:
首先,用户可以按照中文地名书写习惯输入待识别地名,即将大地名输入在前,小地名输入在后,通常一个地名会有多个字符串组成。然后分词单元401对待识别地名中的字符串进行分词得到候选词集。本实施例中,分词单元401可以采用MMSEG分词工具对待识别地名中的字符串进行分词,当然也可以采用其他分词中文工具对待识别地名中的字符串进行分词,分词之后会形成一个候选词集,候选词集中的每一个候选词就是待识别地名中的一个子地名。例如,待识别地名为“北京市东城区东华门”,分词之后得到的候选词集为{北京市,东城区,东华门}。
在经过分词单元401的处理得到候选词集后,处理单元402以候选词集中的候选词为关键字,在标准地名数据库中查找与上述关键字匹配的标准地名,标准地名即为待识别地名的目标地名。具体地,处理单元402可以采用以下两种方式在标准地名数据库中查找与关键字匹配的标准地名:
第一种方式:递进式查找匹配法;
首先处理单元402在标准地名数据库中查找与候选词集中的第一个候选词匹配的第一标准地名集;
本实施例中的标准地名数据库可以根据国家统计局或其他权威机构提供的数据整理得到,当然也可以由用户自行创建,此处不做具体限定。标准地名数据库中包含标准地名,每个标准地名由一个或多个按级划分的标准子地名组成。例如,每个标准地名可以包含省、地、县、乡、村的详细名称。另外,标准地名数据库中还可以包含行政区划编码,行政区划编码可以使用固定长度、按位切分的数字结构表示;且行政区划编码与标准地名一一对应。标准地名数据库中的标准地名可以是无冗余的最简的标准地名,对应地,处理单元402在为候选词集中的每个候选词寻找匹配的标准地名之前,也可以对候选词集中的每个候选词做去冗余处理。
当某个标准地名里的标准子地名与候选词集中的第一个候选词完全相同,或者主要的部分相同时,认为该标准地名与第一个候选词匹配,与第一个候选词匹配的所有标准地名形成第一标准地名集。
然后处理单元402在第一标准地名集里查找与候选词集中的第二个候选词匹配的第二标准地名集,第二标准地名集里标准地名的数量小于第一标准地名集里标准地名的数量。
处理单元402依次遍历候选词集中的每一个候选词,最终找出与候选词集中的最后一个候选词匹配的标准地名,标准地名即为待识别地名的目标地名。
如果用户输入的每个待识别地名是正确的,则按照上述递进式逐级缩小范围的匹配方法一定会在标准地名数据库中找到与待识别地名对应的目标地名。
按照递进式查找匹配的方法,地名识别装置还可以识别输入的不完整的地名,例如:输入的地名为“广东省,南山区”,按照上述方法最终可以识别出目标地名为“广东省,深圳市,南山区”。另外,采用递进式查找匹配的方法,还可以有效避免逻辑误判。例如:输入的是“广东省,南山区”,最终识别出的目标地址只会是“广东省,深圳市,南山区”,而不会是“黑龙江,鹤岗市,南山区”。
第二种方式:权重积分式查找匹配法;
处理单元402直接将候选词集中的所有候选词放入标准地名数据库中查找,然后将同时命中所有候选词的标准地名(权重积分最高)作为目标地名。
本实施例中,地名识别装置以标准地名数据库中的地名为标准地名,处理单元在分词单元在对待识别地名进行分词处理后,在标准地名数据库中以递进式查找方式或者权重积分式查找方式找出与待识别地名对应的标准地名,将标准地名作为待识别地名的目标地名,从而实现准确识别地名。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上对本发明实施例所提供的一种地名识别方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。