我在包含位置名称的数据库中有一个“有点”丑陋的字段。例如,麦迪逊广场花园也被命名为“麦迪逊广场花园”等。
我正在尝试提取数据,以便获得所有位置的准确列表。为了实现这一点,我所做的是创建一个 sql 查询,在其中加入每个位置的事件,然后按位置名称分组,并且只使用具有 10 个以上条目的位置组(过滤掉一些非可靠的条目),但我仍然会得到一些非常不同的拼写和条目,从而导致重复的属性/位置。
我的 SQL 查询看起来像这样
"选择位置,COUNT(*) FROM 位置 在locations.lid=events.lid 上加入事件 哪里`长` 之间 - 74.419382608696 和 - 73.549817391304 和纬度 40.314017391304 之间 和 41.183582608696 按位置分组 计数(*)>10
运行此查询会提供 3 个不同的条目“麦迪逊广场花园”、“麦迪逊广场花园”、“麦迪逊广场花园”。当然,这只是针对麦迪逊广场花园的入口。大多数条目有多个略有不同的拼写。
我通过纬度/经度限制我的搜索,因此我不会在不同城市中获得具有相同名称的位置。
有没有办法使用正则表达式或 GROUP 子句中的东西来使这些分组一致?即使只是在分组之前删除尾随的“s”和“the”也可能是一个很大的好处。
我打算获取每个结果,然后对纬度/长期范围内的所有位置进行正则表达式匹配?
幸运的是,我有足够多的与地点相关联的事件,因此我能够在一定程度上识别出主要地点。
从半结构化数据中提取位置的任何其他建议?数据是从各种来源废弃的,所以我无法控制输入。