CN103927310A - 一种地图数据搜索建议生成方法及装置 - Google Patents
一种地图数据搜索建议生成方法及装置 Download PDFInfo
- Publication number
- CN103927310A CN103927310A CN201310012939.5A CN201310012939A CN103927310A CN 103927310 A CN103927310 A CN 103927310A CN 201310012939 A CN201310012939 A CN 201310012939A CN 103927310 A CN103927310 A CN 103927310A
- Authority
- CN
- China
- Prior art keywords
- search
- substring
- text
- participle
- user
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种地图数据搜索建议生成方法及装置。一种地图数据搜索建议生成方法包括:接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;利用前i个分词单元构成搜索子串;在地图数据中,搜索与所述搜索子串文本相匹配的结果;根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;应用本发明方案,能够根据搜索结果位置分布来实现对未知地名的识别,从而减小地址词典对搜索结果的影响,提升搜索建议的可用性。
Description
技术领域
本发明涉及电子地图技术领域,特别是涉及一种地图数据搜索建议生成方法及装置。
背景技术
电子地图,也称数字地图,是利用计算机技术,以数字方式存储和搜索的地图。利用计算机的数据处理能力,电子地图可以实现更为快速的位置信息搜索,方便用户使用。
在电子地图中进行基于位置的搜索,是一种最为普遍的用户需求。与其他的搜索引擎类似,电子地图的搜索引擎同样可以提供“搜索建议”的功能,即在进行搜索的过程中,需要用户在搜索框中输入搜索关键词,由于普通用户不愿意输入太长或者过于复杂的关键词。为了能使用户尽快完成关键词的输入,节省用户的输入成本,在用户输入关键词的部分内容后,系统会采用提供搜索建议的方式,例如在自动下拉栏中提供若干个建议的关键词供用户选择,从而不需要用户手动输入完整的长关键词,简化用户操作。
对于用户的位置搜索请求,最基本的处理方式是直接根据用户当前已经输入的文本,在地图数据库检索与该文本内容匹配的内容,例如兴趣点、道路等等。这种方式实际与普通的文本信息检索相同,然而对于地图搜索而言,却并不一定适用,例如,用户输入的搜索请求是“海淀区工商”,目的是要找位于海淀区工商银行,而并非要找名为“海淀区工商银行”的地点,因此使用文本匹配的搜索方式,往往无法得到符合用户需求的结果。
针对上述问题,现有技术提供的一种改进方案是,利用预先构建的地址数据库,能够识别出“海淀区”是具有某种空间含义的,进而可以根据所识别出的地名,在地图上先定位出相应区域,然后在该区域范围内进一步搜索与“工商”相匹配的地名文本(例如工商银行),进而为用户生成搜索建议。与纯文本匹配的搜索方式相比,结合空间信息进行搜索显然更符合用户的需求,但是这种方式的实现,需要依赖于地址数据库的完备性,如果用户的搜索请求中包含了地名词典中未覆盖的地名,那么这部分会被当做一般文本进行处理,仍然难以得到符合需求的搜索建议。
发明内容
为解决上述技术问题,本发明提供一种地图数据搜索建议生成方法及装置,技术方案如下:
本发明实施例提供一种地图数据搜索建议生成方法,该方法包括:
接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
在地图数据中,搜索与所述搜索子串文本相匹配的结果;
根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
根据本发明的一种具体实施方式,所述方法还包括:
接收用户当前已输入的搜索请求文本后,判断用户输入停顿时间是否大于预设阈值,如果是,则进一步对搜索请求文本进行分词。
根据本发明的一种具体实施方式,所述利用前i个分词单元构成搜索子串,包括:
根据预设的词典,识别分词单元中的地名文本;
利用未识别出的分词单元,构成搜索子串。
根据本发明的一种具体实施方式,所述利用前i个分词单元构成搜索子串,包括:
根据预设的词典,识别分词单元中不具有空间意义的文本;
利用未识别出的分词单元,构成搜索子串。
根据本发明的一种具体实施方式,所述利用前i个分词单元构成搜索子串,包括:
判断相邻分词单元的共现率是否大于预设的阈值,如果是,则先对相应的分词单元进行合并处理后,再构成搜索子串。
根据本发明的一种具体实施方式,根据搜索结果的位置信息,确定所述搜索子串对应的位置区域,包括:
根据多个搜索结果位置的空间分布,得到搜索结果的聚集区域,将该聚集区域确定为所述搜索子串对应的位置区域;
其中,所述聚集区域满足:
该聚集区域中所包含的搜索结果比例达到预设的阈值,以及
该聚集区域的大小不超过预设的阈值。
根据本发明的一种具体实施方式,该方法还包括:
在确定所述搜索子串对应的位置区域后,对该搜索子串的相关信息进行存储。
本发明实施例还提供一种地图数据搜索建议生成装置,该装置包括:
分词模块,用于接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
搜索子串构建模块,用于利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
第一搜索模块,用于在地图数据中,搜索与所述搜索子串文本相匹配的结果;
区域确定模块,用于根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
第二搜索模块,用于在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
根据本发明的一种具体实施方式,所述分词模块,具体用于:
接收用户当前已输入的搜索请求文本后,判断用户输入停顿时间是否大于预设阈值,如果是,则进一步对搜索请求文本进行分词。
根据本发明的一种具体实施方式,所述搜索子串构建模块,具体用于:
根据预设的词典,识别分词单元中的地名文本;
利用未识别出的分词单元,构成搜索子串。
根据本发明的一种具体实施方式,所述搜索子串构建模块,具体用于:
根据预设的词典,识别分词单元中不具有空间意义的文本;
利用未识别出的分词单元,构成搜索子串。
根据本发明的一种具体实施方式,所述搜索子串构建模块,具体用于:
判断相邻分词单元的共现率是否大于预设的阈值,如果是,则先对相应的分词单元进行合并处理后,再构成搜索子串。
根据本发明的一种具体实施方式,所述区域确定模块,具体用于:
根据多个搜索结果位置的空间分布,得到搜索结果的聚集区域,将该聚集区域确定为所述搜索子串对应的位置区域;
其中,所述聚集区域满足:
该聚集区域中所包含的搜索结果比例达到预设的阈值,以及
该聚集区域的大小不超过预设的阈值。
根据本发明的一种具体实施方式,该装置还包括:
存储模块,用于在确定所述搜索子串对应的位置区域后,对该搜索子串的相关信息进行存储。
本发明实施例所提供的技术方案,对于搜索请求文本中包含无法识别地名的情况,首先利用该地名文本进行搜索,然后根据多个搜索结果的位置分布,确定出该未知地名所对应的位置区域,最后在该位置区域再次进行搜索,利用搜索结果生成搜索建议。与现有技术相比,本发明方案能够根据第一次搜索结果位置分布来实现对未知地名的识别,从而减小地址词典对搜索结果的影响,提升搜索建议的可用性。另一方面,对于能够确定位置区域的未知地名,可以将该地名反过来加入地名词典,从而不断丰富地名词典的收录内容,使得地图系统的搜索性能得到持续提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例地图数据搜索建议生成方法的一种流程图;
图2a-图2h为本发明实施例确定未知地名区域的示意图;
图3为本发明实施例地图数据搜索建议生成装置的一种结构示意图;
图4为本发明实施例地图数据搜索建议生成装置的另一种结构示意图。
具体实施方式
根据现有技术,如果在用户当前已输入的地图搜索请求中包含了具有空间含义的内容,并且地图系统可以根据地名词典识别出这些内容,那么就可以在相应的空间范围内进行搜索。例如用户输入“海淀区工商”,系统可以根据地名词典,识别出“海淀区”并且在地图上定位出相应区域,然后在该区域范围内进一步搜索与“工商”相匹配的地名文本(例如工商银行)。
如果用户的搜索请求中包含了地名词典中未覆盖的地名,例如对于搜索请求“中关村工商”,用户的目的可能是要找位于“中关村”区域内的工商银行,但是在地名词典中并没有收录“中关村”,那么“中关村”仍然会被当做一般文本进行处理,只有在目标数据的名称信息或者地址信息文本中同时包含“中关村”+“工商”的情况下,该数据才会被用于生成搜索建议。
针对上述问题,本发明实施例提供一种地图数据搜索建议生成方法,该方法可以包括以下步骤:
接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
在地图数据中,搜索与所述搜索子串文本相匹配的结果;
根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
本发明实施例所提供上述方法,对于搜索请求中包含无法识别地名的情况,首先利用该地名文本进行搜索,然后根据多个搜索结果的位置分布,确定出该未知地名所对应的位置区域,最后在该位置区域再次进行搜索,利用搜索结果生成搜索建议从而得到最终的搜索结果。与现有技术相比,本发明方案能够根据第一次搜索结果位置分布来实现对未知地名的识别,从而减小地址词典对搜索结果的影响,提升搜索建议的可用性。另一方面,对于能够确定位置区域的未知地名,可以将该地名反过来加入地名词典,从而不断丰富地名词典的收录内容,使得地图系统的搜索性能得到持续提升。
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
图1所示,为本发明实施一种地图数据搜索建议生成方法的流程示意图,该方法可以包括以下步骤:
S101,接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
当用户需要获得某个地点的地理位置或其他信息时,应该将该点的完整描述文本作为搜索请求输入电子地图的搜索接口,但是在实际应用过程中,用户往往只需要搜索请求的一部分文本,系统就可以给出针对于这一部分文本的搜索建议。在本发明实施例中,对于用户当前已输入的地图搜索请求文本,首先进行分词处理,将搜索请求文本分为若干个分词单元。
在本发明的一种优选实施方式中,当用户输入一段文本后,可以不立刻进行分词及后续操作,而是判断用户的输入停顿时间是否足够长,这是因为,用户在正常的输入文字过程中,存在一定的停顿是很正常的,如果用户没输入一个词就进行搜索建议,不仅浪费系统资源,而且很可能用户当前并没有完成输入,根本不需要搜索建议。而如果用户输入的停顿时间足够长,例如在超过5秒的时间内,没有任何键盘或鼠标动作,则可以认为用户已经不打算继续输入下去,此时开始执行后续生成搜索建议的操作,则可以很大程度上避免出现无效的处理,不仅节约用户资源,也可以避免生成多余的信息,影响用户的使用体验。
上述方案提供了一种自动触发搜索建议的处理方案,可以理解的是,也可以为用户提供一个操作接口(例如按钮等),用户可以通过该接口手动触发提供搜索建议,这些并不影响本发明整体方案的实施。
在本发明的另一种优选实施方式中,还可以先对搜索请求的文本长度进行检测,判断是否大于某个预设的阈值,如果是,再进一步进行分词处理及后续的操作。如果搜索请求文本过短,一方面可能无法进一步分词,另一方面,即便拆分成功,得到的分词单元也难以独立表明搜索意图,这种情况下,可以不做进一步处理。
S102,利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
根据用户的习惯,所输入的地图搜索请求一般由两部分组成,即“where+what”的形式,其中:
a)对搜索对象位置的描述,简称where;
b)对搜索对象名称的描述,简称what;
例如“海淀区工商银行”,表示用户想找“海淀区”附近的“工商银行”、“北京市中关村肯德基”表示用户想找要“北京市中关村”附近的“肯德基”,等等。
通过对大量搜索请求的文本构成进行研究,可以发现以下规律:对于一个连续形式的搜索文本串,用于描述位置的词(where)位于一般位于前面,用于描述名称的词则多位于后面;另外“where”可能对应多个具有独立意义的词,例如“北京市+中关村”,而“what”则一般仅对应一个词。
根据上述规律,对于经分词得到的N个分词单元,可以默认将最后一个分词单元当做“what”进行处理,前N-1个分词单元则当做“where”进行处理。在本发明实施例中,对于“where”部分,利用前N-1个分词单元构成一个或多个搜索子串,然后利用该搜索子串进行文本搜索。
最简单的处理方式,是不对where部分做任何处理,直接将前N-1个分词单元作为搜索子串。在本发明的其他实施例中,为了优化搜索结果,还可以采用其他方式生成搜索子串,以下进行详细说明:
对于分词结果中的前i(i=1,2,3…N-1)个分词单元,可以按照从前到后的顺序进行组合,形成可能的地名文本候选,例如“北京市/海淀区/中关村”(其中斜线表示分词结果),可以分别构成以下形式:
北京市
北京市海淀区
北京市海淀区中关村
假设当前地名词典中包含“北京市”和“海淀区”,那么理论上,上面三种形式都可以作为搜索子串输入搜索系统,但是针对本发明的实际情况,在“北京市”或“北京市海淀区”范围进行搜索,实际意义并不大。因此,在本发明的一种实施方式中,可以根据地名词典先对分词单元进行识别,然后滤除识别出的地名文本,仅利用剩下的部分构成搜索子串。例如上面构成的三种子串,分别滤除“北京市”及“海淀区”后,仅剩下“中关村”
在本发明的另一种实施方式中,还可以将搜索子串中明显不具有空间意义的文本滤除,从而避免对后续搜索结果的干扰。常见滤除对象包括:
停用词,例如“的”、“是”等等;
经营范围词,例如“小吃”、“旅游”、“餐饮”等等;
地名后缀,例如“酒店”、“餐馆”等等。
这里同样可以采用预设词典的方式,对不具有空间意义的文本进行过滤,当然,本领域技术人员可以根据实际需求设置词典的具体内容,以上提到的几种类型不应该理解为对本发明技术方案的限定。
在本发明的另一种实施方式中,还可以根据文本的上下文关系,对搜索子串的内容做进一步优化。由于分词结果并不一定和实际的位置描述或名称描述完全一致,因此,可以先利用文本在地图领域的上下文关系,对分词结果进行重新组合后再进行处理,具体方式是:先判断相邻分词单元的共现率是否大于某个预设的阈值,如果是,则先对相应的分词单元进行合并处理,然后利用合并后的分词结果构建搜索子串。
其中,词的共现率也成为紧密度,用于衡量两个词在各种文本中邻接出现频率,是一种统计结果,也可以通过语言模型概率计算得到,这里对于共现率的计算方法不再详细说明。总之,如果两个词在地图相关领域的共现率较高,说明二者很可能是一个整体,例如对于“工商银行”而言,如果将“工商”和“银行”两个词看做两个分词单元处理,就可能会产生歧义。根据本发明方案,“工商”不应该属于“where”部分,而是应该和“银行”一起构成“what”部分。
当然,可以理解的是,在实际应用中,这部分处理也可以在分词阶段实现。也就是说,分词系统本身也可以根据地图系统的应用需求,将“工商银行”等类似内容识别为一个整体,避免过细的拆分对后续的搜索结果造成影响。
以上介绍了几种生成搜索子串的具体改进方法,根据实际需求,这些方法可以分别单独使用,也可以结合使用,本发明对此并不需要进行限定。
S103,在地图数据中,搜索与所述搜索子串文本相匹配的结果;
对于所构成的一个或多个搜索子串,将这些搜索子串的文本作为搜索条件,进行基于文本匹配的检索。由于搜索子串的内容少于原始的搜索请求,也就是说在匹配条件上更为宽松,因此能够得到更多的匹配结果。
例如原始搜索请求文本为“中关村肯德”,如果基于文本匹配检索,那么只有在目标数据的名称信息或者地址信息文本中同时包含“中关村”+“肯德”的情况下,该数据才会被用于生成搜索建议作为搜索结果被召回。而根据本发明实施例,对于处理后得到的搜索子串为“中关村”,仅对“中关村”进行基于文本匹配的检索,可以得到大量的结果,这些地点可能是名称匹配,例如“中关村地铁站”、“中关村大厦”、也可能是地址匹配,例如“中关村大街x号”、“中关村南路x号”等等。
S104,根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
根据本发明实施例,由于搜索子串对应的是“where”部分,因此在成功匹配到的搜索结果中,会有很大比例是在位置上与“where”空间相关的。也就是说,搜索子串对应的搜索结果应该在空间上具有一定的聚合性。例如“中关村大厦”、“中关村大街x号”等等,都是位于“中关村”地区附近的地点。
基于上述情况,可以根据每个搜索结果所处的位置,求出一个位置点空间相对集中的区域,从而得到搜索子串所对应的位置区域,即“where”所对应的区域。
具体而言,由于是在地图数据中进行搜索,因此搜索结果中都应该包括位置信息,例如经纬度等等。首先分别获取每个搜索结果的位置信息,然后可以这些位置点在空间上进行聚类,如果位置点的数量足够多,并且可以得到一个相对集中的区域,即可以将其确定为与“where”所对应的区域。
可以理解的是,如果针对搜索字串搜索得到的位置点数量较少(例如少于5个),则说明该搜索字串很可能不具有空间含义,例如“海淀区工商”可能仅对应1个搜索结果,这种情况下,不会认为“海淀区工商”是具有空间含义的。
其中,空间位置点在空间的算法可以有多种方式实现,在本发明实施例中并不需要对这部分进行详细介绍。但是,结合具体的应用需求,可以从整体策略上进行限定,例如:一种典型的聚类策略如下:
a1)聚集区域中所包含的搜索结果比例达到某个预设的阈值,例如70%、80%等等
b1)聚集区域的大小不超过预设的阈值。
也是就说,如果结果比较多,但是空间分布都比较分散,这种情况无法确定出聚集区域。
当然,上述策略并不是唯一的限制方式,本领域技术人员根据实际需求,还可以制订其他策略,例如,有些地名可能对应多个实际区域,比如北京地区可以找到两个“四道口”,针对这种情况,可以增加以下策略:
a2)存在两个聚集区域,且每个聚集区域中所包含的搜索结果比例都达到某个预设的阈值,例如35%、40%等等。
b2)聚集区域的大小不超过预设的阈值。
利用这种策略,就可以定位出两个名称为“where”的区域,后续可以在这两个区域分别进行搜索。
可以理解的是,理论上还可以继续增加类似的策略,实现对三个、四个地点重名情况的识别,但是在实际应用中,结果越分散,准确程度也越难以保证,因此本领域人员可以根据实际需求灵活设置各种确定聚集区域的策略,本发明实施例对此并不需要进行限制。
S105,在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
根据前面的方案,已经确定了未知地名“where”所对应的区域,进一步在该区域范围内,对“what”部分,进行基于文本匹配的搜索,得到的结果就可以作为对应最初搜索请求的搜索建议。
例如,原始搜索请求文本为“中关村肯德”,由于“中关村”并不在地名词典中,因此无法直接确定“中关村”所对应的区域,根据本发明实施例,利用“中关村”进行文本搜索,可以找到若干类似“中关村大厦”、“中关村大街x号”的地点数据,通过对这些结果的位置分布进行综合处理,可以大致圈定出“中关村”所对应的区域,最后在所圈定出的区域中搜索“肯德”,就可以得到符合原始搜索请求的搜索建议,而这些搜索建议中并不一定包含“中关村”的文本。
可以理解的是,本发明提供的地图数据搜索建议生成方法,本身可以独立使用,也可以与其他的搜索请求处理方法结合使用,例如:
将利用本发明方案所得到的搜索结果与利用纯文本方式的搜索结果取并集,给出最终的搜索结果;
判断纯文本方式是否能够命中结果,如果不能,再进一步采用本发明所提供的方案进行搜索;
判断搜索请求中的地名是否能够识别,如果不能,再进一步采用本发明所提供的方案进行搜索;等等。
另外,根据本发明方案,对于能够确定出位置区域的未知地名,可以将该地名反过来加入地名词典,从而不断丰富地名词典的收录内容,使得地图系统的搜索性能得到持续提升。
下面结合一个具体的实例,对本发明的方案进行说明:
假设用户输入的地图搜索请求为“雁田工商”,该用户所在地为东莞市,其目的是想找“雁田村”附近的工商银行。根据现有技术,由于地址库里面没有收录“雁田”,所以无法识别出其“雁田”所代表的空间含义,从而将这两个词都当成what文本去检索,只有同时包含“雁田”和“工商”的点才会被召回。而根据本发明方案,处理过程如下:
根据S101,对“雁田工商”进行分词,得到两个分词单元分别为 “雁田”和“工商”。其中“雁田”作为“where”候选,“工商”作为“what”候选。
根据S102,对“雁田工商”进行条件检查,然后构建搜索子串。
首先,“雁田工商”大于3个字;
其次,“雁田”不属于停用词、经营范围词、后缀词等;
最后,“雁田”与后面“工商”的邻接共现频率小于预设的阈值0.5,因此“雁田工商”不大可能为专有名词
条件检查没有问题,构建内容为“雁田”的搜索子串。后续步骤将对未知term“雁田”的空间范围进行挖掘。
根据S103,在东莞市下搜索“雁田”,得到M个文本匹配的搜索结果,例如“雁田水库”、“雁田农贸市场”、“雁田商业城”等等。
根据S104,进一步确定“雁田”对应的空间范围,在本实施例中,采用计算核心MBR(Minimum bounding rectangle,最小外包矩形)的算法,基本步骤如下:
1)根据地图数据的存储格式,将地图的xy坐标空间划分为若干面积相等的网格,然后把M个搜索结果poi的坐标映射到网格中。例如网格大小为500m*500m、“雁田”所有的搜索结果位置分布如图2a所示。
2)选择位置点最密集的网格作为起始网格。
图2b所示为所有搜索结果在不同网格的数量分布情况,通过遍历所有的网格,找到点最多的网格所包含点数为4,设该网格为(x_c,y_c)。
3)以(x_c,y_c)为中心向四周扩展,选择附近最密集的网格方向扩展1格,形成较大的网格,如图2c所示
4)迭代执行第3)步迭代进行,直到满足以下任一条件为止:
a)网格边长超过预设的阈值:在本实施例中设置阈值为10km。
b)周边网格不可以继续扩展(不包含poi点)。
迭代过程可以参见图2d—图2g。
5)迭代停止时大网格的矩形就是核心MBR,最终确定的“雁田”对应区域如图2h所示。从图2h最终的结果中可以看出,超过80%的点位于挖掘的MBR内部,且MBR边长未超过10km,因此成功识别出“雁田”的空间范围。
根据S105,在上述MBR范围内搜索“工商”文本,将得到的匹配搜索结果返回给用户,作为与用户当前输入内容“雁田工商”对应的搜索建议,而这些搜索建议的文本并不必须包含“雁田”两个字。
进一步地,可以将“雁田”这个新识别的地名相关信息加入地址库,以便在后续处理搜索请求的过程中可以直接使用。
相应于上面的方法实施例,本发明还提供一种地图数据搜索建议生成装置,参见图3所示,该装置可以包括:分词模块110、搜索子串构建模块120、第一搜索模块130、区域确定模块140和第二搜索模块150。
分词模块110,用于接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
当用户需要获得某个地点的地理位置或其他信息时,应该将该点的完整描述文本作为搜索请求输入电子地图的搜索接口,但是在实际应用过程中,用户往往只需要搜索请求的一部分文本,系统就可以给出针对于这一部分文本的搜索建议。在本发明实施例中,对于用户当前已输入的地图搜索请求文本,首先进行分词处理,将搜索请求文本分为若干个分词单元。
在本发明的一种优选实施方式中,当用户输入一段文本后,可以不立刻进行分词及后续操作,而是判断用户的输入停顿时间是否足够长,这是因为,用户在正常的输入文字过程中,存在一定的停顿是很正常的,如果用户没输入一个词就进行搜索建议,不仅浪费系统资源,而且很可能用户当前并没有完成输入,根本不需要搜索建议。而如果用户输入的停顿时间足够长,例如在超过5秒的时间内,没有任何键盘或鼠标动作,则可以认为用户已经不打算继续输入下去,此时开始执行后续生成搜索建议的操作,则可以很大程度上避免出现无效的处理,不仅节约用户资源,也可以避免生成多余的信息,影响用户的使用体验。
上述方案提供了一种自动触发搜索建议的处理方案,可以理解的是,也可以为用户提供一个操作接口(例如按钮等),用户可以通过该接口手动触发提供搜索建议,这些并不影响本发明整体方案的实施。
在本发明的另一种优选实施方式中,还可以先对搜索请求的文本长度进行检测,判断是否大于某个预设的阈值,如果是,再进一步进行分词处理及后续的操作。如果搜索请求文本过短,一方面可能无法进一步分词,另一方面,即便拆分成功,得到的分词单元也难以独立表明搜索意图,这种情况下,可以不做进一步处理。
搜索子串构建模块120,用于利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
根据用户的习惯,所输入的地图搜索请求一般由两部分组成,即“where+what”的形式,其中:
a)对搜索对象位置的描述,简称where;
b)对搜索对象名称的描述,简称what;
例如“海淀区工商银行”,表示用户想找“海淀区”附近的“工商银行”、“北京市中关村肯德基”表示用户想找要“北京市中关村”附近的“肯德基”,等等。
通过对大量搜索请求的文本构成进行研究,可以发现以下规律:对于一个连续形式的搜索文本串,用于描述位置的词(where)位于一般位于前面,用于描述名称的词则多位于后面;另外“where”可能对应多个具有独立意义的词,例如“北京市+中关村”,而“what”则一般仅对应一个词。
根据上述规律,对于经分词得到的N个分词单元,可以默认将最后一个分词单元当做“what”进行处理,前N-1个分词单元则当做“where”进行处理。在本发明实施例中,对于“where”部分,利用前N-1个分词单元构成一个或多个搜索子串,然后利用该搜索子串进行文本搜索。
最简单的处理方式,是不对where部分做任何处理,直接将前N-1个分词单元作为搜索子串。在本发明的其他实施例中,为了优化搜索结果,还可以采用其他方式生成搜索子串,以下进行详细说明:
对于分词结果中的前i(i=1,2,3…N-1)个分词单元,可以按照从前到后的顺序进行组合,形成可能的地名文本候选。
在本发明的另一种实施方式中,还可以将搜索子串中明显不具有空间意义的文本滤除,从而避免对后续搜索结果的干扰。常见滤除对象包括:
停用词,例如“的”、“是”等等;
经营范围词,例如“小吃”、“旅游”、“餐饮”等等;
地名后缀,例如“酒店”、“餐馆”等等。
这里同样可以采用预设词典的方式,对不具有空间意义的文本进行过滤,当然,本领域技术人员可以根据实际需求设置词典的具体内容,以上提到的几种类型不应该理解为对本发明技术方案的限定。
在本发明的另一种实施方式中,还可以根据文本的上下文关系,对搜索子串的内容做进一步优化。由于分词结果并不一定和实际的位置描述或名称描述完全一致,因此,可以先利用文本在地图领域的上下文关系,对分词结果进行重新组合后再进行处理,具体方式是:先判断相邻分词单元的共现率是否大于某个预设的阈值,如果是,则先对相应的分词单元进行合并处理,然后利用合并后的分词结果构建搜索子串。
当然,可以理解的是,在实际应用中,这部分处理也可以在分词阶段实现。也就是说,分词系统本身也可以根据地图系统的应用需求,将“工商银行”等类似内容识别为一个整体,避免过细的拆分对后续的搜索结果造成影响。
以上介绍了几种生成搜索子串的具体改进方案,根据实际需求,这些方法可以分别单独使用,也可以结合使用,本发明对此并不需要进行限定。
第一搜索模块130,用于在地图数据中,搜索与所述搜索子串文本相匹配的结果;
对于所构成的一个或多个搜索子串,将这些搜索子串的文本作为搜索条件,进行基于文本匹配的检索。由于搜索子串的内容少于原始的搜索请求,也就是说在匹配条件上更为宽松,因此能够得到更多的匹配结果。
例如原始搜索请求文本为“中关村肯德”,如果基于文本匹配检索,那么只有在目标数据的名称信息或者地址信息文本中同时包含“中关村”+“肯德”的情况下,该数据才会被用于生成搜索建议作为搜索结果被召回。而根据本发明实施例,对于处理后得到的搜索子串为“中关村”,仅对“中关村”进行基于文本匹配的检索,可以得到大量的结果,这些地点可能是名称匹配,例如“中关村地铁站”、“中关村大厦”、也可能是地址匹配,例如“中关村大街x号”、“中关村南路x号”等等。
区域确定模块140,用于根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
根据本发明实施例,由于搜索子串对应的是“where”部分,因此在成功匹配到的搜索结果中,会有很大比例是在位置上与“where”空间相关的。也就是说,搜索子串对应的搜索结果应该在空间上具有一定的聚合性。例如“中关村大厦”、“中关村大街x号”等等,都是位于“中关村”地区附近的地点。
基于上述情况,可以根据每个搜索结果所处的位置,求出一个位置点空间相对集中的区域,从而得到搜索子串所对应的位置区域,即“where”所对应的区域。
具体而言,由于是在地图数据中进行搜索,因此搜索结果中都应该包括位置信息,例如经纬度等等。首先分别获取每个搜索结果的位置信息,然后可以这些位置点在空间上进行聚类,如果位置点的数量足够多,并且可以得到一个相对集中的区域,即可以将其确定为与“where”所对应的区域。
可以理解的是,如果针对搜索字串搜索得到的位置点数量较少(例如少于5个),则说明该搜索字串很可能不具有空间含义,例如“海淀区工商”可能仅对应1个搜索结果,这种情况下,不会认为“海淀区工商”是具有空间含义的。
其中,空间位置点在空间的算法可以有多种方式实现,在本发明实施例中并不需要对这部分进行详细介绍。但是,结合具体的应用需求,可以从整体策略上进行限定,例如:一种典型的聚类策略如下:
a1)聚集区域中所包含的搜索结果比例达到某个预设的阈值,例如70%、80%等等
b1)聚集区域的大小不超过预设的阈值。
也是就说,如果结果比较多,但是空间分布都比较分散,这种情况无法确定出聚集区域。
当然,上述策略并不是唯一的限制方式,本领域技术人员根据实际需求,还可以制订其他策略,例如,有些地名可能对应多个实际区域,比如北京地区可以找到两个“四道口”,针对这种情况,可以增加以下策略:
a2)存在两个聚集区域,且每个聚集区域中所包含的搜索结果比例都达到某个预设的阈值,例如35%、40%等等。
b2)聚集区域的大小不超过预设的阈值。
利用这种策略,就可以定位出两个名称为“where”的区域,后续可以在这两个区域分别进行搜索。
可以理解的是,理论上还可以继续增加类似的策略,实现对三个、四个地点重名情况的识别,但是在实际应用中,结果越分散,准确程度也越难以保证,因此本领域人员可以根据实际需求灵活设置各种确定聚集区域的策略,本发明实施例对此并不需要进行限制。
第二搜索模块150,用于在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
根据前面的方案,已经确定了未知地名“where”所对应的区域,进一步在该区域范围内,对“what”部分,进行基于文本匹配的搜索,得到的结果就可以作为对应最初搜索请求的搜索建议。
例如,原始搜索请求文本为“中关村肯德”,由于“中关村”并不在地名词典中,因此无法直接确定“中关村”所对应的区域,根据本发明实施例,利用“中关村”进行文本搜索,可以找到若干类似“中关村大厦”、“中关村大街x号”的地点数据,通过对这些结果的位置分布进行综合处理,可以大致圈定出“中关村”所对应的区域,最后在所圈定出的区域中搜索“肯德”,就可以得到符合原始搜索请求的搜索建议,而这些搜索建议中并不一定包含“中关村”的文本。
参见图4所示,本发明实施例所提供的地图数据搜索建议生成装置,还可以进一步包括:
存储模块160,用于在确定所述搜索子串对应的位置区域后,对该搜索子串的相关信息进行存储。
根据本发明方案,对于能够确定出位置区域的未知地名,可以将该地名反过来加入地名词典,从而不断丰富地名词典的收录内容,使得地图系统的搜索性能得到持续提升。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种地图数据搜索建议生成方法,其特征在于,该方法包括:
接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
在地图数据中,搜索与所述搜索子串文本相匹配的结果;
根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户当前已输入的搜索请求文本后,判断用户输入停顿时间是否大于预设阈值,如果是,则进一步对搜索请求文本进行分词。
3.根据权利要求1所述的方法,其特征在于,所述利用前i个分词单元构成搜索子串,包括:
根据预设的词典,识别分词单元中的地名文本;
利用未识别出的分词单元,构成搜索子串。
4.根据权利要求1所述的方法,其特征在于,所述利用前i个分词单元构成搜索子串,包括:
根据预设的词典,识别分词单元中不具有空间意义的文本;
利用未识别出的分词单元,构成搜索子串。
5.根据权利要求1所述的方法,其特征在于,所述利用前i个分词单元构成搜索子串,包括:
判断相邻分词单元的共现率是否大于预设的阈值,如果是,则先对相应的分词单元进行合并处理后,再构成搜索子串。
6.根据权利要求1所述的方法,其特征在于,根据搜索结果的位置信息,确定所述搜索子串对应的位置区域,包括:
根据多个搜索结果位置的空间分布,得到搜索结果的聚集区域,将该聚集区域确定为所述搜索子串对应的位置区域;
其中,所述聚集区域满足:
该聚集区域中所包含的搜索结果比例达到预设的阈值,以及
该聚集区域的大小不超过预设的阈值。
7.根据权利要求1所述的方法,其特征在于,该方法还包括:
在确定所述搜索子串对应的位置区域后,对该搜索子串的相关信息进行存储。
8.一种地图数据搜索建议生成装置,其特征在于,该装置包括:
分词模块,用于接收用户当前已输入的搜索请求文本,对搜索请求文本进行分词,得到N个分词单元;
搜索子串构建模块,用于利用前i个分词单元构成搜索子串,其中i=1,2,3…N-1;
第一搜索模块,用于在地图数据中,搜索与所述搜索子串文本相匹配的结果;
区域确定模块,用于根据搜索结果的位置信息,确定所述搜索子串对应的位置区域;
第二搜索模块,用于在所确定的位置区域中,搜索与第N个分词单元文本相匹配的结果,利用该结果,生成针对于用户已输入内容的搜索建议。
9.根据权利要求8所述的装置,其特征在于,所述分词模块,具体用于:
接收用户当前已输入的搜索请求文本后,判断用户输入停顿时间是否大于预设阈值,如果是,则进一步对搜索请求文本进行分词。
10.根据权利要求8所述的装置,其特征在于,所述搜索子串构建模块,具体用于:
根据预设的词典,识别分词单元中的地名文本;
利用未识别出的分词单元,构成搜索子串。
11.根据权利要求8所述的装置,其特征在于,所述搜索子串构建模块,具体用于:
根据预设的词典,识别分词单元中不具有空间意义的文本;
利用未识别出的分词单元,构成搜索子串。
12.根据权利要求8所述的装置,其特征在于,所述搜索子串构建模块,具体用于:
判断相邻分词单元的共现率是否大于预设的阈值,如果是,则先对相应的分词单元进行合并处理后,再构成搜索子串。
13.根据权利要求8所述的装置,其特征在于,所述区域确定模块,具体用于:
根据多个搜索结果位置的空间分布,得到搜索结果的聚集区域,将该聚集区域确定为所述搜索子串对应的位置区域;
其中,所述聚集区域满足:
该聚集区域中所包含的搜索结果比例达到预设的阈值,以及
该聚集区域的大小不超过预设的阈值。
14.根据权利要求8所述的装置,其特征在于,该装置还包括:
存储模块,用于在确定所述搜索子串对应的位置区域后,对该搜索子串的相关信息进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310012939.5A CN103927310B (zh) | 2013-01-14 | 2013-01-14 | 一种地图数据搜索建议生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310012939.5A CN103927310B (zh) | 2013-01-14 | 2013-01-14 | 一种地图数据搜索建议生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927310A true CN103927310A (zh) | 2014-07-16 |
CN103927310B CN103927310B (zh) | 2019-03-08 |
Family
ID=51145532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310012939.5A Active CN103927310B (zh) | 2013-01-14 | 2013-01-14 | 一种地图数据搜索建议生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927310B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537106A (zh) * | 2015-01-15 | 2015-04-22 | 新华网股份有限公司 | 基于电子地图的搜索方法及装置 |
CN105069014A (zh) * | 2015-07-10 | 2015-11-18 | 无锡天脉聚源传媒科技有限公司 | 一种地图搜索方法及装置 |
CN105426384A (zh) * | 2015-10-20 | 2016-03-23 | 百度在线网络技术(北京)有限公司 | 一种生成建议目标地点的方法和装置 |
CN105718596A (zh) * | 2016-02-24 | 2016-06-29 | 杨晟志 | 一种基于名人搜索的商业地图 |
CN107491489A (zh) * | 2017-07-18 | 2017-12-19 | 深圳天珑无线科技有限公司 | 一种地图搜索方法、装置及计算机可读存储介质 |
CN108875982A (zh) * | 2017-05-15 | 2018-11-23 | 北京嘀嘀无限科技发展有限公司 | 网络约车地点的搜索方法和装置 |
CN109246623A (zh) * | 2018-08-31 | 2019-01-18 | 张彬 | 一种通信号码补全方法、装置及存储介质 |
CN109522345A (zh) * | 2018-11-19 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 用于显示信息的方法及装置 |
CN110399566A (zh) * | 2018-04-20 | 2019-11-01 | 北京搜狗科技发展有限公司 | 一种位置搜索方法、装置和电子设备 |
CN110472158A (zh) * | 2018-05-11 | 2019-11-19 | 北京搜狗科技发展有限公司 | 一种搜索条目的排序方法和装置 |
CN113761227A (zh) * | 2020-08-12 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 文本数据的搜索方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350013A (zh) * | 2007-07-18 | 2009-01-21 | 北京灵图软件技术有限公司 | 一种地理信息的搜索方法和系统 |
CN101777082A (zh) * | 2010-03-01 | 2010-07-14 | 苏州数字地图网络科技有限公司 | 一种文字信息与地理信息的关联方法及系统 |
-
2013
- 2013-01-14 CN CN201310012939.5A patent/CN103927310B/zh active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537106A (zh) * | 2015-01-15 | 2015-04-22 | 新华网股份有限公司 | 基于电子地图的搜索方法及装置 |
CN104537106B (zh) * | 2015-01-15 | 2019-02-19 | 新华网股份有限公司 | 基于电子地图的搜索方法及装置 |
CN105069014A (zh) * | 2015-07-10 | 2015-11-18 | 无锡天脉聚源传媒科技有限公司 | 一种地图搜索方法及装置 |
CN105069014B (zh) * | 2015-07-10 | 2018-09-25 | 无锡天脉聚源传媒科技有限公司 | 一种地图搜索方法及装置 |
CN105426384A (zh) * | 2015-10-20 | 2016-03-23 | 百度在线网络技术(北京)有限公司 | 一种生成建议目标地点的方法和装置 |
CN105718596A (zh) * | 2016-02-24 | 2016-06-29 | 杨晟志 | 一种基于名人搜索的商业地图 |
CN108875982A (zh) * | 2017-05-15 | 2018-11-23 | 北京嘀嘀无限科技发展有限公司 | 网络约车地点的搜索方法和装置 |
CN107491489A (zh) * | 2017-07-18 | 2017-12-19 | 深圳天珑无线科技有限公司 | 一种地图搜索方法、装置及计算机可读存储介质 |
CN110399566A (zh) * | 2018-04-20 | 2019-11-01 | 北京搜狗科技发展有限公司 | 一种位置搜索方法、装置和电子设备 |
CN110399566B (zh) * | 2018-04-20 | 2024-06-07 | 北京搜狗科技发展有限公司 | 一种位置搜索方法、装置和电子设备 |
CN110472158A (zh) * | 2018-05-11 | 2019-11-19 | 北京搜狗科技发展有限公司 | 一种搜索条目的排序方法和装置 |
CN110472158B (zh) * | 2018-05-11 | 2024-01-30 | 北京搜狗科技发展有限公司 | 一种搜索条目的排序方法和装置 |
CN109246623A (zh) * | 2018-08-31 | 2019-01-18 | 张彬 | 一种通信号码补全方法、装置及存储介质 |
CN109522345A (zh) * | 2018-11-19 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 用于显示信息的方法及装置 |
CN113761227A (zh) * | 2020-08-12 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 文本数据的搜索方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103927310B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927310A (zh) | 一种地图数据搜索建议生成方法及装置 | |
CN103853769A (zh) | 一种地图查询请求处理方法及装置 | |
US7668817B2 (en) | Method and system for data processing with spatial search | |
Shang et al. | User oriented trajectory search for trip recommendation | |
CN102253936B (zh) | 记录用户访问商品信息的方法及搜索方法和服务器 | |
CN110008413B (zh) | 一种交通出行问题查询方法和装置 | |
Moncla et al. | Geocoding for texts with fine-grain toponyms: an experiment on a geoparsed hiking descriptions corpus | |
KR100898454B1 (ko) | 통합 검색 서비스 시스템 및 방법 | |
CN101916294B (zh) | 一种利用语义分析实现精确搜索的方法 | |
CN101350013A (zh) | 一种地理信息的搜索方法和系统 | |
CN105205092A (zh) | 基于瓦片将可搜索地理空间数据分配到客户端装置 | |
CN103473230A (zh) | 服务范围确定方法、物流服务提供方推荐方法及相应装置 | |
CN105183733A (zh) | 一种文本信息的匹配、业务对象的推送方法和装置 | |
KR20120042307A (ko) | 지역기반의 검색어를 추천하는 시스템 및 그 방법 | |
JP6725718B2 (ja) | 位置基盤情報探索方法およびコンピュータ装置 | |
CN103714080A (zh) | 基于空间索引结构树提供空间对象搜索结果的方法和设备 | |
CN103714092A (zh) | 一种地理位置的搜索方法和装置 | |
CN103049495A (zh) | 用于提供与查询序列相对应的搜索建议的方法、装置与设备 | |
CA2709116A1 (en) | Method and system for enabling location entry | |
AU2014228754A1 (en) | Non-deterministic disambiguation and matching of business locale data | |
CN111931077A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114595302A (zh) | 空间要素的多层级空间关系构建方法、装置、介质及设备 | |
CN104965859A (zh) | 一种用于获取地图中的候选地址信息的方法和装置 | |
CN105573971A (zh) | 表格重构装置和方法 | |
CN103116587B (zh) | 一种可缺省关键词的挖掘方法、数据搜索方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |