package clean import ( "data_ai/ul" "fmt" "strings" ) // 清洗地域 func CleanRegion(area string, city string) (string, string) { area = fieldReg1.ReplaceAllString(area, "") city = fieldReg1.ReplaceAllString(city, "") if area == "无" { area = "" } if city == "无" { city = "" } new_area, new_city := "", "" //确定省份 if area != "" { if ul.S_ProvinceDict[area] != nil { new_area = area } else { for k, _ := range ul.S_ProvinceDict { if strings.Contains(area, k) { new_area = k break } } } } //确认城市-从下往上补 if city != "" { if ul.S_CityDict[city] != nil { new_city = city new_area = ul.S_CityDict[city][0].P_Name } else { //是否存在包含关系 for k, v := range ul.S_CityDict { if strings.Contains(k, city) || strings.Contains(city, k) { for _, v1 := range v { new_area = v1.P_Name new_city = k } } } } if new_area != "" && new_city != "" { return new_area, new_city } //可能抽取区县信息 if ul.S_DistrictDict[city] != nil { districts := ul.S_DistrictDict[city] for _, v := range districts { if new_area == "" { new_area = v.P_Name new_city = v.C_Name return new_area, new_city } else { if new_area == v.P_Name { new_city = v.C_Name return new_area, new_city } } } } else { //判定为简称区县,补充在校验... arr := []string{} arr = append(arr, fmt.Sprintf("%s区", city)) arr = append(arr, fmt.Sprintf("%s县", city)) arr = append(arr, fmt.Sprintf("%s市", city)) for _, v := range arr { if ul.S_DistrictDict[v] != nil { districts := ul.S_DistrictDict[v] for _, v1 := range districts { if new_area == "" { new_area = v1.P_Name new_city = v1.C_Name break } else { if new_area == v1.P_Name { new_city = v1.C_Name break } } } } } } } if new_area == "北京" && new_city == "" { new_city = "北京市" } else if new_area == "天津" && new_city == "" { new_city = "天津市" } else if new_area == "上海" && new_city == "" { new_city = "上海市" } else if new_area == "重庆" && new_city == "" { new_city = "重庆市" } else { } return new_area, new_city }