识别实体的物理位置的制作方法

文档序号:2585964阅读:192来源:国知局
专利名称:识别实体的物理位置的制作方法
识别实体的物理位置
背景技术
在许多应用中,知道企业或其他实体的实际位置是具有重大意义的。例如,地图应用时常显示企业在街道网格上的推测地理位置。这样的地图应用也可以提供街道级图像, 并且可以将企业的名称叠加在其在图像中的推测位置上。地理搜索应用可以提供显示与查询相匹配的企业或实体的位置的地图。为了在地图或图像上显示企业或其他实体的位置,应用必须确定企业的位置。时常从实体的街道地址中推断该位置。例如,特别街道的特别街区可能具有被编号为1到100 的建筑物。如果某实体在编号50上,则能够推断该实体大致在街区的一半位置处。此外, 由于50是偶数,所以通常有可能推断出该实体位于街道的哪一侧。另外,一些数据源可以提供实体的实际纬度和经度坐标。然而,从街道编号或甚至从纬度和经度坐标的某些源中确定实体的位置可能导致不准确的位置。由于编号可能有时朝向街道的一端“聚成一团(bunch up)”,所以街道编号与沿着街区的位置之间的关系可能不是线性的。一些建筑物没有被放置在简单线条上。例如,街道可能具有U形庭院,并且街道上的若干地址可能位于该庭院的周围。至于纬度和经度坐标,虽然这些坐标可以提供精确的外观,但是所报告的实际坐标可能与实体在该街道上的实际位置不相对应。例如,特定坐标可能指的是远离街道向后一直延伸的商店的背面, 或者可能指的是位于商店一侧的停车场。因而,当人们想要确定实体的实际位置时,依靠街道编号或甚至地理坐标可能提供不准确的信息。

发明内容
企业或其他实体的位置可以从各种源中进行挖掘。为了评估实体的位置,街道地图被划分成分段(segment)。每个分段可以是街区的一侧,例如特定街道的北行侧上的 100-199街区。随后,创建似乎位于那个分段上的所有实体的列表。什么实体位于分段上的确定可以基于列出实体的街道地址和/或实体的地理位置的目录。为了识别哪些企业在分段上,其街道地址与那个分段相对应的任何实体可以被推定为在该分段上。此外,对于其地理坐标是可用的实体,实体可以被推定为在它与之最靠近的分段上。地理标记的数据点也可以被放置在分段上。数据点可以是与地理位置相关联的任何类型的信息,诸如照片、微博条目、地理标记的查询、从街边图像中恢复的文本、由企业或其他实体在其自己的网站上报告的位置、由用户或企业所有者标记的在地图上的位置等等。例如,如果用户从其电话中创建表示“我在星巴克”的微博条目,并且其电话上的全球定位系统(GPS)接收机在输入时报告特定位置,则文本“我在星巴克”是地理标记的数据点的示例。每一个这样的地理标记的数据点可以被放置在最接近那个数据点的分段上。(用户位置的收集可以根据从用户获得的适当权限来完成)。分段中地理标记的数据点随后相对于该分段中的实体进行匹配。例如,表示“我在星巴克”的微博条目能够与位于该分段中的星巴克咖啡馆相匹配。或者,条目“我在购买电视”能够与该分段中的任何电子商店相匹配。可以给每一个匹配分配置信度分数,其代表匹配是正确的置信水平。由于每一个数据点与地理位置相关联,所以用于给定实体的匹配的集合代表实体可能位于的地理坐标的集合。一旦已创建了匹配的集合,优化处理通过尝试将用于分段的总的置信度分数最大化来选择实体的实际位置。该优化处理可能受到某些地理约束,诸如确保已知的街道地址编号在整个分段中单调递增。使得总的置信度分数最大化的实体位置的选择可以被推定为实体的实际位置。这些位置可以被记录在数据库中,并且可以由诸如在线地图之类的应用来使用。提供这个概述部分来以简化的形式介绍下面在详细描述部分中进一步描述的概念的选择。这个概述部分并不打算标识所请求保护的主题的关键特征或基本特征,也不打算用于限制所请求保护的主题的范围。


