|
@@ -89,10 +89,10 @@ type ExtractTask struct {
|
|
|
ResultChanel chan bool //抽取结果详情
|
|
|
sync.RWMutex
|
|
|
ResultArr [][]map[string]interface {
|
|
|
- } //抽取结果详情
|
|
|
+ } //抽取结果详情
|
|
|
BidChanel chan bool //抽取结果
|
|
|
BidArr [][]map[string]interface {
|
|
|
- } //抽取结果
|
|
|
+ } //抽取结果
|
|
|
BidTotal int //结果数量
|
|
|
|
|
|
RecogFieldMap map[string]map[string]interface {
|
|
@@ -100,7 +100,7 @@ type ExtractTask struct {
|
|
|
FidClassMap map[string][]map[string]interface {
|
|
|
} //分类
|
|
|
CidRuleMap map[string][]map[string]interface {
|
|
|
- } //规则
|
|
|
+ } //规则
|
|
|
AuditFields []string //需要审核的字段名称
|
|
|
|
|
|
SiteCityMap map[string]*SiteCity //站点对应的省市区
|
|
@@ -1000,30 +1000,14 @@ func InitProvince(version string) map[string]interface{} {
|
|
|
return fn
|
|
|
}
|
|
|
|
|
|
-//加载城市简称
|
|
|
-func InitCitySim(version string) map[string]map[string]interface{} {
|
|
|
+//加载所有
|
|
|
+func InitProvincesx() []map[string]interface{} {
|
|
|
defer qu.Catch()
|
|
|
- list, _ := db.Mgo.Find("tagdetailinfo", `{"s_type":"citysim","s_version":"`+version+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
- fn := map[string]map[string]interface{}{}
|
|
|
- for _, v := range *list {
|
|
|
- name := qu.ObjToString(v["s_name"])
|
|
|
- tmp := v["content"].(map[string]interface{})
|
|
|
- fn[name] = tmp
|
|
|
- }
|
|
|
- return fn
|
|
|
-}
|
|
|
-
|
|
|
-//加载城市全称
|
|
|
-func InitCityAll(version string) map[string]map[string]interface{} {
|
|
|
- defer qu.Catch()
|
|
|
- list, _ := db.Mgo.Find("tagdetailinfo", `{"s_type":"cityall","s_version":"`+version+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
- fn := map[string]map[string]interface{}{}
|
|
|
- for _, v := range *list {
|
|
|
- name := qu.ObjToString(v["s_name"])
|
|
|
- tmp := v["content"].(map[string]interface{})
|
|
|
- fn[name] = tmp
|
|
|
- }
|
|
|
- return fn
|
|
|
+ provinces := make([]map[string]interface{}, 0)
|
|
|
+ ju.AddrsSess.Find(map[string]interface{}{
|
|
|
+ "Remarks": nil,
|
|
|
+ }).All(&provinces)
|
|
|
+ return provinces
|
|
|
}
|
|
|
|
|
|
//加载站点库site城市信息
|
|
@@ -1065,106 +1049,183 @@ func (e *ExtractTask) InitCityInfo() {
|
|
|
e.ProvinceMap[p1] = k //华中科技大学:湖北
|
|
|
}
|
|
|
}
|
|
|
+ alldata := InitProvincesx()
|
|
|
+
|
|
|
+ fnx := make([]map[string]interface{}, 0)
|
|
|
+ citys_maps := make(map[string][]map[string]interface{}, 0)
|
|
|
+ districts_maps := make(map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ towns_maps := make(map[string]map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ jwhs_maps := make(map[string]map[string]map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ for _, v := range alldata {
|
|
|
+ codenum := len(v["code"].(string))
|
|
|
+ province := qu.ObjToString(v["province"])
|
|
|
+ city := qu.ObjToString(v["city"])
|
|
|
+ district := qu.ObjToString(v["district"])
|
|
|
+ town := qu.ObjToString(v["town"])
|
|
|
+ if codenum == 2 {
|
|
|
+ fnx = append(fnx, v)
|
|
|
+ } else if codenum == 4 {
|
|
|
+ citys_maps[province] = append(citys_maps[province], v)
|
|
|
+ } else if codenum == 6 {
|
|
|
+ if districts_maps[province] == nil {
|
|
|
+ districts_maps[province] = make(map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ districts_maps[province][city] = append(districts_maps[province][city], v)
|
|
|
+ } else if codenum == 9 {
|
|
|
+ if towns_maps[province] == nil {
|
|
|
+ towns_maps[province] = make(map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ if towns_maps[province][city] == nil {
|
|
|
+ towns_maps[province][city] = make(map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ towns_maps[province][city][district] = append(towns_maps[province][city][district], v)
|
|
|
+ } else if codenum == 12 {
|
|
|
+ if jwhs_maps[province] == nil {
|
|
|
+ jwhs_maps[province] = make(map[string]map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ if jwhs_maps[province][city] == nil {
|
|
|
+ jwhs_maps[province][city] = make(map[string]map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ if jwhs_maps[province][city][district] == nil {
|
|
|
+ jwhs_maps[province][city][district] = make(map[string][]map[string]interface{}, 0)
|
|
|
+ }
|
|
|
+ jwhs_maps[province][city][district][town] = append(jwhs_maps[province][city][district][town], v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//初始化城市全称
|
|
|
- fn2 := InitCityAll(e.TaskInfo.Version)
|
|
|
- for k, v := range fn2 {
|
|
|
+ for _, provinces := range fnx {
|
|
|
+ all_province := qu.ObjToString(provinces["all_province"]) //省全称
|
|
|
+ jc_province := qu.ObjToString(provinces["province"]) //省简称
|
|
|
//加载省信息
|
|
|
- e.Trie_Full_Province.AddWords(k) //加入省全称Trie(k:浙江省)
|
|
|
+ e.Trie_Full_Province.AddWords(all_province) //加入省全称Trie(k:浙江省)
|
|
|
p := &Province{}
|
|
|
- p.Name = k //省全称:浙江省
|
|
|
- p.Brief = v["brief"].(string) //省简称:浙江
|
|
|
- e.Trie_Sim_Province.AddWords(p.Brief) //加入省简称Trie(k:浙江)
|
|
|
- e.ProvinceMap[k] = p.Brief //浙江省:浙江
|
|
|
- e.ProvinceBriefMap[p.Brief] = p //浙江:省信息{}
|
|
|
- p.Cap = v["captial"].(string) //省会(杭州)
|
|
|
+ p.Name = all_province //省全称:浙江省
|
|
|
+ p.Brief = jc_province //省简称:浙江
|
|
|
+ e.Trie_Sim_Province.AddWords(jc_province) //加入省简称Trie(k:浙江)
|
|
|
+ e.ProvinceMap[all_province] = jc_province //浙江省:浙江
|
|
|
+ e.ProvinceBriefMap[jc_province] = p //浙江:省信息{}
|
|
|
+ if province_alias, ok := provinces["province_alias"].([]interface{}); ok {
|
|
|
+ for _, vprovince_alias := range province_alias {
|
|
|
+ e.ProvinceBriefMap[qu.ObjToString(vprovince_alias)] = p
|
|
|
+ }
|
|
|
+ }
|
|
|
//加载市信息
|
|
|
- city, _ := v["city"].(map[string]interface{})
|
|
|
- for k1, v1 := range city {
|
|
|
- e.Trie_Full_City.AddWords(k1) //加入市全称Trie(k:杭州市)
|
|
|
- v1m, _ := v1.(map[string]interface{})
|
|
|
+ citys := citys_maps[jc_province]
|
|
|
+ isok := make(map[string]bool)
|
|
|
+ for _, vcity := range citys {
|
|
|
+ qc_city := qu.ObjToString(vcity["city"])
|
|
|
+ jc_city := qu.ObjToString(vcity["brief_city"])
|
|
|
+ e.Trie_Full_City.AddWords(qc_city) //加入市全称Trie(k:杭州市)
|
|
|
c := &City{}
|
|
|
- c.Name = k1 //市全称:杭州市
|
|
|
- c.Brief = v1m["brief"].(string) //市简称:杭州
|
|
|
- e.Trie_Sim_City.AddWords(c.Brief) //加入市简称Trie(k:杭州)
|
|
|
- e.CityMap[k1] = c.Brief //杭州市:杭州
|
|
|
- e.CityBriefMap[c.Brief] = c //杭州:市信息{}
|
|
|
- e.CityFullMap[k1] = c //杭州市:市信息{}
|
|
|
+ c.Name = qc_city //市全称:杭州市
|
|
|
+ if jc_city != "" {
|
|
|
+ c.Brief = jc_city //市简称:杭州
|
|
|
+ e.Trie_Sim_City.AddWords(c.Brief) //加入市简称Trie(k:杭州)
|
|
|
+ e.CityMap[qc_city] = c.Brief //杭州市:杭州
|
|
|
+ e.CityBriefMap[c.Brief] = c //杭州:市信息{}
|
|
|
+ e.CityFullMap[qc_city] = c //杭州市:市信息{}
|
|
|
+ }
|
|
|
c.P = p
|
|
|
- if c.Name == p.Cap {
|
|
|
- p.Captial = c //加载province中的省会市信息{}
|
|
|
+ if city_alias, ok := vcity["city_alias"].([]interface{}); ok {
|
|
|
+ for _, vcity_alias := range city_alias {
|
|
|
+ strvcity_alias := qu.ObjToString(vcity_alias)
|
|
|
+ if isok[jc_province+"_"+strvcity_alias] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ e.CityBriefMap[strvcity_alias] = c
|
|
|
+ e.initDistricts(jc_province, strvcity_alias, c, jc_city, districts_maps, towns_maps, jwhs_maps)
|
|
|
+ isok[jc_province+"_"+strvcity_alias] = true
|
|
|
+ }
|
|
|
}
|
|
|
- //区县
|
|
|
- districtmap, _ := v1m["area"].(map[string]interface{}) //区或县
|
|
|
- for district, streets := range districtmap {
|
|
|
- d := &District{}
|
|
|
- d.Name = district
|
|
|
- d.C = c
|
|
|
- //省直辖市,河南济源市没有区一级,目前区一级写的还是济源市
|
|
|
- //匹配时,如果匹配到区,拿区和市比对,相同则代表是省直辖市,不要区一级
|
|
|
- e.Trie_Full_District.AddWords(district) //加入区或县全称Trie
|
|
|
- ctmp := e.NewDistrictCityMap[district]
|
|
|
+ if isok[jc_province+"_"+qc_city] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ e.initDistricts(jc_province, qc_city, c, jc_city, districts_maps, towns_maps, jwhs_maps)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ e.Trie_Fulls = []*ju.Trie{e.Trie_Full_Province, e.Trie_Full_City, e.Trie_Full_District, e.Trie_Full_Street, e.Trie_Full_Community}
|
|
|
+ e.Trie_Sims = []*ju.Trie{e.Trie_Sim_Province, e.Trie_Sim_City, e.Trie_Sim_District}
|
|
|
+}
|
|
|
+
|
|
|
+//加载区县
|
|
|
+func (e *ExtractTask) initDistricts(jc_province string, qc_city string, c *City,
|
|
|
+ jc_city string, districts_maps map[string]map[string][]map[string]interface{},
|
|
|
+ towns_maps map[string]map[string]map[string][]map[string]interface{},
|
|
|
+ jwhs_maps map[string]map[string]map[string]map[string][]map[string]interface{}) {
|
|
|
+ districts := districts_maps[jc_province][qc_city]
|
|
|
+ for _, vdistricts := range districts {
|
|
|
+ qc_district := qu.ObjToString(vdistricts["district"])
|
|
|
+ jc_district := qu.ObjToString(vdistricts["brief_district"])
|
|
|
+ d := &District{}
|
|
|
+ d.Name = qc_district
|
|
|
+ d.C = c
|
|
|
+ e.Trie_Full_District.AddWords(qc_district) //加入区或县全称Trie
|
|
|
+ if jc_district != "" {
|
|
|
+ e.Trie_Sim_District.AddWords(jc_district) //加入区或县简称Trie
|
|
|
+ //初始化城市简称
|
|
|
+ c := e.CityBriefMap[jc_city]
|
|
|
+ dfullarr := e.NewDistrictSimAndAll[jc_district]
|
|
|
+ dfullcity := map[string]*City{qc_district: c}
|
|
|
+ if len(dfullarr) == 0 {
|
|
|
+ tmparr := []map[string]*City{dfullcity}
|
|
|
+ e.NewDistrictSimAndAll[jc_district] = tmparr
|
|
|
+ } else {
|
|
|
+ e.NewDistrictSimAndAll[jc_district] = append(e.NewDistrictSimAndAll[jc_district], dfullcity)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ctmp := e.NewDistrictCityMap[qc_district]
|
|
|
+ if len(ctmp) == 0 {
|
|
|
+ tmpcarr := []*City{c}
|
|
|
+ e.NewDistrictCityMap[qc_district] = tmpcarr
|
|
|
+ } else {
|
|
|
+ e.NewDistrictCityMap[qc_district] = append(e.NewDistrictCityMap[qc_district], c)
|
|
|
+ }
|
|
|
+ if district_alias, ok := vdistricts["district_alias"].([]interface{}); ok {
|
|
|
+ for _, vdistrict_alias := range district_alias {
|
|
|
+ strvdistrict_alias := qu.ObjToString(vdistrict_alias)
|
|
|
+ e.Trie_Full_District.AddWords(strvdistrict_alias) //加入区或县全称Trie
|
|
|
+ ctmp := e.NewDistrictCityMap[strvdistrict_alias]
|
|
|
if len(ctmp) == 0 {
|
|
|
tmpcarr := []*City{c}
|
|
|
- e.NewDistrictCityMap[district] = tmpcarr
|
|
|
+ e.NewDistrictCityMap[strvdistrict_alias] = tmpcarr
|
|
|
} else {
|
|
|
- e.NewDistrictCityMap[district] = append(e.NewDistrictCityMap[district], c)
|
|
|
- }
|
|
|
- //街道
|
|
|
- streetmap, _ := streets.(map[string]interface{})
|
|
|
- for street, communitys := range streetmap {
|
|
|
- s := &Street{}
|
|
|
- s.Name = street
|
|
|
- s.D = d
|
|
|
- e.Trie_Full_Street.AddWords(street) //加入街道全称Trie
|
|
|
- dtmp := e.NewStreetDistrictMap[street]
|
|
|
- if len(dtmp) == 0 {
|
|
|
- tmpdarr := []*District{d}
|
|
|
- e.NewStreetDistrictMap[street] = tmpdarr
|
|
|
- } else {
|
|
|
- e.NewStreetDistrictMap[street] = append(e.NewStreetDistrictMap[street], d)
|
|
|
- }
|
|
|
- //村、居委会
|
|
|
- for _, ct := range qu.ObjArrToStringArr(communitys.([]interface{})) {
|
|
|
- e.Trie_Full_Community.AddWords(ct) //加入居委会、村全称Trie
|
|
|
- cttmp := e.CommunityDistrictMap[ct]
|
|
|
- if len(cttmp) == 0 {
|
|
|
- tmpdarr := []*District{d}
|
|
|
- e.CommunityDistrictMap[ct] = tmpdarr
|
|
|
- } else {
|
|
|
- e.CommunityDistrictMap[ct] = append(e.CommunityDistrictMap[ct], d)
|
|
|
- }
|
|
|
- }
|
|
|
+ e.NewDistrictCityMap[strvdistrict_alias] = append(e.NewDistrictCityMap[strvdistrict_alias], c)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- //初始化城市简称
|
|
|
- fn3 := InitCitySim(e.TaskInfo.Version)
|
|
|
- for _, v := range fn3 {
|
|
|
- city, _ := v["city"].(map[string]interface{})
|
|
|
- for _, v1 := range city {
|
|
|
- v1m, _ := v1.(map[string]interface{})
|
|
|
- cb := v1m["brief"].(string) //市简称
|
|
|
- arr := v1m["area"].(map[string]interface{}) //区或县简称
|
|
|
- for districtsim, districtall := range arr {
|
|
|
- dfullstr, _ := districtall.(string)
|
|
|
- e.Trie_Sim_District.AddWords(districtsim) //加入区或县简称Trie
|
|
|
- c := e.CityBriefMap[cb]
|
|
|
- dfullarr := e.NewDistrictSimAndAll[districtsim]
|
|
|
- dfullcity := map[string]*City{dfullstr: c}
|
|
|
- if len(dfullarr) == 0 {
|
|
|
- tmparr := []map[string]*City{dfullcity}
|
|
|
- e.NewDistrictSimAndAll[districtsim] = tmparr
|
|
|
+ //街道
|
|
|
+ towns := towns_maps[jc_province][qc_city][qc_district]
|
|
|
+ for _, vtown := range towns {
|
|
|
+ strvtown := qu.ObjToString(vtown["town"])
|
|
|
+ s := &Street{}
|
|
|
+ s.Name = strvtown
|
|
|
+ s.D = d
|
|
|
+ e.Trie_Full_Street.AddWords(strvtown) //加入街道全称Trie
|
|
|
+ dtmp := e.NewStreetDistrictMap[strvtown]
|
|
|
+ if len(dtmp) == 0 {
|
|
|
+ tmpdarr := []*District{d}
|
|
|
+ e.NewStreetDistrictMap[strvtown] = tmpdarr
|
|
|
+ } else {
|
|
|
+ e.NewStreetDistrictMap[strvtown] = append(e.NewStreetDistrictMap[strvtown], d)
|
|
|
+ }
|
|
|
+ //村、居委会
|
|
|
+ jwhs := jwhs_maps[jc_province][qc_city][qc_district][strvtown]
|
|
|
+ for _, vjwh := range jwhs {
|
|
|
+ strvillage := qu.ObjToString(vjwh["village"])
|
|
|
+ e.Trie_Full_Community.AddWords(strvillage) //加入居委会、村全称Trie
|
|
|
+ cttmp := e.CommunityDistrictMap[strvillage]
|
|
|
+ if len(cttmp) == 0 {
|
|
|
+ tmpdarr := []*District{d}
|
|
|
+ e.CommunityDistrictMap[strvillage] = tmpdarr
|
|
|
} else {
|
|
|
- e.NewDistrictSimAndAll[districtsim] = append(e.NewDistrictSimAndAll[districtsim], dfullcity)
|
|
|
+ e.CommunityDistrictMap[strvillage] = append(e.CommunityDistrictMap[strvillage], d)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- e.Trie_Fulls = []*ju.Trie{e.Trie_Full_Province, e.Trie_Full_City, e.Trie_Full_District, e.Trie_Full_Street, e.Trie_Full_Community}
|
|
|
- e.Trie_Sims = []*ju.Trie{e.Trie_Sim_Province, e.Trie_Sim_City, e.Trie_Sim_District}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func (e *ExtractTask) InitVar() {
|
|
@@ -1226,128 +1287,6 @@ func (e *ExtractTask) InitVar() {
|
|
|
|
|
|
}
|
|
|
|
|
|
-//初始化城市省份敏感词
|
|
|
-func (e *ExtractTask) InitCityDFA() {
|
|
|
- defer qu.Catch()
|
|
|
- e.CityAllGet = &ju.DFA{}
|
|
|
- e.CitySimGet = &ju.DFA{}
|
|
|
- e.DistrictAllGet = &ju.DFA{}
|
|
|
- e.DistrictSimGet = &ju.DFA{}
|
|
|
- e.ProvinceAllGet = &ju.DFA{}
|
|
|
- e.ProvinceSimGet = &ju.DFA{}
|
|
|
- e.StreetGet = &ju.DFA{}
|
|
|
- //初始化map
|
|
|
- if e.ProvinceMap == nil {
|
|
|
- e.ProvinceMap = make(map[string]string)
|
|
|
- }
|
|
|
- if e.CityMap == nil {
|
|
|
- e.CityMap = make(map[string]string)
|
|
|
- }
|
|
|
- if e.DistrictSimAndAll == nil {
|
|
|
- e.DistrictSimAndAll = make(map[string]string)
|
|
|
- }
|
|
|
- if e.CityBriefMap == nil {
|
|
|
- e.CityBriefMap = make(map[string]*City)
|
|
|
- }
|
|
|
- if e.CityFullMap == nil {
|
|
|
- e.CityFullMap = make(map[string]*City)
|
|
|
- }
|
|
|
- if e.ProvinceBriefMap == nil {
|
|
|
- e.ProvinceBriefMap = make(map[string]*Province)
|
|
|
- }
|
|
|
- if e.DistrictCityMap == nil {
|
|
|
- e.DistrictCityMap = make(map[string]*City)
|
|
|
- }
|
|
|
- if e.StreetDistrictMap == nil {
|
|
|
- e.StreetDistrictMap = make(map[string]*District)
|
|
|
- }
|
|
|
- //初始化省
|
|
|
- fn1 := InitProvince(e.TaskInfo.Version)
|
|
|
- for k, v := range fn1 {
|
|
|
- for _, p := range v.([]interface{}) {
|
|
|
- p1, _ := p.(string)
|
|
|
- e.ProvinceAllGet.AddWord(p1) //华中科技大学
|
|
|
- e.ProvinceMap[p1] = k //华中科技大学:湖北
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //初始化城市全称
|
|
|
- fn2 := InitCityAll(e.TaskInfo.Version)
|
|
|
- for k, v := range fn2 {
|
|
|
- //加载省信息
|
|
|
- e.ProvinceAllGet.AddWord(k) //加入省全称dfa(k:浙江省)
|
|
|
- p := &Province{}
|
|
|
- p.Name = k //省全称:浙江省
|
|
|
- p.Brief = v["brief"].(string) //省简称:浙江
|
|
|
- e.ProvinceSimGet.AddWord(p.Brief) //加入省简称dfa(k:浙江)
|
|
|
- e.ProvinceMap[k] = p.Brief //浙江省:浙江
|
|
|
- e.ProvinceBriefMap[p.Brief] = p //浙江:省信息{}
|
|
|
- p.Cap = v["captial"].(string) //省会(杭州)
|
|
|
-
|
|
|
- //加载市信息
|
|
|
- city, _ := v["city"].(map[string]interface{})
|
|
|
- for k1, v1 := range city {
|
|
|
- e.CityAllGet.AddWord(k1) //加入市全称dfa(k:杭州市)
|
|
|
- v1m, _ := v1.(map[string]interface{})
|
|
|
- c := &City{}
|
|
|
- c.Name = k1 //市全称:杭州市
|
|
|
- c.Brief = v1m["brief"].(string) //市简称:杭州
|
|
|
- e.CitySimGet.AddWord(c.Brief) //加入市简称dfa(k:杭州)
|
|
|
- e.CityMap[k1] = c.Brief //杭州市:杭州
|
|
|
- e.CityBriefMap[c.Brief] = c //杭州:市信息{}
|
|
|
- e.CityFullMap[k1] = c //杭州市:市信息{}
|
|
|
- c.P = p
|
|
|
- if c.Name == p.Cap {
|
|
|
- p.Captial = c //加载province中的省会市信息{}
|
|
|
- }
|
|
|
-
|
|
|
- //区县
|
|
|
- districtmap := v1m["area"].(map[string]interface{}) //区或县
|
|
|
- for district, streetarr := range districtmap {
|
|
|
- d := &District{}
|
|
|
- d.Name = district
|
|
|
- d.C = c
|
|
|
- //省直辖市,河南济源市没有区一级,目前区一级写的还是济源市
|
|
|
- //匹配时,如果匹配到区,拿区和市比对,相同则代表是省直辖市,不要区一级?
|
|
|
- e.DistrictAllGet.AddWord(district) //加入区或县全称dfa
|
|
|
- ctmp := e.DistrictCityMap[district]
|
|
|
- if ctmp == nil {
|
|
|
- e.DistrictCityMap[district] = c
|
|
|
- }
|
|
|
- //街道
|
|
|
- for _, s := range qu.ObjArrToStringArr(streetarr.([]interface{})) {
|
|
|
- e.StreetGet.AddWord(s) //加入街道敏感词
|
|
|
- dtmp := e.StreetDistrictMap[s]
|
|
|
- if dtmp == nil {
|
|
|
- e.StreetDistrictMap[s] = d
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //初始化城市简称
|
|
|
- fn3 := InitCitySim(e.TaskInfo.Version)
|
|
|
- for _, v := range fn3 {
|
|
|
- city, _ := v["city"].(map[string]interface{})
|
|
|
- for _, v1 := range city {
|
|
|
- v1m, _ := v1.(map[string]interface{})
|
|
|
- cb := v1m["brief"].(string) //市简称
|
|
|
- arr := v1m["area"].(map[string]interface{}) //区或县简称
|
|
|
- for districtsim, districtall := range arr {
|
|
|
- e.DistrictSimAndAll[districtsim] = districtall.(string)
|
|
|
- d := &District{}
|
|
|
- d.Name = districtsim
|
|
|
- d.C = e.CityBriefMap[cb]
|
|
|
- e.DistrictSimGet.AddWord(districtsim) //加入区或县简称敏感词
|
|
|
- ctmp := e.DistrictCityMap[districtsim]
|
|
|
- if ctmp == nil {
|
|
|
- e.DistrictCityMap[districtsim] = e.CityBriefMap[cb]
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
//初始化邮编库
|
|
|
func (e *ExtractTask) InitPostCode() {
|
|
|
defer qu.Catch()
|