diff options
| author | Nick White <git@njw.name> | 2019-01-03 13:45:55 +0000 | 
|---|---|---|
| committer | Nick White <git@njw.name> | 2019-01-03 13:45:55 +0000 | 
| commit | 79f598fe512062d355cdd0f67f1ff3dcca0a9483 (patch) | |
| tree | 1080c776dbfe29b46681b7f4e99851ff6aa80d59 | |
| parent | 2dacb45ffd90828dd85a6bf0a16afecb21e0522a (diff) | |
Add basic working line confidence average tool (for ocropus .prob parsing)
| -rw-r--r-- | line-conf-avg/line-conf-avg.go | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/line-conf-avg/line-conf-avg.go b/line-conf-avg/line-conf-avg.go new file mode 100644 index 0000000..18421d3 --- /dev/null +++ b/line-conf-avg/line-conf-avg.go @@ -0,0 +1,56 @@ +package main + +import ( +	"bufio" +	"flag" +	"fmt" +	"log" +	"os" +	"strconv" +	"strings" +) + +func main() { +	flag.Usage = func() { +		fmt.Fprintf(os.Stderr, "Usage: line-conf-avg prob1 [prob2] [...]\n") +		flag.PrintDefaults() +	} +	flag.Parse() +	if flag.NArg() < 1 { +		flag.Usage() +		os.Exit(1) +	} + +	for _, f := range flag.Args() { +		file, err := os.Open(f) +		if err != nil { +			log.Fatal(err) +		} +		defer file.Close() + +		reader := bufio.NewReader(file) + +		totalconf := float64(0) +		num := 0 + +		err = nil +		for err == nil { +			var line string +                        line, err = reader.ReadString('\n') +			fields := strings.Fields(line) + +			if len(fields) == 2 { +				conf, converr := strconv.ParseFloat(fields[1], 64) +				if converr != nil { +					fmt.Fprintf(os.Stderr, "Error: can't convert '%s' to float (full line: %s)\n", fields[1], line) +					continue +				} +				totalconf += conf +				num += 1 +			} +		} +		avg := totalconf / float64(num) + +		fmt.Printf("%s: %.2f%%\n", f, avg) +	} +} | 