图1是示例街道网格的框图。图2和3 —起是确定实体的位置的示例处理的流程图。图4是显示示例分配位置给实体的框图。图5是响应具有地理条件的搜索请求的示例处理的流程图。图6是可以与这里描述的主题的实施方式结合使用的示例组件的框图。
具体实施例方式许多应用利用企业或其他实体的实际位置。例如,一些搜索应用允许用户搜索满足地理约束的企业。一些地图应用尝试显示某些企业或在城市的摘要地图上或在城市的街道级图像上叠加的精确位置。一些应用组合这些功能,例如,搜索引擎可以响应于查询而显示一组企业,同时也显示这些企业在地图上的位置。一般而言,企业或其他实体的位置从街道地址中进行推断。有关街道网格的某些信息可能是已知的,诸如哪一个街区包含编号为100-199的地址,以及街道的哪一侧包含偶数编号的地址。但是,根据其地址的有关实体位置的任何推断是一种近似。有时,实际的“地面上(on the ground)”数据能够提供企业地址的更精确指示。这样的实际数据 (on-the-ground data)可能包括实体的纬度和经度坐标的实体的自我报告。或者,在另一个示例中,这样的数据可能包括来自个人的陈述,诸如包含文本“我在星巴克”的微博条目以及从中发送该条目的坐标(其中该个人可以给予合适的权限来公开这些坐标)。这里描述的主题允许收获这种实际数据,以便发现企业和其他实体的准确位置。 实体被分配到街道网格的分段。分段是包含特定范围的编号(一般只有奇数编号或偶数编号)的街区。包含在范围100-199中的偶数建筑物编号的“第一街道”的街区是分段的示例。 实体基于其已知的地址被分配给分段,其中可以从目录中获悉这些地址。或者,如果没有地址是可用的,那么能够基于与分段的地理接近度来将实体分配给该分段。此外,可能提供有关实体位置的提示的地理标记的数据点被分配给分段。地理标记的数据点是与已知的地理位置相关联的任何类型的信息,并且这些数据点能够基于其与分段的接近度而被分配给这些分段。在可选的预处理动作中能够群集(cluster)彼此非常靠近并与相同的实体相关联的数据点,从而减少该技术必须处理的数据点的数量。一旦数据点和实体被分配给分段,那么被分配给相同分段的数据点和实体彼此匹配,并且每一个匹配接收到代表数据点与实体真实匹配的确定性水平的分数。例如,表示“我在星巴克”的微博条目将接收到用于匹配星巴克咖啡馆的非常高的确定性分数。表示“我在喝咖啡”的微博条目将或许与星巴克相匹配,但是具有较低的确定性水平,这是因为该条目并没有利用名称来标识匹配实体。一旦已为所有的匹配进行了评分,则可以从数据点的匹配集合中给每一个实体分配沿着该分段的位置。分配位置给实体的处理一般设法将分段的总分最大化,这时常牵涉挑选最高的评分匹配。但是,可能具有某些物理约束条件。例如,街道上的建筑物编号通常单调递增,因此导致地址沿着街道上上下下而非单调递增的地址的位置的分配能够被拒绝。一旦已给实体分配了位置,则可以将这些位置存储在数据库中,该数据库可以由搜索应用、地图应用等来使用。现在转到附图,图1显示示例街道网格100。街道网格100具有若干条街道第一街道、第二街道、第三街道、枫树大道和橡树大道,其中这些大道与这些街道成直角。在两条大道之间的街道的一侧的长度(或者在两个街道之间的大道的一侧上)构成一分段。例如, 分段102是介于枫树大道和橡树大道之间的第二街道的长度。每一条街道具有两个侧边, 并且分段可以指街道的单个侧边。在这个示例中,分段102包括相比于第一街道而言更靠近第三街道的第二街道的侧边。实体(例如,企业)和数据点可以与特定分段相关联。在一个示例中,实体与特定的分段相关联,这是因为(例如,如在目录中列出的)其街道地址对应于该分段,即其地址落入定义该分段的数值范围内。在图1中,利用圆圈的“X”来标记实体,并且显示三个实体104、 106和108。因而,实体104可能是在目录中被列为位于第二街道117号上的餐厅。如果分段102是第二街道的枫树-橡树街区的奇数编号的一侧,那么这个地址将实体104放置于分段102上。另一方面,实体106可能没有已知的地址,但是纬度和经度数据可能将那个实体放置在图1中所示的位置上。由于与分段110相比而言,实体106稍微更靠近分段102 (如利用相应长度的虚线所示),所以实体106被确定为与分段102相关联。另一方面,与分段102相比而言,实体108更靠近分段110 (如利用从实体108延伸的虚线所示),因此实体 108被确定为与分段110相关联。地理标记的数据点也能够与分段相关联。在图1中,地理标记的数据点利用圆圈的“Y”来标记,并且显示两个这样的数据点112和114。地理标记的数据点可以是能与地理位置相关联的任何类型的可用信息。数据点的一些非限制示例包括微博条目(例如,“我在星巴克”加上坐标);查询(例如,“夏普电视的价格加上坐标”);从街边图像中恢复的文本(带有拍摄该图像的坐标);由用户或企业标记的地图上的位置;或在企业网站上找到的地图或其他位置信息。例如,某个人可以从他的电话中生成微博条目。如果该电话配备有GPS接收机或其他类型的位置设备,那么该电话可以利用生成该条目的位置来标记该微博条目。 (携带该电话的人可以被请求给予将以这种方式使用其位置的合适权限)。微博条目的示例是诸如“我在星巴克”之类的陈述。当这样的陈述与地理位置相关联时,使用下面描述的技术,该陈述能够用于识别星巴克咖啡馆的实际位置。但是,在进行有关地理标记的数据点与哪个实体相关的确定之前,那个数据点首先与特定分段相关联。数据点能够被分配给最靠近与那个数据点相关联的位置的分段。例如,在图1中,数据点112和114最靠近分段102,
6因此它们被分配给分段102。一旦实体和数据点已被分配给分段,则这些数据点可以用于帮助确定实体在该分段中的实际地理位置。基本思想是将一个或多个数据点与实体相匹配,从而为实体创建可能位置的列表。例如,假设在分段102上具有星巴克咖啡馆,并且在分段102上也具有三个似乎与星巴克相关联的数据点。例如,一个这样的数据点可能是声称列出星巴克的地理位置的网站。另一个数据点可能是陈述“我在星巴克”的微博条目,其中该条目已利用创建该条目所在的地理位置进行标记了。另一个数据点可能是陈述“我在咖啡馆”的另一个微博条目,即使它没有通过名称而提及星巴克,但这由于星巴克是位于与该数据点相同的分段上的咖啡馆的事实而能够与星巴克相关联。每一个数据点与沿着该分段的不同地理位置相关联,并因而这三个数据点为星巴克提供三个不同的坐标位置。这些不同的坐标可以进行评分,其中分数代表坐标正确识别实体的位置的确定性水平。一旦分段上的所有实体与数据点相匹配以创建这些坐标位置,则从这些坐标中选择这些实体在该分段上的实际位置,以便选择其总分在这些可能性之中是最大的坐标。虽然选择实体的位置的处理可以尝试将总分最大化,但是可以遵从某些限制规则,例如,基于真正的建筑物编号并不“交叉”的假设, 可能具有沿着分段的建筑物编号单调递增的规则。(即,人们将期望在真正街道上的建筑物编号按照诸如“2、6、16、……”的序列继续,并且将不期望遭遇如同“2、6、16、12、……”的序列)。图2和3显示用于执行前述技术的示例处理。在转到图2和3的描述之前,注意 在这里包含的流程图(在图2-4中)参考图1所示的组件利用示例来描述,但是这些处理可以在任何系统中执行并且不限于图1所示的情形。此外,如利用连接方框的线条所示的,图 2-4中的每一个流程图显示其中以特定顺序执行处理的各阶段的示例,但是这些图中显示的各个阶段能够以任何的顺序来执行或采用任何的组合或子组合来执行。图2和3的处理首先检查分段的集合,以确定哪些实体和数据点与那个分段相关联。因而,该处理在202以第一分段开始。该处理随后继续查找与该分段相关联的所有实体 (方框204)和数据点(方框206)。如上所述,如果实体的地址的街道编号是已知的话,确定实体是否与分段相关联可以利用该街道编号来确定(方框208)。或者,作为另一示例,如果实体的地理位置是已知的话,可以基于该实体距分段的地理距离而将该实体与该分段相关联(方框210)。基于街道编号将实体分配给分段的一个示例是如果该分段包含沿着枫树大道的100-198中的偶数编号的地址并且目录将所论述的实体列为具有地址枫树大道142 号,那么该实体的街道编号落入该分段的范围之内,于是该实体能够被分配给那个分段。参考图1,将实体104分配给分段102是使用这种技术将实体分配给分段的示例。基于地理距离而将实体分配给分段的一个示例是假设具有两个分段A和B。如果沿着分段A的某个点与该实体相隔距离D,并且沿着分段B没有点距该实体的距离小于距离D,则将该实体分配给分段A。参考图1,将实体106分配给分段102 (与分段110相对)是基于实体的地理位置来分配实体的示例。注意将数据点分配给分段(方框206)可以使用上面结合方框208和210所描述的相同技术来执行。注意数据点有可能与从其上创建该数据点的设备中获得的地理坐标相关联(例如,利用电话创建并利用在创建该条目时该电话所在的纬度和经度进行标记的微博条目)。因而,数据点通常基于其对于分段的地理接近度而被分配给该分段。但是,如果街道地址信息可用于数据点,那么街道编号信息也能够用于将数据点分配给分段。在实体和数据点已被分配给分段之后,该处理可以确定(在212)是否具有附加的分段要考虑。如果有的话,则该处理前进到下一分段(在214),并返回到方框204,以便将实体和数据点分配给下一分段。如果没有附加的分段要考虑,那么该处理继续至方框216。在方框216,似乎与相同的实体相关联的靠近定位的数据点可以被群集在一起。 (能够进行这些点与相同的实体相关联的某一类型的初步确定,例如,可以初步确定在地理上彼此靠近并且都提及词“咖啡”的两个微博条目与相同的咖啡馆有关)。例如,如果两个数据点具有指示它们彼此间隔五英尺的地理标记(或者满足某一其他的接近标准),则可以假设这两个数据点指的是相同的建筑物。除了位置的靠近之外,其他类型的信息也可以用于确定哪些数据点来自相同的建筑物。例如,如果从相同的WiFi路由器向微博服务发送两个微博条目,则可以确定这两个数据点是在相同的建筑物中生成的。(路由器的身份可以被包括在与这些微博条目一起发送的元数据或分组信息中。个人在使用WiFi热点时同意的协议能够规定将发送这样的信息。这样,能够从用户获得收集这样的信息的适当同意)。作为方框216的结果,似乎彼此非常靠近的若干个点能够被折叠(collapse)在单个地理点中。 这样做减少将不得不利用后续动作进行分析的地理点的数量。通过将显然指的是相同实体的数据点折叠在单个位置中,而不是将显然实质上指的是相同地方的数据点视为它们指的是两个不同的位置,这样做也减小在评估给定实体位于何处时的“噪声”。注意在方框216 执行的群集动作是可选的预处理动作;该处理能够在没有此群集的情况下来执行。(但是, 也注意这里描述的和/或在附图中显示的所有动作是可选的;任何给定的权利要求仅要求那些在那个特定权利要求中明确列出的动作)。在218,实体与特定数据点进行匹配。此匹配处理尝试确定哪些数据点(或多个数据点)似乎指的是特定实体。例如,如果实体之一是星巴克咖啡馆,那么表示“我在星巴克” 的微博条目是能够与星巴克实体相匹配的数据点。此外,表示“我在喝咖啡”的条目也能够与星巴克实体相匹配。注意表示“我在星巴克”的数据点能够被视为利用比仅仅表示“我在喝咖啡”的实体(条目)更大的确定性而与星巴克实体相匹配。但是,如结合图3的后续方框所讨论的,可能具有与相同的实体相匹配的多个数据点,并且(使用下面描述的技术)有可能确定哪个数据点将被选择来代表给定实体的实际位置。在220,可以分配分数给实体与数据点之间的每一个匹配。该分数代表该数据点实际上与该实体相关联的确定性的水平。因而,如果将要匹配的实体是星巴克咖啡馆并且数据点是表示“我在星巴克”的微博条目,则该数据点可以利用非常高的确定性水平与该实体相匹配(因为除非其实际上是在星巴克,否则某人不太可能会说“我在星巴克”)。另一方面, 如果数据点是表示“我在喝咖啡”的条目,则该数据点可能利用中等的确定性水平与星巴克实体相匹配,这是因为创建如此条目的人可能是在星巴克,但是也可能反而是在供应咖啡的不同餐厅。分配分数的特定方式能够使用任何恰当的技术来确定。例如,机器学习技术能够用于确定如何分配分数。因而,能够检查已有的实体(例如,星巴克咖啡馆)和数据点的集合,以便对于出现在数据点中的特定词或短语(例如,“星巴克”、“咖啡”、“拿铁”等等)来确定这些词或短语将与特定类型的实体相关联的可能性有多大。分数分配算法能够对这种类型的数据进行训练。分段中的每一个实体已与其可能的数据点相匹配,并且一旦如上面220所描述的那样已为数据点评分,则可以找到位置的最佳分配(在222)。在一个示例中,位置的最佳分配是在也有可能保持某些物理约束条件的同时沿着使得实体的总分最大化的分段选择实体的位置的方式。图4显示这种分配如何工作的示例。现在转到图4,将理解实体的可能位置是离散的。换言之,在分析与分段相关联的数据点之后,实体与数据点相匹配(在图3的218)。因而,给定实体的可能位置不是沿着分段的任意位置;相反,给定实体的可能位置是与已匹配该实体的数据点相关联的那些位置。如上所解释的,在这种匹配处理发生之后,给定实体可能已被发现与一个以上的数据点相匹配,其中每一个匹配能够被分配“确定性分数”,其反映该数据点和它被认为与之相关的实体实际上相关的可能性。因而,优化位置的处理可以牵涉从沿着分段的可能位置中选择将那个分段上的实体之中总的确定性分数最大化的实际位置。图4使用两个实体来显示这个思想的具体示例。在图4中,特定分段上的两个实体(A和B)已知具有地址枫树大道12号和枫树大道20号。枫树大道12号可能是星巴克咖啡馆实体,而枫树大道20号可能是麦当劳餐厅实体。枫树大道12号已匹配具有三个不同位置的三个数据点402、404和406。(返回参考图 2中的216,注意给定的数据点可能实际上指的是被推断为与相同的实体相关的数据点的群集;这样的数据点可能已被折叠为单个数据点。例如,数据点402可能实际上已从若干微博条目中推导出,其中这些微博条目在彼此相距几英尺内制作或通过相同的WiFi路由器发送)。在这个示例中,每一个数据点402、404和406分别具有与之相关联的确定性分数 0. 1,0. 5和0. 2。类似地,枫树大道20号与四个数据点408、410、412和414相关联,这些数据点分别具有确定性分数0. 6,0. 2,0. 1和0. 5。沿着分段416的这些数据点的地理位置利用其位置来显示(例如,分段416可以是地址0到99的枫树大道的偶数侧边)。如果查看这些数据点及其确定性分数,能够看出这些分数之和能够通过给枫树大道20号分配与数据点408相关联的位置以及给枫树大道12号分配与数据点404相关联的位置而被最大化,这产生0. 6+0. 5=1. 1的总分。但是,这种位置的分配可能违反时常应用于街道的物理条件即,它将较高编号放置在较低编号之前。(图4中在分段416下方的箭头的方向显示从左向右升序的建筑物编号)。因而,给实体分配位置的处理可以搜索不同的解决方案。如能够看出的,选择数据点402和410满足街道编号在整个分段中单调递增的条件,但是这个选择产生低得多的0. 1+0. 2=0. 3的总分。但是,数据点404和414的选择满足单调递增条件,并产生0. 5+0. 5=1. 0的分数。这个分数是在也满足单调递增条件的同时在所显示的示例中能够实现的最大分数。因而,数据点406和414代表最佳的解决方案。因而,返回到图2,在222执行的动作设法在可能也满足各种物理约束条件的同时查找最佳的解决方案。这些约束条件的示例包括没有数据点将与两个独立的企业相匹配的思想(方框224),并且也包括沿着街道的编号在某个方向单调递增的思想(方框226)。如上面结合图4所证明的,这些条件中的后一个条件(其施加是可选的)意味着诸如12、20、32、 36,72之类的序列是合法的(72、36、32、20、12也是如此,这是因为那个序列在相反的方向递增);但是12、32、20、36、72将不是合法的,这是因为这些数字并没有在一个方向单调递
+曰O一旦选择数据点至企业的最佳分配,则在228生成用于这些实体的地理坐标的集合。实体的这些地理坐标是222的优化处理为那个企业选择的数据点相对应的坐标。
当处理(诸如上述的处理)用于将地理位置分配给实体时,所分配的位置可以采用任何的方式来使用。但是,这样的一组位置的一个示例应用是响应具有地理条件的搜索请求。图5显示对这样的搜索请求进行响应的示例处理。在502,实体位置的数据库被创建。例如,这样的数据库可以使用上面结合图2和 3所描述的处理来创建,但是该数据库也能够使用任何适当的处理来创建。在504,接收查询,其中该查询具有地理分量。例如,“咖啡98052”是带有地理分量的查询它寻找“咖啡”, 但是它也规定有关(通过包括为Redmond,Washington的邮政编码的“98052”)寻找的结果的一些地理特征。“Coffee Redmond, WA”是带有地理分量的查询的另一个示例。此外,如果有关查询的地理上下文的一些信息是已知的(例如,用户正在其当前位置是已知的无线电话上输入查询,或者用户先前已注册了特定的城市作为他或她的默认位置),那么甚至查询“咖啡”可以被理解为具有地理分量,这是因为实际的位置将是不言而喻的(即使没有明确说明)。在506,数据库用于生成响应于该查询的结果。例如,数据库可能具有所有咖啡馆及其相关联位置的列表。如果该查询寻找在Redmond,Washington中的咖啡馆,那么该查询结果能够是Redmond,Washington中的所有咖啡馆的列表(或者,例如,在城镇中心的一英里半径范围内的所有咖啡馆)。这些结果也可以包括至这些咖啡馆的地图,其显示这些咖啡馆在该地图上的实际位置(或者,至少,已利用诸如上面结合图2和3描述的处理所推定的位置)。此外,这些结果可能包括或者链接到这些咖啡馆的街道级视图,并且某一类型的视觉标记(例如,“图钉”图形或箭头)能够被叠加在街道级图像上,以显示特定咖啡馆的实际的(或推定的)位置。无论结果采取的形式如何,在508,这些结果可以有形地被提供给用户。例如,这些结果可以被传送给用户或者以耐用的、非暂时性的方式进行存储。图6显示其中可以部署在这里描述的主题的各方面的示例环境。计算机600包括一个或多个处理器602以及一个或多个数据记忆组件604。一个或多个处理器602通常是微处理器,诸如在个人台式或膝上计算机、服务器、手持计算机或另一类型的计算设备中找到的那些微处理器。一个或多个数据记忆组件604是能够短期或长期存储数据的组件。一个或多个数据记忆组件604的示例包括硬盘、可拆卸磁盘(包括光盘和磁盘)、易失性和非易失性随机存取存储器(RAM)、只读存储器(ROM)、闪存、磁带等等。 一个或多个数据记忆组件是计算机可读存储媒体的示例。计算机600可以包括显示器612 或者与显示器612相关联,其中显示器可以是阴极射线管(CRT)监视器、液晶显示器(IXD) 监视器或任何其他类型的监视器。 软件可以存储在一个或多个数据记忆组件604中,并且可以运行在一个或多个处理器602上。这样的软件的示例是实体定位软件606,其可以实现上面结合图1-5所描述的一些或所有的功能,但是能够使用任何类型的软件。例如,软件606可以通过一个或多个组件来实现,其中组件可以是分布式系统中的组件、单独的文件、单独的功能、单独的对象、单独的代码行等等。其中程序被存储在硬盘上、被加载到RAM中以及被运行在计算机的一个或多个处理器上的计算机(例如,个人计算机、服务器计算机、手持计算机等等)代表图6中所描绘的情形,但是在这里描述的主题并不限于这个示例。 在这里描述的主题能够被实现为存储在一个或多个数据记忆组件604中并运行
10在一个或多个处理器602上的软件。作为另一个示例,该主题能够被实现为存储在一个或多个计算机可读存储媒体上的指令。诸如光盘或磁盘之类的有形媒体是存储媒体的示例。 这些指令可以存在于非暂时性媒体上。这样的指令当由计算机或其他机器运行时可以导致计算机或其他机器执行方法的一个或多个动作。用于执行这些动作的指令可以存储在一个介质上,或者能够在多个媒体上进行展开,因此这些指令可能一起出现在一个或多个计算机可读存储媒体上,而无论所有的指令是否碰巧在相同的介质上。此外,在这里描述的任何动作(无论是否在图中显示)可以由处理器(例如,一个或多个处理器602)作为方法的一部分来执行。因而,如果在这里描述动作A、B和C,那么可以执行包括A、B和C的动作的方法。此外,如果在这里描述动作A、B和C,那么可以执行包括使用处理器来执行A、B和C的动作的方法。在一个示例环境中,计算机600可以通过网络608而通信地连接到一个或多个其他设备。可能在结构上与计算机600相类似的计算机610是能够被连接到计算机600的设备的示例,但是其他类型的设备也可以如此进行连接。虽然以特定于结构特征和/或方法动作的语言描述了主题,但是将明白在所附的权利要求书中定义的主题不一定限于上述的特定特征或动作。相反,上述的特定特征和动作被披露为实现这些权利要求的示例形式。
权利要求
1.一种识别实体的位置的方法,该方法包括查找(204)落入地图(100)的分段(102)内的实体(104,106); 查找(206)落入所述地图(100)的所述分段(102)内的地理标记的数据点(112,114); 查找(218)所述实体(104,106)与所述数据点(112,114)之间的匹配集合; 对于所述匹配集合中的每一个匹配,给所述匹配分配(220)代表所述匹配中的数据点 (112)与所述匹配中的实体(104)相对应的确定性水平的分数; 从所述匹配集合中创建(222)所述实体的位置的最佳分配; 基于所述最佳分配,生成(228)所述实体在所述分段中的位置坐标;以及将所述位置坐标存储在数据库(506)中。
2.权利要求1的方法,其中查找落入所述分段内的实体和数据点包括基于与任何其他的分段相比、实体或数据点更靠近所述分段,将所述实体或所述数据点分配给所述分段。
3.权利要求1的方法,其中查找落入所述分段内的实体包括基于实体具有落入数值范围内的地址,将所述实体分配给所述分段,其中所述分段对应于落入所述数值范围内的地址。
4.权利要求1的方法,其中所述最佳分配的所述创建包括在满足物理约束条件的同时,从所述匹配集合中选择导致的总分将比由于所述匹配之中任何其他的位置选择而导致的总分更高的位置。
5.权利要求4的方法,其中所述物理约束条件包括没有两个实体位于相同位置上的条件。
6.权利要求4的方法,其中所述物理约束条件包括地址编号在通过所述分段的方向单调递增的条件。
7.权利要求1的方法,进一步包括群集所述分段上满足接近标准并且被确定为与相同的实体相关联的地理标记的数据点ο
8.权利要求1的方法,其中所述地图代表街道网格。
9.权利要求1的方法,其中所述分段是街道在街道网格的一个街区上的侧边。
10.权利要求1的方法,其中分段被定义为街道上位于数字范围内并且是偶数编号的地址或被定义为所述街道上位于所述数字范围内是奇数编号的地址。
11.权利要求1的方法,进一步包括 接收具有地理分量的搜索查询;使用所述数据库来生成响应于所述查询的结果集合;以及给用户提供所述结果集合。
12.权利要求1的方法,其中所述数据点包括微博条目,其中所述微博条目中的每一个包括由用户提供的文本以及从中制作所述微博条目的位置的纬度和经度坐标。
13.一种计算机可读介质,其具有用于执行权利要求1-12之中任一权利要求的方法的计算机可执行指令。
14.一种用于识别实体的位置的系统,该系统包括 存储器(604);处理器(602);和存储在所述存储器(604)中并运行在所述处理器(604)上的组件(606),其中所述组件将实体(104,106)的集合和地理标记的数据点(112,114)的集合分配(204,206)给街道网格(100)的分段(102),所述分段(102)是数值范围内的街道的偶数或奇数侧边,其中所述组件(606)或基于地址或基于所述实体(104,106)和所述地理标记的数据点(112,114) 与所述分段(102)的地理接近度而将所述实体(104,106)和所述地理标记的数据点(112, 114)分配给所述分段(102),其中所述组件(606)创建在相同分段(102)中在实体(104, 106)与地理标记的数据点(112,114)之间的匹配集合,并且给所述匹配集合中的每一个匹配分配(220)代表所述匹配中的地理标记的数据点(112)与所述匹配中的实体(104)相对应的确定性水平的分数,其中所述组件(606)从所述匹配中查找创建比任何其他的位置分配都更高的总分、满足物理约束条件(2 ,2 )的所述实体(104,106)的位置分配,以及其中所述组件(606)将所述位置集合存储在数据库中。
15.权利要求14的系统,其中所述物理约束条件包括所述实体的地址在通过所述分段的方向单调递增的条件。
全文摘要
可以基于各种类型的数据给企业和其他实体分配地理位置。在一个示例中,实体与街道网格中的分段相关联。此外,数据点(例如,地理标记的博客条目或其他的在线信息)与街道网格中的分段相关联。对于给定的分段,数据点与实体进行比较,以识别数据点与实体之间的可能匹配。给每一个匹配分配分数,并且每一个匹配代表用于给定实体的可能的物理位置。基于实体的哪一个分配在满足一个或多个物理约束条件的同时优化该分段的总分而从这些匹配之中分配实体在街道上的位置。
文档编号G09B29/10GK102411615SQ20111033404
公开日2012年4月11日 申请日期2011年10月28日 优先权日2010年10月31日
发明者埃普什泰因 B., 奥菲克 E. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1