-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple scoring schemes for word alignments -- -- Provides a simple scoring scheme for word alignments. @package NaturalLanguageAlphabets @version 0.1.1.0 -- | This module defines a simple scoring scheme based on pairs of -- unigrams. module NLP.Scoring.SimpleUnigram -- | Score BTIs x and y based on the simple -- scoring system: (i) lookup (x,y) and use the score if found; (ii) if -- (x,y) is not in the database, then return the default matching -- defMatch score if x==y, otherwise return the default -- mismatch defMismatch score. scoreUnigram :: SimpleScoring -> BTI -> BTI -> Double -- | Collect the hashtable and scalar values for simple scoring. -- -- TODO binary and cereal instances data SimpleScoring SimpleScoring :: !(HashMap (BTI, BTI) Double) -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> !Double -> SimpleScoring [simpleScore] :: SimpleScoring -> !(HashMap (BTI, BTI) Double) [gapScore] :: SimpleScoring -> !Double [gapOpen] :: SimpleScoring -> !Double [gapExt] :: SimpleScoring -> !Double [defMatch] :: SimpleScoring -> !Double [defMismatch] :: SimpleScoring -> !Double [preSufOpen] :: SimpleScoring -> !Double [preSufExt] :: SimpleScoring -> !Double instance GHC.Generics.Generic NLP.Scoring.SimpleUnigram.SimpleScoring instance GHC.Classes.Eq NLP.Scoring.SimpleUnigram.SimpleScoring instance GHC.Show.Show NLP.Scoring.SimpleUnigram.SimpleScoring instance GHC.Read.Read NLP.Scoring.SimpleUnigram.SimpleScoring instance Data.Aeson.Types.FromJSON.FromJSON NLP.Scoring.SimpleUnigram.SimpleScoring instance Data.Aeson.Types.ToJSON.ToJSON NLP.Scoring.SimpleUnigram.SimpleScoring module NLP.Scoring.SimpleUnigram.Import -- | Each parsed line gives a set of characters, or tells us a score. -- -- TODO add LPimport which starts a recursive import (note: -- start by storing the hash or whatever of the file to be imported so -- that we can comment on circular imports) data ParsedLine PLset :: Text -> [BTI] -> ParsedLine PLeq :: Text -> Double -> ParsedLine PLeqset :: Text -> [BTI] -> ParsedLine PLinset :: Text -> Text -> Double -> ParsedLine PLgap :: Double -> ParsedLine PLgapopen :: Double -> ParsedLine PLgapextend :: Double -> ParsedLine PLdefmatch :: Double -> ParsedLine PLdefmismatch :: Double -> ParsedLine PLpresufOpen :: Double -> ParsedLine PLpresufExt :: Double -> ParsedLine PLcomment :: Text -> ParsedLine -- | Here we simple parse individual lines. parseLine :: Text -> ParsedLine -- | Parses a bytestring to create a simple scoring. We don't do much error -- checking, many of the bindings below will easily fail. -- -- TODO obviously: implement error-checking genSimpleScoring :: Text -> SimpleScoring -- | parse a simple scoring file. simpleScoreFromFile :: FilePath -> IO SimpleScoring instance GHC.Classes.Ord NLP.Scoring.SimpleUnigram.Import.ParsedLine instance GHC.Classes.Eq NLP.Scoring.SimpleUnigram.Import.ParsedLine instance GHC.Show.Show NLP.Scoring.SimpleUnigram.Import.ParsedLine module NLP.Scoring.SimpleUnigram.Default -- | Default simple unigram scores for a system of consonants, liquid -- consonants, and vowels of arbitrary scale. clvDefaults :: SimpleScoring