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