packages feed

concraft 0.7.1 → 0.7.2

raw patch · 2 files changed

+38/−20 lines, 2 files

Files

concraft.cabal view
@@ -1,5 +1,5 @@ name:               concraft-version:            0.7.1+version:            0.7.2 synopsis:           Morphological disambiguation based on constrained CRFs description:     A morphological disambiguation library based on
src/NLP/Concraft.hs view
@@ -12,6 +12,7 @@  -- * Training , train+, reAnaTrain ) where  import           System.IO (hClose)@@ -38,7 +39,7 @@   modelVersion :: String-modelVersion = "0.5"+modelVersion = "0.7"   -- | Concraft data.@@ -94,39 +95,56 @@ ---------------------  --- INFO: We take an input dataset as a list, since it is read only once.+-- | Train guessing and disambiguation models after dataset reanalysis.+reAnaTrain+    :: (Word w, FromJSON w, ToJSON w)+    => P.Tagset             -- ^ Tagset+    -> Analyse w P.Tag      -- ^ Analysis function+    -> Int                  -- ^ Numer of guessed tags for each word +    -> G.TrainConf          -- ^ Guessing model training configuration+    -> D.TrainConf          -- ^ Disambiguation model training configuration+    -> IO [SentO w P.Tag]   -- ^ Training data+    -> IO [SentO w P.Tag]   -- ^ Evaluation data+    -> IO Concraft+reAnaTrain tagset ana guessNum guessConf disambConf train0'IO eval0'IO = do+    Temp.withTempDirectory "." ".reana" $ \tmpDir -> do+    let temp = withTemp tagset tmpDir +    putStrLn "\n===== Reanalysis ====="+    trainR <- reAnaPar tagset ana =<< train0'IO+    evalR  <- reAnaPar tagset ana =<< eval0'IO++    temp "train" trainR $ \trainR'IO -> do+    temp "eval"  evalR  $ \evalR'IO  -> do+    train tagset guessNum guessConf disambConf trainR'IO evalR'IO++ -- | Train guessing and disambiguation models.+-- No reanalysis will be performed. train     :: (Word w, FromJSON w, ToJSON w)-    => P.Tagset         -- ^ Tagset-    -> Analyse w P.Tag  -- ^ Analysis function-    -> Int              -- ^ Numer of guessed tags for each word -    -> G.TrainConf      -- ^ Guessing model training configuration-    -> D.TrainConf      -- ^ Disambiguation model training configuration-    -> [SentO w P.Tag]  -- ^ Training data-    -> [SentO w P.Tag]  -- ^ Evaluation data+    => P.Tagset             -- ^ Tagset+    -> Int                  -- ^ Numer of guessed tags for each word+    -> G.TrainConf          -- ^ Guessing model training configuration+    -> D.TrainConf          -- ^ Disambiguation model training configuration+    -> IO [Sent w P.Tag]    -- ^ Training data+    -> IO [Sent w P.Tag]    -- ^ Evaluation data     -> IO Concraft-train tagset ana guessNum guessConf disambConf train0 eval0 = do-    Temp.withTempDirectory "." ".tmp" $ \tmpDir -> do+train tagset guessNum guessConf disambConf trainR'IO evalR'IO = do+    Temp.withTempDirectory "." ".guessed" $ \tmpDir -> do     let temp = withTemp tagset tmpDir -    putStrLn "\n===== Reanalysis ====="-    trainR <- reAnaPar tagset ana train0-    evalR  <- reAnaPar tagset ana eval0-    temp "train-reana" trainR $ \trainR'IO -> do-    temp "eval-reana"  evalR  $ \evalR'IO  -> do-     putStrLn "\n===== Train guessing model ====="     guesser <- G.train guessConf trainR'IO evalR'IO     trainG  <- map (G.guessSent guessNum guesser) <$> trainR'IO     evalG   <- map (G.guessSent guessNum guesser) <$> evalR'IO-    temp "train-guessed" trainG $ \trainG'IO -> do-    temp "eval-guessed"  evalG  $ \evalG'IO  -> do+    temp "train" trainG $ \trainG'IO -> do+    temp "eval"  evalG  $ \evalG'IO  -> d      putStrLn "\n===== Train disambiguation model ====="     disamb <- D.train disambConf trainG'IO evalG'IO     return $ Concraft tagset guessNum guesser disamb+   ---------------------