maxiaoshan 4 år sedan
förälder
incheckning
8045153eba
2 ändrade filer med 19 tillägg och 10 borttagningar
  1. 9 1
      standardata/src/standarbuyer.go
  2. 10 9
      standardata/src/util.go

+ 9 - 1
standardata/src/standarbuyer.go

@@ -49,6 +49,14 @@ func buyerStandarData(db string, query map[string]interface{}) {
 				ps = append(ps, v)
 				data := comHisMegerNewData(buyer, "buyer", ps)
 				if data != nil {
+					province, city, district := "", "", ""
+					province = qu.ObjToString(data["province"])
+					if province == "" { //省份为空,根据buyer提取区域信息
+						province, city, district = GetProvinceCityDistrict([]string{buyer})
+						data["province"] = province
+						data["city"] = city
+						data["district"] = district
+					}
 					//提取固话和手机号
 					contactArr := []interface{}{}
 					contactArr = append(contactArr, v)
@@ -66,7 +74,7 @@ func buyerStandarData(db string, query map[string]interface{}) {
 			if savetoerr {
 				t := MongoTo.FindOne(buyererr, map[string]interface{}{"name": buyer})
 				if len(t) < 1 {
-					province, city, district := GetProvinceCityDistrict(buyer)
+					province, city, district := GetProvinceCityDistrict([]string{buyer})
 					MongoTo.Save(buyererr, map[string]interface{}{
 						"name":       buyer,
 						"buyerclass": buyerclass,

+ 10 - 9
standardata/src/util.go

@@ -380,7 +380,7 @@ func (t *Trie) Get(word string) bool {
 }
 
 //获取province、city、district
-func GetProvinceCityDistrict(name string) (arearesult, cityresult, districtresult string) {
+func GetProvinceCityDistrict(NameAndAddress []string) (arearesult, cityresult, districtresult string) {
 	defer qu.Catch()
 	// name = "大丰市草堰镇广播电视站"
 	// address = "大丰市草堰镇红旗街"
@@ -396,7 +396,7 @@ func GetProvinceCityDistrict(name string) (arearesult, cityresult, districtresul
 	pscore := make(map[string]float64)
 	cscore := make(map[string]float64)
 	dscore := make(map[string]float64)
-	si.GetCityByNameAndAddress([]string{name}, &pscore, &cscore, &dscore)
+	si.GetCityByNameAndAddress(NameAndAddress, &pscore, &cscore, &dscore)
 	si.MergeFullSimScore()                       //合并全称简称得分
 	si.MergeScores(&pscore, &cscore, &dscore)    //合并区简称匹配的pcd
 	finishP := HighestScoreArr(si.FullAreaScore) //获取最高分的省
@@ -419,10 +419,8 @@ func GetProvinceCityDistrict(name string) (arearesult, cityresult, districtresul
 				cityresult, districtresult = NewGetDistrict(arearesult, cityresult, districtresult, finishD, tmpcity)
 			}
 		} else { //对应的city有多个(多个province和city)
-			//arearesult = finishP[0] //抽取结果直接赋值
-			//cityresult, tmpcity = NewGetCity(arearesult, cityresult, e, finishC, tmpcity)
-			//cityresult, districtresult = NewGetDistrict(arearesult, cityresult, districtresult, e, finishD, tmpcity)
-			arearesult = "全国"
+			//arearesult = "全国"
+			arearesult = ""
 		}
 	}
 	if cityresult != "" && cityresult == districtresult {
@@ -438,9 +436,9 @@ func GetProvinceCityDistrict(name string) (arearesult, cityresult, districtresul
 	} else if arearesult == "重庆" {
 		cityresult = "重庆市"
 	}
-	if arearesult == "" {
-		arearesult = "全国"
-	}
+	// if arearesult == "" {
+	// 	arearesult = "全国"
+	// }
 	return
 	//qu.Debug("结果===", arearesult, "--", cityresult, "--", districtresult)
 }
@@ -453,6 +451,9 @@ func (si *ScoreInfo) GetCityByNameAndAddress(textArr []string, pscore, cscore, d
 	*/
 	ts := 0.5
 	for _, t := range textArr {
+		if t == "" {
+			continue
+		}
 		p_full, c_full, d_full, p_sim, c_sim, d_sim := "", "", "", "", "", "" //每个字段抽取的时候重新定义该字段抽取的province,city,district
 		jbText := Seg_SV.Cut(t, true)                                         //分词
 		for _, text := range jbText {