我想使用pycountries库将国家名称数据列表转换为ISO3166国家/地区代码(alpha3)。我的基本功能是:pycountries:将国家/地区名称(可能不完整!)转换为国家代码
import pycountries as pc
def guess_country(data, output='alpha3', verbose=False):
#Check Data isn't already in Alpha3
try:
country = pc.countries.get(alpha3=data)
return country
except:
pass #KeyError Raised, data doesn't directly match
#Check if Country is Actual CountryName
try:
country = pc.countries.get(name=data)
return country
except:
pass #KeyError Raised, data doesn't directly match
#Check RegExpr of 'data' in an attempt to match
的问题是国家或地区名称的数据是比较脏...样品的短名单是
GUATMAL,中国T,COLOMB,墨西哥,HG KONG
有没有人知道是否有一个包返回给定cntry_name的最佳'猜测'匹配?我会很高兴有人因为困难而被拒绝(即中国T - >台湾)。如果best_guess返回关于“猜测”的确定性,那将会很好。
我想我可能会根据'pycontries'数据库进行映射,并使用'difflib'来获得最接近的匹配。应该是相当直接的... – root 2013-03-13 06:03:00
我会阅读difflab ...谢谢。正在考虑使用naivebayes将基于'字母'的猜测词作为特征集返回,这会让我对猜测的准确性有所了解 – sanguineturtle 2013-03-13 06:48:51