packages feed

chatter-0.3.0.0: appsrc/Evaluate.hs

{-# LANGUAGE OverloadedStrings #-}
module Evaluate where

import qualified Data.Text as T
import qualified Data.Text.IO as T

import System.Environment (getArgs)

import NLP.Corpora.Parsing
import NLP.POS (eval, loadTagger)
import NLP.Types (POSTagger, RawTag, unTS)
import qualified NLP.Corpora.Brown as B

main :: IO ()
main = do
  args <- getArgs
  let modelFile = args!!0
      corpora = tail args
  putStrLn "Loading model..."
  tagger <- (loadTagger modelFile:: IO (POSTagger B.Tag))
  putStrLn "...model loaded."
  rawCorpus <- mapM T.readFile corpora
  let taggedCorpora = map readPOS $ concatMap T.lines $ rawCorpus
      result = eval tagger taggedCorpora
  putStrLn ("Result: " ++ show result)
  putStrLn ("Tokens tagged: "++(show $ length $ concatMap unTS taggedCorpora))