【问题标题】:Parsing addresses with ambiguous data用不明确的数据解析地址
【发布时间】:2015-12-29 06:57:31
【问题描述】:

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

想法是在将这两个数据点添加到数据库/存储之前验证它们。

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

  2. 问题出在地址上。

没有标准化的地址行。模棱两可。

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

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

我能想到的可能解决方案

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

  • 发声。印度的数据也不是很准确。

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

查询

从村民那里得到一个可能拼写错误或不正确或缩写的村庄名称,我如何获得正确的村庄正式名称和位置?

有什么方法可以清理错误的位置/地址或解码复杂/格式不正确的地址?

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

【问题讨论】:

  • 对我来说,最好的办法就是使用拼写检查器。使用包含印度城市、城镇和村庄描述的 wiki 文章来训练拼写检查器。
  • 感谢@Riyaz。它将解决可能的拼写错误。我想这并不能解决复杂/格式不正确的地址的问题。这是主要问题。对此有什么想法吗?

标签: string parsing machine-learning gis addressbook


【解决方案1】:

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

要解决您的问题,您需要以下形式的训练数据:

informal_text              village_name

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多