duckling/Duckling/Ranking/Types.hs

59 lines
1.2 KiB
Haskell
Raw Normal View History

-- Copyright (c) 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the BSD-style license found in the
-- LICENSE file in the root directory of this source tree. An additional grant
-- of patent rights can be found in the PATENTS file in the same directory.
{-# LANGUAGE NoRebindableSyntax #-}
{-# LANGUAGE OverloadedStrings #-}
module Duckling.Ranking.Types
( Feature
, BagOfFeatures
, Class
, Datum
, Dataset
, Classifier(..)
, Classifiers
, ClassData(..)
, infinity
) where
import Data.HashMap.Strict (HashMap)
import Data.Text (Text)
import Prelude
-- -----------------------------------------------------------------
-- Aliases
type Feature = Text
type BagOfFeatures = HashMap Feature Int
type Class = Bool
type Datum = (BagOfFeatures, Class)
type Dataset = HashMap Text [Datum]
-- -----------------------------------------------------------------
-- Classification
data Classifier = Classifier
{ okData :: ClassData
, koData :: ClassData
}
deriving (Eq, Show)
type Classifiers = HashMap Text Classifier
data ClassData = ClassData
{ prior :: Double
, unseen :: Double
, likelihoods :: HashMap Feature Double
, n :: Int
}
deriving (Eq, Show)
infinity :: Double
infinity = 1 / 0