我有通过表格从村民那里收集的电话号码和村名的数据。由于各种原因,数据不准确或不完整。
我们的想法是在将这两个数据点添加到数据库/存储之前对其进行验证。
电话号码正在通过编程方式进行格式化,并通过外部API进行验证。 (这给了我服务提供商和省份信息)。
问题在于地址。
没有标准化的地址行。模糊不清。
存在数字街道名称和门号。
输入字符串有时会包含收件人。
我能想到的可能解决方案
反向地理编码有帮助。但就印度语而言,这并不是很准确。 Google TOS还禁止自动查询。 (如果我错了,请纠正我)
Soundexing。再次对印度数据不太准确。
我理解这种高度非结构化的数据很难,但我正在寻找一种方法来实现至少足够的准确度,以便将地址映射到最近的兴趣点。
查询
鉴于村民的村名可能拼写错误或错误或缩写,我如何获得村庄和地点的正确官方名称?
任何可能的方法来清理错误的位置/地址或解码复杂/格式不正确的地址?
是否有任何机器学习解决方案可以提供帮助,以便我可以从每次计算中学习?(我对ML有0知识,如果我在这里错了,请纠正我。)
答案 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来训练分类器。