我追溯清理Offer Drive产品的大量数据(http://offerletter.io/drive.html)。我试图规范自由形式的位置"字段,以确定提交的位置是否属于美国(或不)。
值的格式可能不同,但所有值都是真实的,例如
San Francisco, CA
Milwaukee
Bangalore
我的问题是,是否有一种很好的方法(一些API或库)可以根据用户提交的字符串智能地对这些进行规范化,这样我就可以说:
normalized = GeoNormalize.normalize("San Francisco")
return normalized.country() == "United States"
我非常喜欢chronyk
(https://github.com/KoffeinFlummi/Chronyk),对于地点来说,这样的事情会很棒。
答案 0 :(得分:2)
有很多,通常由地图或GIS供应商提供。
例如,Google地理编码服务接受字符串并以标准格式返回排名的位置集:
https://developers.google.com/maps/documentation/geocoding/?csw=1#Geocoding
雅虎也有一个:
像我说的那样,有很多很多。它们通常可以免费使用,但在某一点之后会产生使用费。答案 1 :(得分:1)
尝试geograpy。
如果您使用python 3.x并在安装过程中遇到问题,请尝试:
python3 -m pip3 install git+https://github.com/reach2ashish/geograpy.git
python3 geograpy-nltk