Ver Fonte

Merge branch 'dev3.2' of http://192.168.3.207:10080/qmx/jy-data-extract into dev3.2

fengweiqiang há 5 anos atrás
pai
commit
eb9b0c1dc5
5 ficheiros alterados com 187 adições e 140 exclusões
  1. 4 17
      src/jy/cluster/ssh.go
  2. 122 92
      src/jy/extract/newextractcity.go
  3. 1 1
      src/main_test.go
  4. 3 3
      src/res/pcd.txt
  5. 57 27
      src/res/sv.txt

+ 4 - 17
src/jy/cluster/ssh.go

@@ -46,36 +46,23 @@ func ssHConnect(user, password, host string, port int) (*ssh.Session, error) {
 //wget https://www.jianyu360.com/upload/extract_v3.tgz
 var sshstr = `
 #!/bin/bash
-curl -fsSL get.docker.com -o get-docker.sh
-sh get-docker.sh --mirror Aliyun
-systemctl start docker
-cd /opt/
-wget http://10.171.112.160:9090/res/auto_service.sh
-chmod 777 auto_service.sh
-wget http://10.171.112.160:9090/res/gocv.tar
-docker load --input gocv.tar
-docker run --net=host --name=gocv -itd -v /opt:/opt gocv:v2 /opt/auto_service.sh
-exit
-`
-
-/*
-#!/bin/bash
+cd /opt
 kill -9 $(pidof extract_v3)
 rm -rf extract_v3*
 mkdir extract_v3
-cd /opt/extract_v3
 wget http://10.171.112.160:9090/res/extract_v3.tgz
 tar -xzvf extract_v3.tgz
+cd /opt/extract_v3
 chmod 777 extract_v3
 nohup ./extract_v3 >/opt/extract_v3/nohup 2>&1 &
 exit
-*/
+`
 
 func RunSsh(ip, password string, port int) {
 	var stdOut, stdErr bytes.Buffer
 	session, err := ssHConnect("root", password, ip, port)
 	if err != nil {
-		log.Fatal(err)
+		log.Println(err)
 	}
 	defer session.Close()
 	session.Stdout = &stdOut

+ 122 - 92
src/jy/extract/newextractcity.go

@@ -4,9 +4,12 @@ import (
 	. "jy/pretreated"
 	ju "jy/util"
 	qu "qfw/util"
+	"regexp"
 	"strings"
 )
 
+var AgencyReg = regexp.MustCompile("((代理机构|中标供应商).{0,30}|.{2,15}((招标)?代理|咨询|政府采购))")
+
 //抽取city
 func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp map[string]interface{}, id string) {
 	/*
@@ -92,26 +95,38 @@ func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp map[string]interface{}
 			cityresult = finishC[0]
 			if cfMap := e.CityFullMap[cityresult]; cfMap != nil {
 				arearesult = cfMap.P.Brief
+				tmpcity = append(tmpcity, cityresult)
 				cityresult, districtresult = NewGetDistrict(arearesult, cityresult, districtresult, e, 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 = finishP[0] //抽取结果直接赋值
+			//cityresult, tmpcity = NewGetCity(arearesult, cityresult, e, finishC, tmpcity)
+			//cityresult, districtresult = NewGetDistrict(arearesult, cityresult, districtresult, e, finishD, tmpcity)
+			arearesult = "全国"
 		}
 	}
-	if cityresult == districtresult {
+	if cityresult != "" && cityresult == districtresult {
 		districtresult = ""
 	}
 	//qu.Debug("结果===", arearesult, "--", cityresult, "--", districtresult)
+	//直辖市
+	if arearesult == "北京" {
+		cityresult = "北京市"
+	} else if arearesult == "天津" {
+		cityresult = "天津市"
+	} else if arearesult == "上海" {
+		cityresult = "上海市"
+	} else if arearesult == "重庆" {
+		cityresult = "重庆市"
+	}
 	if arearesult == "" {
 		arearesult = "全国"
-	} else if cityresult == "" {
+	} /* else if cityresult == "" {
 		if pbMap := e.ProvinceBriefMap[arearesult]; pbMap != nil {
 			cityresult = pbMap.Cap
 			resulttmp["defaultpcap"] = true
 		}
-	}
+	}*/
 	//qu.Debug("结果2===", arearesult, "--", cityresult, "--", districtresult)
 	resulttmp["area"] = arearesult
 	resulttmp["city"] = cityresult
@@ -382,7 +397,6 @@ func (e *ExtractTask) NewGetCityByOthers(j *ju.Job, sm *SortMap, pscore, cscore,
 					} else if pos_full == 1 && c_full == "" { //市全称
 						if cfMap := e.CityFullMap[text]; cfMap != nil {
 							tmpPbrief := cfMap.P.Brief
-							//qu.Debug("市--------", text, tmpPbrief, p_full)
 							if p_full == "" {
 								p_full = tmpPbrief
 								c_full = cfMap.Name
@@ -398,7 +412,6 @@ func (e *ExtractTask) NewGetCityByOthers(j *ju.Job, sm *SortMap, pscore, cscore,
 							}
 						}
 					} else if pos_full == 2 && d_full == "" { //区全称
-						//qu.Debug("区全称===========")
 						repeatPb := map[string]bool{}
 						isOk := false
 						districtOk := false
@@ -449,10 +462,14 @@ func (e *ExtractTask) NewGetCityByOthers(j *ju.Job, sm *SortMap, pscore, cscore,
 						}
 					} else if pos_full == 3 { //街道全称
 						districts := e.NewStreetDistrictMap[text]
-						DealMultipleDistrict(e, j, districts, 2, p_full)
+						if len(districts) == 1 { //街道唯一
+							DealMultipleDistrict(e, j, districts, 2, p_full, nil, nil, nil)
+						}
 					} else if pos_full == 4 { //居委会全称
 						districts := e.CommunityDistrictMap[text]
-						DealMultipleDistrict(e, j, districts, 2, p_full)
+						if len(districts) == 1 { //居委会唯一
+							DealMultipleDistrict(e, j, districts, 2, p_full, nil, nil, nil)
+						}
 					}
 				}
 			}
@@ -477,58 +494,46 @@ func (e *ExtractTask) NewGetCityByOthers(j *ju.Job, sm *SortMap, pscore, cscore,
 								c_sim = cbMap.Brief
 								PCDScore(j, "city", cbMap.Name, 3)
 								break
-							} else if p_sim != "" && p_sim != tmpPbrief {
-								//city不做处理
+							} else if p_sim != "" && p_sim != tmpPbrief { //北京师范大学广州实验学校
+								PCDScore(j, "province", tmpPbrief, 1)
+								PCDScore(j, "city", cbMap.Name, 1)
 							}
 						}
 					} else if pos_sim == 2 && d_sim == "" { //区简称
 						repeatPb := map[string]bool{}
 						repeatDb := map[string]bool{}
 						dfull_citys := e.NewDistrictSimAndAll[text]
-						//qu.Debug(text, dfull_citys, p_sim)
 						for _, dfull_city := range dfull_citys {
 							for dfull, c := range dfull_city { //dfull:简称对应的全称
 								tmpPbrief := c.P.Brief
 								if p_sim == tmpPbrief { //省份一致
 									d_sim = text
-									//PCDScoreByDistrictSim("d", dfull, 1, pscore, cscore, dscore)
 									PCDScore(j, "district", dfull, 2)
 									if c_sim == "" {
 										c_sim = c.Brief
-										//PCDScoreByDistrictSim("c", c.Name, 2, pscore, cscore, dscore)
 										PCDScore(j, "city", c.Name, 2)
 									}
 								} else if p_sim == "" {
 									if !repeatDb[dfull] {
 										PCDScoreByDistrictSim("d", dfull, 1, pscore, cscore, dscore)
-										//PCDScore(j, "district", dfull, 1)
 										repeatDb[dfull] = true
 									}
 									if len(dfull_citys) == 1 {
-										//p_sim = tmpPbrief
-										//c_sim = c.Brief
-										//d_sim = text
 										PCDScoreByDistrictSim("p", tmpPbrief, 1, pscore, cscore, dscore)
 										PCDScoreByDistrictSim("c", c.Name, 1, pscore, cscore, dscore)
-										//PCDScore(j, "province", p_sim, 2)
-										//PCDScore(j, "city", c.Name, 2)
 									} else {
 										if !repeatPb[tmpPbrief] {
 											PCDScoreByDistrictSim("p", tmpPbrief, 1, pscore, cscore, dscore)
-											//PCDScore(j, "province", tmpPbrief, 1)
 											repeatPb[tmpPbrief] = true
 										}
-										//PCDScore(j, "city", c.Name, 1)
 										PCDScoreByDistrictSim("c", c.Name, 1, pscore, cscore, dscore)
 									}
 								} else if p_sim != "" && p_sim != tmpPbrief {
 									if !repeatPb[tmpPbrief] {
 										PCDScoreByDistrictSim("p", tmpPbrief, -5, pscore, cscore, dscore)
-										//PCDScore(j, "province", tmpPbrief, -5)
 										repeatPb[tmpPbrief] = true
 									}
 									PCDScoreByDistrictSim("c", c.Name, -5, pscore, cscore, dscore)
-									//PCDScore(j, "city", c.Name, -5)
 								}
 							}
 						}
@@ -541,6 +546,9 @@ func (e *ExtractTask) NewGetCityByOthers(j *ju.Job, sm *SortMap, pscore, cscore,
 }
 
 func (e *ExtractTask) NewGetCityByDetail(j *ju.Job) {
+	repeatP := map[string]bool{}
+	repeatC := map[string]bool{}
+	repeatD := map[string]bool{}
 	detailRune := []rune(j.Content)
 	detail := j.Content
 	if len(detailRune) > 600 {
@@ -548,42 +556,59 @@ func (e *ExtractTask) NewGetCityByDetail(j *ju.Job) {
 		end := detailRune[len(detailRune)-300:]
 		detail = string(start) + string(end)
 	}
+	detail = AgencyReg.ReplaceAllString(detail, "")
 	for _, text := range e.Seg_SV.Cut(detail, true) {
 		if len([]rune(text)) > 1 {
 			//全称匹配
 			for pos_full, trie_full := range e.Trie_Fulls {
 				if trie_full.Get(text) {
 					if pos_full == 0 { //省全称
-						if tmpPbrief := e.ProvinceMap[text]; tmpPbrief != "" { //取简称
+						if tmpPbrief := e.ProvinceMap[text]; tmpPbrief != "" && !repeatP[tmpPbrief] { //取简称
 							PCDScore(j, "province", tmpPbrief, 1)
+							repeatP[tmpPbrief] = true
 							break
 						}
 					} else if pos_full == 1 { //市全称
 						if cfMap := e.CityFullMap[text]; cfMap != nil {
-							PCDScore(j, "province", cfMap.P.Brief, 1)
-							PCDScore(j, "city", cfMap.Name, 1)
+							if !repeatP[cfMap.P.Brief] {
+								PCDScore(j, "province", cfMap.P.Brief, 1)
+								repeatP[cfMap.P.Brief] = true
+							}
+							if !repeatC[cfMap.Name] {
+								PCDScore(j, "city", cfMap.Name, 1)
+								repeatC[cfMap.Name] = true
+							}
 							break
 						}
 					} else if pos_full == 2 { //区全称
 						citys := e.NewDistrictCityMap[text]
 						if len(citys) > 0 {
-							repeatPb := map[string]bool{}
-							PCDScore(j, "district", text, 1)
+							if !repeatD[text] {
+								PCDScore(j, "district", text, 1)
+								repeatD[text] = true
+							}
 							for _, c := range citys {
-								PCDScore(j, "city", c.Name, 1)
-								if !repeatPb[c.P.Brief] {
+								if !repeatC[c.Name] {
+									PCDScore(j, "city", c.Name, 1)
+									repeatC[c.Name] = true
+								}
+								if !repeatP[c.P.Brief] {
 									PCDScore(j, "province", c.P.Brief, 1)
-									repeatPb[c.P.Brief] = true
+									repeatP[c.P.Brief] = true
 								}
 							}
 							break
 						}
 					} else if pos_full == 3 { //街道全称
 						districts := e.NewStreetDistrictMap[text]
-						DealMultipleDistrict(e, j, districts, 1, "")
+						if len(districts) == 1 {
+							DealMultipleDistrict(e, j, districts, 1, "", &repeatP, &repeatC, &repeatD)
+						}
 					} else if pos_full == 4 { //居委会全称
 						districts := e.CommunityDistrictMap[text]
-						DealMultipleDistrict(e, j, districts, 1, "")
+						if len(districts) == 1 {
+							DealMultipleDistrict(e, j, districts, 1, "", &repeatP, &repeatC, &repeatD)
+						}
 					}
 				}
 			}
@@ -591,13 +616,20 @@ func (e *ExtractTask) NewGetCityByDetail(j *ju.Job) {
 			//简称匹配
 			for pos_sim, trie_sim := range e.Trie_Sims {
 				if trie_sim.Get(text) {
-					if pos_sim == 0 { //省简称
+					if pos_sim == 0 && !repeatP[text] { //省简称
 						PCDScore(j, "province", text, 1)
+						repeatP[text] = true
 						break
 					} else if pos_sim == 1 { //市简称
 						if cbMap := e.CityBriefMap[text]; cbMap != nil {
-							PCDScore(j, "city", cbMap.Name, 1)
-							PCDScore(j, "province", cbMap.P.Brief, 1)
+							if !repeatP[cbMap.P.Brief] {
+								PCDScore(j, "province", cbMap.P.Brief, 1)
+								repeatP[cbMap.P.Brief] = true
+							}
+							if !repeatC[cbMap.Name] {
+								PCDScore(j, "city", cbMap.Name, 1)
+								repeatC[cbMap.Name] = true
+							}
 							break
 						}
 					} /* else if pos_sim == 2 { //区简称
@@ -620,60 +652,57 @@ func (e *ExtractTask) NewGetCityByDetail(j *ju.Job) {
 }
 
 //街道、居委会对应多地市处理
-func DealMultipleDistrict(e *ExtractTask, j *ju.Job, districts []*District, score int, pbrief string) {
-	repeatPb := map[string]bool{}
-	repeatCb := map[string]bool{}
-	repeatDb := map[string]bool{}
-	for _, district := range districts {
-		tmpDistrict := district.Name
-		tmpCity := district.C.Name
+func DealMultipleDistrict(e *ExtractTask, j *ju.Job, districts []*District, score int, pbrief string, repeatP, repeatC, repeatD *map[string]bool) {
+	if len(districts) == 1 {
+		district := districts[0]
+		city := district.C.Name
 		tmpPbrief := district.C.P.Brief
-		if !repeatPb[tmpPbrief] {
+		if pbrief != "" && tmpPbrief == pbrief {
 			PCDScore(j, "province", tmpPbrief, score)
-			repeatPb[tmpPbrief] = true
-		}
-		if !repeatCb[tmpCity] {
-			PCDScore(j, "city", tmpCity, score)
-			repeatCb[tmpCity] = true
-		}
-		if !repeatDb[tmpDistrict] {
-			PCDScore(j, "district", tmpDistrict, score)
-			repeatDb[tmpDistrict] = true
+			PCDScore(j, "city", city, score)
+			PCDScore(j, "district", district.Name, score)
+		} else if pbrief == "" {
+			if repeatP != nil && !(*repeatP)[tmpPbrief] {
+				PCDScore(j, "province", tmpPbrief, score)
+				(*repeatP)[tmpPbrief] = true
+			} else if repeatP == nil {
+				PCDScore(j, "province", tmpPbrief, score)
+			}
+			if repeatC != nil && !(*repeatC)[city] {
+				PCDScore(j, "city", city, score)
+				(*repeatC)[city] = true
+			} else if repeatC == nil {
+				PCDScore(j, "city", city, score)
+			}
+			if repeatD != nil && !(*repeatD)[tmpPbrief] {
+				PCDScore(j, "district", district.Name, score)
+				(*repeatD)[district.Name] = true
+			} else if repeatD == nil {
+				PCDScore(j, "district", district.Name, score)
+			}
 		}
-		//		citys := e.NewDistrictCityMap[tmpDistrict]
-		//		for _, c := range citys {
-		//			tmpPbrief := c.P.Brief
-		//			if pbrief != "" && pbrief == tmpPbrief {
-		//				if !repeatPb[tmpPbrief] {
-		//					PCDScore(j, "province", tmpPbrief, score)
-		//					repeatPb[tmpPbrief] = true
-		//				}
-		//				tmpCity := c.Name
-		//				if !repeatCb[tmpCity] {
-		//					PCDScore(j, "city", tmpCity, score)
-		//					repeatCb[tmpCity] = true
-		//				}
-		//				if !repeatDb[tmpDistrict] {
-		//					PCDScore(j, "district", tmpDistrict, score)
-		//					repeatDb[tmpDistrict] = true
-		//				}
-		//			} else if pbrief == "" {
-		//				if !repeatPb[tmpPbrief] {
-		//					PCDScore(j, "province", tmpPbrief, score)
-		//					repeatPb[tmpPbrief] = true
-		//				}
-		//				tmpCity := c.Name
-		//				if !repeatCb[tmpCity] {
-		//					PCDScore(j, "city", tmpCity, score)
-		//					repeatCb[tmpCity] = true
-		//				}
-		//				if !repeatDb[tmpDistrict] {
-		//					PCDScore(j, "district", tmpDistrict, score)
-		//					repeatDb[tmpDistrict] = true
-		//				}
-		//			}
-		//		}
 	}
+
+	//	repeatPb := map[string]bool{}
+	//	repeatCb := map[string]bool{}
+	//	repeatDb := map[string]bool{}
+	//	for _, district := range districts {
+	//		tmpDistrict := district.Name
+	//		tmpCity := district.C.Name
+	//		tmpPbrief := district.C.P.Brief
+	//		if !repeatPb[tmpPbrief] {
+	//			PCDScore(j, "province", tmpPbrief, score)
+	//			repeatPb[tmpPbrief] = true
+	//		}
+	//		if !repeatCb[tmpCity] {
+	//			PCDScore(j, "city", tmpCity, score)
+	//			repeatCb[tmpCity] = true
+	//		}
+	//		if !repeatDb[tmpDistrict] {
+	//			PCDScore(j, "district", tmpDistrict, score)
+	//			repeatDb[tmpDistrict] = true
+	//		}
+	//	}
 }
 
 func NewGetCity(area, city string, e *ExtractTask, finishC, tmpcity []string) (string, []string) {
@@ -691,6 +720,7 @@ func NewGetCity(area, city string, e *ExtractTask, finishC, tmpcity []string) (s
 	}
 	return city, tmpcity
 }
+
 func NewGetDistrict(area, city, district string, e *ExtractTask, finishD, tmpcity []string) (string, string) {
 	for _, d := range finishD { //取最高分与province匹配的district
 		citys := e.NewDistrictCityMap[d]
@@ -706,15 +736,15 @@ func NewGetDistrict(area, city, district string, e *ExtractTask, finishD, tmpcit
 					district = d
 					return city, district
 				}
-			} else { //多个city
-				for _, tc := range tmpcity {
-					if tc == c.Name {
+			} /*else { //多个city
+				for _, tc := range tmpcity { //多个city根据district最高分取
+					if tc == c.Name && len(finishD) == 1 {
 						city = c.Name
 						district = d
 						return city, district
 					}
 				}
-			}
+			}*/
 
 			//			if len(citys) == 1 { //区对应一个市
 			//				if c.P.Brief == area {

+ 1 - 1
src/main_test.go

@@ -28,7 +28,7 @@ func Test_han(t *testing.T) {
 func Test_task(t *testing.T) {
 	Mgo = MgoFactory(1, 3, 120, "192.168.3.207:27082", "extract_kf")
 	//extract.StartExtractTaskId("5b8f804025e29a290415aee1")5c528686698414055c47b115
-	extract.StartExtractTestTask("5cdd3025698414032c8322b1", "5a83fec940d2d9bbe88b94a6", "1", "mxs_v1", "mxs_v1")
+	extract.StartExtractTestTask("5cdd3025698414032c8322b1", "5a83eab640d2d9bbe88b5711", "1", "mxs_v1", "mxs_v1")
 	//extract.StartExtractTestTask("5c3d75c96984142998eb00e1", "5c2a3d28a5cb26b9b76144dd", "100", "mxs_v3", "mxs_v3")
 	time.Sleep(5 * time.Second)
 }

+ 3 - 3
src/res/pcd.txt

@@ -4316,7 +4316,7 @@
 留坝 3 n
 冕宁 3 n
 博爱 3 n
-彭水 3 n
+彭水 3 n
 蓬江 3 n
 马山 3 n
 萨尔图 3 n
@@ -4484,7 +4484,7 @@
 五莲 3 n
 杨陵 3 n
 潮州 3 n
-秀山 3 n
+秀山 3 n
 鼎湖 3 n
 定兴 3 n
 定南 3 n
@@ -4967,7 +4967,7 @@
 永丰 3 n
 松江 3 n
 荥阳 3 n
-石柱 3 n
+石柱 3 n
 花都 3 n
 东乡 3 n
 宜丰 3 n

+ 57 - 27
src/res/sv.txt

@@ -705,6 +705,7 @@
 肥东县 4 n
 昭通市 4 n
 新县 4 n
+新县城 4 n
 苏滁现代产业园 4 n
 烈山区 4 n
 怀安县 4 n
@@ -4315,7 +4316,7 @@
 留坝 3 n
 冕宁 3 n
 博爱 3 n
-彭水 3 n
+彭水 3 n
 蓬江 3 n
 马山 3 n
 萨尔图 3 n
@@ -4483,7 +4484,7 @@
 五莲 3 n
 杨陵 3 n
 潮州 3 n
-秀山 3 n
+秀山 3 n
 鼎湖 3 n
 定兴 3 n
 定南 3 n
@@ -4966,7 +4967,7 @@
 永丰 3 n
 松江 3 n
 荥阳 3 n
-石柱 3 n
+石柱 3 n
 花都 3 n
 东乡 3 n
 宜丰 3 n
@@ -24014,7 +24015,6 @@
 巴沙村委会 4 n
 高岩村民委员会 4 n
 平居村委会 4 n
-原种场虚拟生活区 4 n
 外曾村委会 4 n
 长沙沟口村委会 4 n
 大和山村委会 4 n
@@ -47218,7 +47218,6 @@
 诗上庄村委会 4 n
 竹家村民委员会 4 n
 史巷社区居委会 4 n
-居委会 4 n
 务农庄村委会 4 n
 唐埠曲家村民委员会 4 n
 常兴社区村委会 4 n
@@ -63419,7 +63418,8 @@
 蒋常丰村委会 4 n
 东荆村委会 4 n
 黄岗寺村民委员会 4 n
-良种场 4 n
+叶城县良种场 4 n
+叶城县园艺场 4 n
 沙日哈达村民委员会 4 n
 戴巷社区居委会 4 n
 龚坊居委会 4 n
@@ -85296,7 +85296,12 @@
 张仓口村委会 4 n
 西芩村委会 4 n
 横彭村委会 4 n
-工业园区 4 n
+阿拉尔市工业园区 4 n
+巴彦县工业园区 4 n
+富锦市工业园区 4 n
+南部县工业园区 4 n
+遂平县工业园区 4 n
+杞县工业园区 4 n
 春景社区居民委员会 4 n
 科技园区南区社区 4 n
 腾蛟镇 4 n
@@ -89363,7 +89368,6 @@
 郎龙村委会 4 n
 上皮林村委会 4 n
 柿子王村委会 4 n
-社区居委会 4 n
 黄铜村委会 4 n
 长龙村民委员会 4 n
 金碑村民委员会 4 n
@@ -122395,7 +122399,6 @@
 艾西曼村 4 n
 庄李家村委会 4 n
 连镇八街村委会 4 n
-虚拟居委会 4 n
 西朱庄村村委会 4 n
 三里堡壹村委会 4 n
 大生村民委员会 4 n
@@ -138419,7 +138422,6 @@
 九簲洲村村民委员会 4 n
 郢都路社区居民委员会 4 n
 温峤镇 4 n
-高?魃缜?居委会 4 n
 先农村委会 4 n
 黄家壆村村民委员会 4 n
 孙羊杯村委会 4 n
@@ -153428,7 +153430,6 @@
 权中村委会 4 n
 段家庄社区 4 n
 东里南社区居委会 4 n
-种畜场虚拟生活区 4 n
 黄绿村委会 4 n
 洛湾居委会 4 n
 五界村社区居委会 4 n
@@ -157956,7 +157957,6 @@
 中章古台嘎查 4 n
 保锋村委会 4 n
 哈拉贵沟村民委员会 4 n
-园艺场(特殊村委会) 4 n
 大巷社区居委会 4 n
 砖窑湾村委会 4 n
 川郑村委会 4 n
@@ -170258,7 +170258,8 @@
 石崇村委会 4 n
 东中社区居民委员会 4 n
 窑头村委会 4 n
-林业局 4 n
+密山市林业局 4 n
+鸡东县林业局 4 n
 群科村村民委员会 4 n
 紫溪街社区居民委员会 4 n
 西马庄子村委会 4 n
@@ -188605,7 +188606,6 @@
 杭北头村委会 4 n
 安火路社区居委会 4 n
 缠道村委会 4 n
-种羊场虚拟生活区 4 n
 世博家园第二居委会 4 n
 上末村委会 4 n
 茶棚滩村民委员会 4 n
@@ -197004,7 +197004,6 @@
 木乃克买里村村委会 4 n
 八五一一农场第二管理区 4 n
 林缺屯村委会 4 n
-灵台县碑子沟(社区)居委会 4 n
 井儿岔村委会 4 n
 石铺村委会 4 n
 企岭村委会 4 n
@@ -217440,7 +217439,6 @@
 新胜社区村民委员会 4 n
 北城村民委员会 4 n
 六楼村民委员会 4 n
-工业园区虚拟社区 4 n
 沙都村委会 4 n
 茶树坪村委会 4 n
 会师镇 4 n
@@ -220030,7 +220028,7 @@
 曲湖社区居委会 4 n
 沙田塅村委会 4 n
 小佐村村委会 4 n
-园艺场 4 n
+鄯善县园艺场 4 n
 嘉泽镇 4 n
 靳勒桥村委会 4 n
 渔坝村民委员会 4 n
@@ -230528,7 +230526,6 @@
 武王庄村委会 4 n
 辛堤村委会 4 n
 池坝乡 4 n
-工业园区管委会 4 n
 桐坝村村民委员会 4 n
 新桥桩子社区居民委员会 4 n
 东垆村委会 4 n
@@ -255069,7 +255066,6 @@
 刘花园村委会 4 n
 创业农场虚拟生活区 4 n
 岱塘村委会 4 n
-街道 4 n
 学堂村民委员会 4 n
 新羊村委会 4 n
 大横岩村 4 n
@@ -261137,7 +261133,6 @@
 陆湾村委会 4 n
 杏佛社区居委会 4 n
 冲恩村委会 4 n
-虚拟园艺场 4 n
 三林世博家园东一居委会 4 n
 傅竹村委会 4 n
 于家港社区居委会 4 n
@@ -277336,7 +277331,6 @@
 郭家崖村村民委员会 4 n
 孙章村村委会 4 n
 西环路 4 n
-市良种场 4 n
 马恒村委会 4 n
 学说村民委员会 4 n
 长港居委会 4 n
@@ -285126,7 +285120,7 @@
 唐北峪村委会 4 n
 六团村村委会 4 n
 董朗村民委员会 4 n
-农场 4 n
+献县农场 4 n
 舜和社区居民委员会 4 n
 吴增口村委会 4 n
 满达社区居委会 4 n
@@ -297957,7 +297951,6 @@
 杨圪档村委会 4 n
 樟屋村委会 4 n
 董家窑村委会 4 n
-种羊场 4 n
 牛庄子村委会 4 n
 双叉河村村民委员会 4 n
 马家滩镇 4 n
@@ -336614,7 +336607,6 @@
 新王楼村委会 4 n
 殿上村委会 4 n
 围三社区 4 n
-种畜场虚拟村委会 4 n
 座虎滩村委会 4 n
 苏码头社区居委会 4 n
 大所二村委会 4 n
@@ -338990,7 +338982,6 @@
 花年村委会 4 n
 卢墩村村民委员会 4 n
 前堰头村村委会 4 n
-园艺场虚拟村委会 4 n
 宋坑村委会 4 n
 中福社区居委会 4 n
 屯庄社区居委会 4 n
@@ -366059,7 +366050,7 @@
 周武宫村民委员会 4 n
 白山村 4 n
 黄屯村村委会 4 n
-金色嘉苑社区 4 n
+金色嘉苑社区 5 n
 贵新街社区居委会 4 n
 松树村 4 n
 大欧营村委会 4 n
@@ -368179,7 +368170,6 @@
 双流坝村村民委员会 4 n
 玉洼村委会 4 n
 古城西大街居委会 4 n
-原种场虚拟社区 4 n
 冷新社区居委会 4 n
 读子村委会 4 n
 周东村委会 4 n
@@ -408976,5 +408966,45 @@ IT家园社区居委会 4 n
 周马村委会 4 n
 南城居民委员会 4 n
 刘家埠村村民委员会 4 n
+新海家园社区 4 n
+马驹桥社区 4 n
 云南白药气雾剂 5 n
 黄河国际生态城 4 n
+获嘉县农场 4 n
+仙桃市工业园区 4 n
+郧西县工业园区 4 n
+高昌区原种场 4 n
+泽普县园艺场 4 n
+麦盖提县园艺场 4 n
+叶城县园艺场 4 n
+玛纳斯县园艺场 4 n
+莎车县工业园区管委会 4 n
+拜城县种羊场 4 n
+阿克陶县原种场 4 n
+新源县种羊场 4 n
+海原县种羊场 4 n
+扎赉特旗种畜场 4 n
+科尔沁左翼后旗原种场 4 n
+肇源县种畜场 4 n
+集贤县种畜场 4 n
+望奎县种畜场 4 n
+安达市原种场 4 n
+密山市种畜场 4 n
+孙吴县种畜场 4 n
+爱辉区种畜场 4 n
+逊克县种畜场 4 n
+逊克县良种场 4 n
+永定区原种场 4 n
+祁阳县原种场 4 n
+贾汪区工业园区管委会 4 n
+泌阳县工业园区管委会 4 n
+获嘉县园艺场 4 n
+获嘉县原种场 4 n
+卫辉市原种场 4 n
+铁岭县种畜场 4 n
+金塔县工业园区管委会 4 n
+临泽县园艺场 4 n
+竹溪县原种场 4 n
+竹溪县种畜场 4 n
+余干县良种场 4 n
+德安县园艺场 4 n