{-# LANGUAGE OverloadedStrings #-} import NLP.Scores import Data.List.Split import Text.Printf import qualified Data.Text.Lazy as Text import qualified Data.Text.Lazy.IO as Text import qualified Data.Set as Set main = Text.interact $ Text.unlines . map format . map (uncurry avgPrecision . parse) . Text.lines format :: Double -> Text.Text format = Text.pack . printf "%.4f" parse :: Text.Text -> (Set.Set Text.Text, [Text.Text]) parse ln = let [g,t] = Text.words ln in (Set.fromList . Text.splitOn "," $ g, Text.splitOn "," $ t)