-- 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