瀏覽代碼

品牌抽取修改

unknown 6 年之前
父節點
當前提交
00dccde137
共有 4 個文件被更改,包括 7 次插入30 次删除
  1. 1 1
      src/jy/clear/specialsymbols.go
  2. 2 1
      src/jy/extract/extract.go
  3. 0 5
      src/jy/pretreated/analystep.go
  4. 4 23
      src/jy/pretreated/analytable.go

+ 1 - 1
src/jy/clear/specialsymbols.go

@@ -58,6 +58,7 @@ func init() {
 
 	//
 	SymInterCon = qu.ObjArrToStringArr(SpecialSymbols["symintercon"].([]interface{}))
+	//log.Println(string(AnotherRemoveStart([]rune("“教育部高等教育教学评估中心数据中心升级改造”项目"))))
 }
 
 //去除首尾空格、换行、回车
@@ -308,7 +309,6 @@ func AnotherRemoveStart(text []rune) []rune {
 						return []rune(tmptext)
 					}
 				}
-
 			}
 		}
 		if len(symbolIndex) != 0 { //多余的正符号索引位置

+ 2 - 1
src/jy/extract/extract.go

@@ -81,6 +81,7 @@ func RunExtractTestTask(ext *ExtractTask, startId, num string) bool {
 			}
 			//log.Println(v["_id"])
 			j := PreInfo(v)
+			//fmt.Println(j.HasTable, j.HasGoods, j.HasBrand, j.HasKey, "j-------", j.BrandData)
 			ext.TaskInfo.ProcessPool <- true
 			go ext.ExtractProcess(j)
 		}
