|
@@ -64,8 +64,14 @@ func dealWithNameScoreRules(name string) (string, bool, float64 , []map[string]i
|
|
|
if proportion >= 1.0 {
|
|
|
isok = true
|
|
|
} else {
|
|
|
- if float64(hit)/float64(total) >= 0.8 && new_score > standard_score {
|
|
|
|
|
|
+ //前置规则-与分数无关 江苏凤凰出版社--江苏凤凰出版社有限公司
|
|
|
+ //吉林省彩虹城市建设工程有限公司--吉林彩虹城市建设工程有限公司
|
|
|
+ if dealWithPreRule(query_name,new_name) {
|
|
|
+ return new_name, true,new_score, res
|
|
|
+ }
|
|
|
+
|
|
|
+ if float64(hit)/float64(total) >= 0.8 && new_score > standard_score {
|
|
|
str1,str2:=startWordReg_1.FindString(name),startWordReg_1.FindString(new_name)
|
|
|
if str1!="" && str2!="" {
|
|
|
if strings.Contains(str1,str2)||strings.Contains(str2,str1) {
|
|
@@ -81,33 +87,116 @@ func dealWithNameScoreRules(name string) (string, bool, float64 , []map[string]i
|
|
|
}
|
|
|
}
|
|
|
isok = true
|
|
|
- }else if new_score > standard_score {
|
|
|
- str1,str2:=name,new_name
|
|
|
- str1 = strings.ReplaceAll(str1,"责任","")
|
|
|
- str2 = strings.ReplaceAll(str2,"责任","")
|
|
|
+ }else {}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new_name, isok,new_score, res
|
|
|
+ }
|
|
|
+ return new_name,isok,new_score,nil
|
|
|
+}
|
|
|
+
|
|
|
+func dealWithPreRule(name string , new_name string) bool {
|
|
|
+ log.Println("规则时:",name,new_name)
|
|
|
+ endstr := endWordReg.FindString(new_name)
|
|
|
+ if endstr !="" {
|
|
|
+ new_name = strings.ReplaceAll(new_name,endstr,"")
|
|
|
+ }
|
|
|
+ if name==new_name {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ //去掉开头 全程简称
|
|
|
+ str1,str2 := startWordReg_2.FindString(name),startWordReg_2.FindString(new_name)
|
|
|
+ if str1!="" && str2!="" && str1==str2 {
|
|
|
+ //在清全程简称
|
|
|
+ start_str_all_1 := startWordReg_3.FindString(name)
|
|
|
+ if start_str_all_1 !="" {
|
|
|
+ name = strings.ReplaceAll(name,start_str_all_1,"")
|
|
|
+ }else {
|
|
|
+ start_str_sim_1 := startWordReg_2.FindString(name)
|
|
|
+ name = strings.ReplaceAll(name,start_str_sim_1,"")
|
|
|
+ }
|
|
|
|
|
|
- str1 = strings.ReplaceAll(str1,"有限","")
|
|
|
- str2 = strings.ReplaceAll(str2,"有限","")
|
|
|
+ start_str_all_2 := startWordReg_3.FindString(new_name)
|
|
|
+ if start_str_all_2 !="" {
|
|
|
+ new_name = strings.ReplaceAll(new_name,start_str_all_2,"")
|
|
|
+ }else {
|
|
|
+ start_str_sim_2 := startWordReg_2.FindString(new_name)
|
|
|
+ new_name = strings.ReplaceAll(new_name,start_str_sim_2,"")
|
|
|
+ }
|
|
|
+ if name==new_name {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- str1 = strings.ReplaceAll(str1,"科技","")
|
|
|
- str2 = strings.ReplaceAll(str2,"科技","")
|
|
|
|
|
|
- str1 = strings.ReplaceAll(str1,"工程","")
|
|
|
- str2 = strings.ReplaceAll(str2,"工程","")
|
|
|
- if str1==str2 {
|
|
|
- return new_name, true,new_score, res
|
|
|
- }
|
|
|
+ //去掉指定维文字
|
|
|
+ name = strings.ReplaceAll(name,"科技","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"科技","")
|
|
|
|
|
|
- }else {
|
|
|
+ name = strings.ReplaceAll(name,"建筑工程","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"建筑工程","")
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return new_name, isok,new_score, res
|
|
|
+ name = strings.ReplaceAll(name,"工程","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"工程","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"标识","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"标识","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"工业","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"工业","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"公司","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"公司","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"(","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"(","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,")","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,")","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"(","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"(","")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,")","")
|
|
|
+ new_name = strings.ReplaceAll(new_name,")","")
|
|
|
+
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"信息技术","信息")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"信息技术","信息")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"电子科技","电子")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"电子科技","电子")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"电子技术","电子")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"电子技术","电子")
|
|
|
+
|
|
|
+ name = strings.ReplaceAll(name,"建设集团","建设")
|
|
|
+ new_name = strings.ReplaceAll(new_name,"建设集团","建设")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ log.Println("最终清理后-",name,new_name)
|
|
|
+ if name==new_name {
|
|
|
+ return true
|
|
|
}
|
|
|
- return new_name,isok,new_score,nil
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return false
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//击中数量以及比例
|
|
|
func dealWithWordsRules(info_name string, source_name string) (int, int) {
|
|
|
total, hit := 0, 0
|
|
@@ -120,10 +209,13 @@ func dealWithWordsRules(info_name string, source_name string) (int, int) {
|
|
|
info_name = strings.ReplaceAll(info_name, ")", "")
|
|
|
info_name = strings.ReplaceAll(info_name, "(", "")
|
|
|
info_name = strings.ReplaceAll(info_name, ")", "")
|
|
|
+ info_name = strings.ReplaceAll(info_name, "〉", "")
|
|
|
+
|
|
|
source_name = strings.ReplaceAll(source_name, "(", "")
|
|
|
source_name = strings.ReplaceAll(source_name, ")", "")
|
|
|
source_name = strings.ReplaceAll(source_name, "(", "")
|
|
|
source_name = strings.ReplaceAll(source_name, ")", "")
|
|
|
+ source_name = strings.ReplaceAll(source_name, "〉", "")
|
|
|
|
|
|
nameArr, _ := calculateWordCount(info_name)
|
|
|
_, total = calculateWordCount(source_name)
|