我想使用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