From 79f598fe512062d355cdd0f67f1ff3dcca0a9483 Mon Sep 17 00:00:00 2001 From: Nick White Date: Thu, 3 Jan 2019 13:45:55 +0000 Subject: Add basic working line confidence average tool (for ocropus .prob parsing) --- line-conf-avg/line-conf-avg.go | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 line-conf-avg/line-conf-avg.go 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) + } +} -- cgit v1.2.1-24-ge1ad