CoolFace
Apppublic

gnudevx/Recommendation-System

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
cities.py104 linesDownload Raw Back to root
1# Vietnamese cities and provinces for location matching2VIETNAMESE_CITIES = {3    # Major cities4    "hà nội": ["ha noi", "hn", "hanoi"],5    "hồ chí minh": ["ho chi minh", "hcm", "saigon", "sài gòn", "sai gon", "sg"],6    "đà nẵng": ["da nang", "danang", "dn"],7    "cần thơ": ["can tho", "canho", "ct"],8    "hải phòng": ["hai phong", "haiphong", "hp"],9    10    # Provinces11    "bình dương": ["binh duong", "bd"],12    "đồng nai": ["dong nai"],13    "bà rịa - vũng tàu": ["ba ria vung tau", "vung tau", "vt"],14    "long an": [],15    "tiền giang": ["tien giang"],16    "bến tre": ["ben tre"],17    "trà vinh": ["tra vinh"],18    "vĩnh long": ["vinh long"],19    "an giang": [],20    "kiên giang": ["kien giang"],21    "cà mau": ["ca mau"],22    "sóc trăng": ["soc trang"],23    24    "quảng ninh": ["quang ninh"],25    "hải dương": ["hai duong"],26    "hưng yên": ["hung yen"],27    "hà nam": ["ha nam"],28    "nam định": ["nam dinh"],29    "ninh bình": ["ninh binh"],30    "thanh hoá": ["thanh hoa"],31    "nghệ an": ["nghe an"],32    "hà tĩnh": ["ha tinh"],33    "quảng bình": ["quang binh"],34    "quảng trị": ["quang tri"],35    "thừa thiên huế": ["thua thien hue", "hue"],36    37    "quảng nam": ["quang nam"],38    "quảng ngãi": ["quang ngai"],39    "bình định": ["binh dinh"],40    "phú yên": ["phu yen"],41    "khánh hoà": ["khanh hoa", "nha trang"],42    "ninh thuận": ["ninh thuan"],43    "bình thuận": ["binh thuan"],44    45    "đắk lắk": ["dak lak"],46    "đắk nông": ["dak nong"],47    "gia lai": ["gia lai"],48    "kon tum": ["kon tum"],49    "lâm đồng": ["lam dong", "da lat"],50    51    "bắc kạn": ["bac kan"],52    "cao bằng": ["cao bang"],53    "lạng sơn": ["lang son"],54    "bắc giang": ["bac giang"],55    "phú thọ": ["phu tho"],56    "vĩnh phúc": ["vinh phuc"],57    "tuyên quang": ["tuyen quang"],58    "yên bái": ["yen bai"],59    "sơn la": ["son la"],60    "hòa bình": ["hoa binh"],61    "điện biên": ["dien bien"],62    "lai châu": ["lai chau"],63    64    "thái nguyên": ["thai nguyen"],65    "bắc thái": ["bac thai"],66}67 68def get_canonical_city(text):69    """Extract canonical city name from text"""70    if not text:71        return ""72    73    text_normalized = text.lower().strip()74    text_normalized = text_normalized.replace("ă", "a").replace("â", "a")75    text_normalized = text_normalized.replace("ê", "e").replace("ế", "e").replace("è", "e")76    text_normalized = text_normalized.replace("ô", "o").replace("ơ", "o")77    text_normalized = text_normalized.replace("ư", "u").replace("ũ", "u")78    text_normalized = text_normalized.replace("đ", "d")79    text_normalized = text_normalized.replace("ị", "i").replace("ị", "i")80    81    for canonical, aliases in VIETNAMESE_CITIES.items():82        canonical_norm = canonical.lower()83        if canonical_norm in text_normalized:84            return canonical_norm85        for alias in aliases:86            if alias.lower() in text_normalized:87                return canonical_norm88    89    return ""90 91 92def is_city_match(cv_city, job_city):93    """Check if two city references match"""94    if not cv_city or not job_city:95        return False96    97    cv_canonical = get_canonical_city(cv_city)98    job_canonical = get_canonical_city(job_city)99    100    if cv_canonical and job_canonical:101        return cv_canonical == job_canonical102    103    return False104