@@ -217,7 +218,6 @@ func PreInfo(doc map[string]interface{}) *ju.Job {
 		Province:  qu.ObjToString(doc["area"]),
 		Result:    map[string][]*ju.ExtField{},
 		BuyerAddr: qu.ObjToString(doc["buyeraddr"]),
-		HasTable:  0,
 	}
 	qu.Try(func() {
 		pretreated.AnalyStart(j)
@@ -778,6 +778,7 @@ type FieldValue struct {
 
 //分析抽取结果并保存
 func AnalysisSaveResult(j *ju.Job, e *ExtractTask) {
+	//log.Println("============", j.HasBrand, j.HasGoods, j, HasKey, j.HasTable, j.BrandData)
 	doc := j.Data
 	result := j.Result
 	_id := qu.BsonIdToSId((*doc)["_id"])

+ 0 - 5
src/jy/pretreated/analystep.go

@@ -4,7 +4,6 @@
 package pretreated
 
 import (
-	"fmt"
 	"jy/util"
 	qutil "qfw/util"
 	"strings"
@@ -50,7 +49,6 @@ func AnalyStart(job *util.Job) {
 			t1, _ := ComputeConRatio(bl.Text, 2)
 			if len(t1) > 0 {
 				job.HasTable = 1 //添加标识:文本中有table
-				fmt.Println("分块")
 				tabres := AnalyTableV2(t1, job.Category, bl.Title, bl.Text, 2, job.SourceMid)
 				processTableResult(tabres, bl, job)
 				if bl.Title == "" && tabres.BlockTag != "" {
@@ -69,7 +67,6 @@ func AnalyStart(job *util.Job) {
 			job.HasTable = 1 //添加标识:文本中有table
 			newCon = TextAfterRemoveTable(con)
 			job.BlockPackage = FindPackageFromText(job.Title, newCon)
-			fmt.Println("未分块")
 			tabres := AnalyTableV2(tabs, job.Category, "", con, 1, job.SourceMid)
 			processTableResult(tabres, bl, job)
 			//			for k, v := range bl.TableKV.Kv {
@@ -89,7 +86,6 @@ func AnalyStart(job *util.Job) {
 //分析table解析结果
 func processTableResult(tabres *TableResult, block *util.Block, job *util.Job) {
 	//解析结果中的kv
-	fmt.Println("-------------", tabres.SortKV.Keys)
 	kv := map[string]string{}
 	for k, v := range tabres.SortKV.Map {
 		kv[k] = qutil.ObjToString(v)
@@ -217,7 +213,6 @@ func processTableResult(tabres *TableResult, block *util.Block, job *util.Job) {
 		job.HasGoods = tabres.HasGoods
 	}
 	job.HasGoods = tabres.HasGoods
-
 	if len(tabres.BrandData) > 0 { //分块table合并
 		for _, v := range tabres.BrandData {
 			job.BrandData = append(job.BrandData, v) //加入job

+ 4 - 23
src/jy/pretreated/analytable.go

@@ -547,7 +547,6 @@ func AnalyTableV2(tabs []*goquery.Selection, toptype, blockTag, con string, ityp
 
 //开始解析表格集
 func (ts *TableResult) Analy() {
-	fmt.Println("1111111111111111")
 	tabs := []*Table{}
 	contactFormat := &u.ContactFormat{
 		IndexMap: map[int]string{},
@@ -559,7 +558,7 @@ func (ts *TableResult) Analy() {
 		ts := tn.Analy(contactFormat)
 		for _, tab := range ts {
 			tabs = append(tabs, tab)
-			fmt.Println("tab.SortKV.Map", tab.SortKV.Keys)
+			//fmt.Println("tab.SortKV.Map", tab.SortKV.Keys)
 		}
 		//tn.SonTables = append(tn.SonTables, tn)
 	}
@@ -780,9 +779,8 @@ func (table *Table) Analy(contactFormat *u.ContactFormat) []*Table {
 			table.TdContactFormat(contactFormat)
 			//开始查找kv,核心模块
 			table.FindKV()
-			fmt.Println("KvMap----------", table.SortKV.Keys)
 			//table中抽取品牌
-			//table.analyBrand()
+			table.analyBrand()
 			//判断是否是多包,并处理分包的
 			table.CheckMultiPackageByTable()
 			str := "\n"
@@ -2658,20 +2656,18 @@ L:
 }
 
 func (table *Table) analyBrand() {
-	fmt.Println("-------", table.BrandData)
 	//产品名称 品牌 规格 单价 单位 数量  小计 质保期
 	lineMap := make(map[string]map[string]string)
 	lineMapArr := make(map[string]map[string][]string)
 	brandRule := u.BrandRules
 	//将val为数组和string的分开
 	for key, val := range table.SortKV.Map {
-		fmt.Println("key:", key, "	val:", val)
+		//fmt.Println("key:", key, "	val:", val)
 		key = regReplAllSpace.ReplaceAllString(key, "")
 		key = strings.Replace(key, "", "", -1) //处理一个特殊的采购量 经上层处理空格后未处理掉
 		kind := reflect.TypeOf(val).String()
 		//处理多个key相同的数据
 		if kind == "[]string" { //val为数组 {"数量":["1","2","3"]}
-			fmt.Println("=====[]string")
 			/*
 				{
 					"商品":["","",],
@@ -2707,7 +2703,6 @@ func (table *Table) analyBrand() {
 				}
 			}
 		} else if kind == "string" { //val为字符串 {"数量":"1"}
-			fmt.Println("=====string")
 			/*
 				{
 					"商品:"",名称:"",
@@ -2730,16 +2725,12 @@ func (table *Table) analyBrand() {
 			} else { //新增数据
 				lineValMap[key] = realTypeVal
 			}
-			fmt.Println("lineValMap===", lineValMap)
 		}
 	}
-	//fmt.Println("lineMapArr------------------------------", lineMapArr)
-	//fmt.Println("lineMap------------------------------", lineMap)
+
 	//处理数组数据后,匹配必须title和替换要保存的title
 	if len(lineMapArr) > 0 {
 		for _, aMap := range lineMapArr {
-			//u.Debug(aMap)
-			//minNum := 0
 			maxNum := 0
 			arrcount := 0                   //记录key是否存在必须title(数组数据)
 			ka := make(map[string][]string) //最终存储数据
@@ -2754,7 +2745,6 @@ func (table *Table) analyBrand() {
 						arrcount++
 					}
 				}
-				//fmt.Println(arrcount, k0, v0)
 				//替换其它要保存字段
 				for nameR, r := range brandRule["replace"] {
 					if convert(k0, r) { //匹配成功
@@ -2798,7 +2788,6 @@ func (table *Table) analyBrand() {
 	if len(lineMap) > 0 {
 		for _, sMap := range lineMap {
 			strcount := 0 //记录key是否存在必须title(字符串数据)
-			//fmt.Println("---------------", sMap)
 			endStrMap := make(map[string]string)
 			for k1, v1 := range sMap {
 				//匹配必须title
@@ -2806,7 +2795,6 @@ func (table *Table) analyBrand() {
 					if convert(k1, r) { //匹配成功
 						endStrMap[nameM] = v1
 						strcount++
-						//fmt.Println(strcount, k1, v1)
 					}
 				}
 				//替换其它要保存字段
@@ -2826,7 +2814,6 @@ func (table *Table) analyBrand() {
 			}
 		}
 	}
-	fmt.Println("finish---", table.BrandData)
 }
 
 func dealArrData(minNum int, ka map[string][]string) []map[string]string {
@@ -2917,28 +2904,23 @@ func assembleData(m interface{}) []map[string]string {
 
 func convert(key, r string) bool {
 	flag := false
-	//fmt.Println("key1---", key)
 	key = tabletitleclear.ReplaceAllString(key, "")
-	//fmt.Println("key2---", key)
 	reg, err := regexp.Compile(r)
 	if err != nil {
 		fmt.Println("reg err:", err)
 		return flag
 	}
 	flag = reg.MatchString(key)
-	//fmt.Println(key, "	", r, "	", flag)
 	return flag
 }
 
 func hasKey(table *Table, n int) {
-	//fmt.Println("key匹配到:", n, table.TableResult.HasKey)
 	if table.TableResult.HasKey == 1 {
 		return
 	}
 	if n >= 1 {
 		table.TableResult.HasKey = 1
 	}
-	//fmt.Println(table.TableResult.HasKey)
 }
 
 //是否有商品
@@ -2981,7 +2963,6 @@ func hasBrand(table *Table, data interface{}) {
 	if ok { //string数据检查brand
 		if sData != "" {
 			brandFlag = u.BrandGet.CheckSensitiveWord(sData)
-			//fmt.Println("--------------", sData, brandFlag)
 			if len(brandFlag) > 0 {
 				table.TableResult.HasBrand = 1
 			}