使用模糊数据解析地址

时间:2015-12-29 06:57:32

标签: string parsing machine-learning gis addressbook

我有通过表格从村民那里收集的电话号码和村名的数据。由于各种原因,数据不准确或不完整。

我们的想法是在将这两个数据点添加到数据库/存储之前对其进行验证。

  1. 电话号码正在通过编程方式进行格式化,并通过外部API进行验证。 (这给了我服务提供商和省份信息)。

  2. 问题在于地址。

  3. 没有标准化的地址行。模糊不清。

    存在数字街道名称和门号。

    输入字符串有时会包含收件人。

    我能想到的可能解决方案

    • 反向地理编码有帮助。但就印度语而言,这并不是很准确。 Google TOS还禁止自动查询。 (如果我错了,请纠正我)

    • Soundexing。再次对印度数据不太准确。

    我理解这种高度非结构化的数据很难,但我正在寻找一种方法来实现至少足够的准确度,以便将地址映射到最近的兴趣点。

    查询

    鉴于村民的村名可能拼写错误或错误或缩写,我如何获得村庄和地点的正确官方名称?

    任何可能的方法来清理错误的位置/地址或解码复杂/格式不正确的地址?

    是否有任何机器学习解决方案可以提供帮助,以便我可以从每次计算中学习?(我对ML有0知识,如果我在这里错了,请纠正我。)

1 个答案:

答案 0 :(得分:1)

您想要的是一个与非正式文本输入一起使用的地理定位系统。我之前使用了Text-based geolocation model在Twitter数据上训练过。

要解决您的问题,您需要以下列形式提供培训数据:

function getAddressComponent_test() {
  var address = '1600 Amphitheatre Parkway, Mountain View, CA';
  Logger.log(getAddressComponent(address, 'administrative_area_level_2'));
}

如果您可以访问此类数据(例如,使用可以进行地理定位的地址),那么您可以训练基于文本的分类器,该分类器给出新的非正式地址可以预测它指向的地图上的位置。在你的情况下,每个村庄都成为一个类别标签您可以使用scikit-learn来训练分类器。