packages feed

haskell-conll 0.1.0.1 → 0.1.0.2

raw patch · 9 files changed

+272/−267 lines, 9 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.ConllToken: [$sel:_tnFeats:ConllToken] :: ConllToken cpos fpos ger feats lemma -> feats
- Data.ConllToken: [$sel:_tnHead:ConllToken] :: ConllToken cpos fpos ger feats lemma -> Int
- Data.ConllToken: [$sel:_tnHeadProj:ConllToken] :: ConllToken cpos fpos ger feats lemma -> Text
- Data.ConllToken: [$sel:_tnId:ConllToken] :: ConllToken cpos fpos ger feats lemma -> Int
- Data.ConllToken: [$sel:_tnLemma:ConllToken] :: ConllToken cpos fpos ger feats lemma -> lemma
- Data.ConllToken: [$sel:_tnPosCG:ConllToken] :: ConllToken cpos fpos ger feats lemma -> cpos
- Data.ConllToken: [$sel:_tnPosFG:ConllToken] :: ConllToken cpos fpos ger feats lemma -> fpos
- Data.ConllToken: [$sel:_tnRel:ConllToken] :: ConllToken cpos fpos ger feats lemma -> ger
- Data.ConllToken: [$sel:_tnRelProj:ConllToken] :: ConllToken cpos fpos ger feats lemma -> Text
- Data.ConllToken: [$sel:_tnWord:ConllToken] :: ConllToken cpos fpos ger feats lemma -> Text
- Data.ConllToken: instance (GHC.Classes.Eq ger, GHC.Classes.Eq feats, GHC.Classes.Eq fpos, GHC.Classes.Eq cpos, GHC.Classes.Eq lemma) => GHC.Classes.Eq (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
- Data.ConllToken: instance (GHC.Classes.Ord ger, GHC.Classes.Ord feats, GHC.Classes.Ord fpos, GHC.Classes.Ord cpos, GHC.Classes.Ord lemma) => GHC.Classes.Ord (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
- Data.ConllToken: instance (GHC.Read.Read ger, GHC.Read.Read feats, GHC.Read.Read fpos, GHC.Read.Read cpos, GHC.Read.Read lemma) => GHC.Read.Read (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
- Data.ConllToken: instance (GHC.Show.Show ger, GHC.Show.Show feats, GHC.Show.Show fpos, GHC.Show.Show cpos, GHC.Show.Show lemma) => GHC.Show.Show (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
- Data.ParsedSentence: [$sel:_headToNode:ParsedSentence] :: ParsedSentence cpos fpos ger feats lemma -> Map Int [SyntaxtTree cpos fpos ger feats lemma]
- Data.ParsedSentence: [$sel:_indexToNode:ParsedSentence] :: ParsedSentence cpos fpos ger feats lemma -> Map Int (SyntaxtTree cpos fpos ger feats lemma)
- Data.ParsedSentence: [$sel:_rootNode:ParsedSentence] :: ParsedSentence cpos fpos ger feats lemma -> SyntaxtTree cpos fpos ger feats lemma
+ Data.ConllToken: [_tnFeats] :: ConllToken cpos fpos ger feats lemma -> feats
+ Data.ConllToken: [_tnHeadProj] :: ConllToken cpos fpos ger feats lemma -> Text
+ Data.ConllToken: [_tnHead] :: ConllToken cpos fpos ger feats lemma -> Int
+ Data.ConllToken: [_tnId] :: ConllToken cpos fpos ger feats lemma -> Int
+ Data.ConllToken: [_tnLemma] :: ConllToken cpos fpos ger feats lemma -> lemma
+ Data.ConllToken: [_tnPosCG] :: ConllToken cpos fpos ger feats lemma -> cpos
+ Data.ConllToken: [_tnPosFG] :: ConllToken cpos fpos ger feats lemma -> fpos
+ Data.ConllToken: [_tnRelProj] :: ConllToken cpos fpos ger feats lemma -> Text
+ Data.ConllToken: [_tnRel] :: ConllToken cpos fpos ger feats lemma -> ger
+ Data.ConllToken: [_tnWord] :: ConllToken cpos fpos ger feats lemma -> Text
+ Data.ConllToken: instance (GHC.Classes.Eq lemma, GHC.Classes.Eq cpos, GHC.Classes.Eq fpos, GHC.Classes.Eq feats, GHC.Classes.Eq ger) => GHC.Classes.Eq (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
+ Data.ConllToken: instance (GHC.Classes.Ord lemma, GHC.Classes.Ord cpos, GHC.Classes.Ord fpos, GHC.Classes.Ord feats, GHC.Classes.Ord ger) => GHC.Classes.Ord (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
+ Data.ConllToken: instance (GHC.Read.Read lemma, GHC.Read.Read cpos, GHC.Read.Read fpos, GHC.Read.Read feats, GHC.Read.Read ger) => GHC.Read.Read (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
+ Data.ConllToken: instance (GHC.Show.Show lemma, GHC.Show.Show cpos, GHC.Show.Show fpos, GHC.Show.Show feats, GHC.Show.Show ger) => GHC.Show.Show (Data.ConllToken.ConllToken cpos fpos ger feats lemma)
+ Data.ParsedSentence: [_headToNode] :: ParsedSentence cpos fpos ger feats lemma -> Map Int [SyntaxtTree cpos fpos ger feats lemma]
+ Data.ParsedSentence: [_indexToNode] :: ParsedSentence cpos fpos ger feats lemma -> Map Int (SyntaxtTree cpos fpos ger feats lemma)
+ Data.ParsedSentence: [_rootNode] :: ParsedSentence cpos fpos ger feats lemma -> SyntaxtTree cpos fpos ger feats lemma
+ Data.TagLabel: -- | Generic representation type
+ Data.TagLabel: L1 :: f p -> (:+:)
+ Data.TagLabel: R1 :: g p -> (:+:)
+ Data.TagLabel: class Generic a where {
+ Data.TagLabel: data (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k) :: forall k. () => k -> Type -> k -> Type -> k -> Type
+ Data.TagLabel: from :: Generic a => a -> Rep a x
+ Data.TagLabel: infixr 5 :+:
+ Data.TagLabel: to :: Generic a => Rep a x -> a
+ Data.TagLabel: type family Rep a :: Type -> Type;
+ Data.TagLabel: }
- Data.ConllToken: tnFeats :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n feats_ayNQ. Lens (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) (ConllToken cpos_av3j fpos_av3k ger_av3l feats_ayNQ lemma_av3n) feats_av3m feats_ayNQ
+ Data.ConllToken: tnFeats :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915 feats_ak18. Lens (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) (ConllToken cpos_a911 fpos_a912 ger_a913 feats_ak18 lemma_a915) feats_a914 feats_ak18
- Data.ConllToken: tnHead :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n. Lens' (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) Int
+ Data.ConllToken: tnHead :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915. Lens' (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) Int
- Data.ConllToken: tnHeadProj :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n. Lens' (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) Text
+ Data.ConllToken: tnHeadProj :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915. Lens' (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) Text
- Data.ConllToken: tnId :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n. Lens' (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) Int
+ Data.ConllToken: tnId :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915. Lens' (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) Int
- Data.ConllToken: tnLemma :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n lemma_ayNR. Lens (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_ayNR) lemma_av3n lemma_ayNR
+ Data.ConllToken: tnLemma :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915 lemma_ak19. Lens (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_ak19) lemma_a915 lemma_ak19
- Data.ConllToken: tnPosCG :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n cpos_ayNS. Lens (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) (ConllToken cpos_ayNS fpos_av3k ger_av3l feats_av3m lemma_av3n) cpos_av3j cpos_ayNS
+ Data.ConllToken: tnPosCG :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915 cpos_ak1a. Lens (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) (ConllToken cpos_ak1a fpos_a912 ger_a913 feats_a914 lemma_a915) cpos_a911 cpos_ak1a
- Data.ConllToken: tnPosFG :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n fpos_ayNT. Lens (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) (ConllToken cpos_av3j fpos_ayNT ger_av3l feats_av3m lemma_av3n) fpos_av3k fpos_ayNT
+ Data.ConllToken: tnPosFG :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915 fpos_ak1b. Lens (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) (ConllToken cpos_a911 fpos_ak1b ger_a913 feats_a914 lemma_a915) fpos_a912 fpos_ak1b
- Data.ConllToken: tnRel :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n ger_ayNU. Lens (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) (ConllToken cpos_av3j fpos_av3k ger_ayNU feats_av3m lemma_av3n) ger_av3l ger_ayNU
+ Data.ConllToken: tnRel :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915 ger_ak1c. Lens (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) (ConllToken cpos_a911 fpos_a912 ger_ak1c feats_a914 lemma_a915) ger_a913 ger_ak1c
- Data.ConllToken: tnRelProj :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n. Lens' (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) Text
+ Data.ConllToken: tnRelProj :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915. Lens' (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) Text
- Data.ConllToken: tnWord :: forall cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n. Lens' (ConllToken cpos_av3j fpos_av3k ger_av3l feats_av3m lemma_av3n) Text
+ Data.ConllToken: tnWord :: forall cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915. Lens' (ConllToken cpos_a911 fpos_a912 ger_a913 feats_a914 lemma_a915) Text
- Data.TagLabel: class (Ord label) => TagLabel label where labelMap = fmap to . fromList $ gLabelMap (Proxy :: Proxy (Rep label)) reverseLabelMap = fromList [(b, a) | (a, b) <- assocs labelMap]
+ Data.TagLabel: class (Ord label) => TagLabel label
- Data.TagLabel: fromLabelText :: (TagLabel label) => Text -> Maybe label
+ Data.TagLabel: fromLabelText :: TagLabel label => Text -> Maybe label
- Data.TagLabel: toLabelText :: (TagLabel label) => label -> Text
+ Data.TagLabel: toLabelText :: TagLabel label => label -> Text
- Model.PennTreebank: ClosePar :: (SpelledAs ")") -> POS
+ Model.PennTreebank: ClosePar :: SpelledAs ")" -> POS
- Model.PennTreebank: Colon :: (SpelledAs ":") -> POS
+ Model.PennTreebank: Colon :: SpelledAs ":" -> POS
- Model.PennTreebank: Coma :: (SpelledAs ",") -> POS
+ Model.PennTreebank: Coma :: SpelledAs "," -> POS
- Model.PennTreebank: Dash :: (SpelledAs "--") -> POS
+ Model.PennTreebank: Dash :: SpelledAs "--" -> POS
- Model.PennTreebank: Dollar :: (SpelledAs "$") -> POS
+ Model.PennTreebank: Dollar :: SpelledAs "$" -> POS
- Model.PennTreebank: LRB_ :: (SpelledAs "-LRB-") -> POS
+ Model.PennTreebank: LRB_ :: SpelledAs "-LRB-" -> POS
- Model.PennTreebank: OpenPar :: (SpelledAs "(") -> POS
+ Model.PennTreebank: OpenPar :: SpelledAs "(" -> POS
- Model.PennTreebank: PRP_Dollar :: (SpelledAs "PRP$") -> POS
+ Model.PennTreebank: PRP_Dollar :: SpelledAs "PRP$" -> POS
- Model.PennTreebank: Quotes :: (SpelledAs "''") -> POS
+ Model.PennTreebank: Quotes :: SpelledAs "''" -> POS
- Model.PennTreebank: Quotes2 :: (SpelledAs "``") -> POS
+ Model.PennTreebank: Quotes2 :: SpelledAs "``" -> POS
- Model.PennTreebank: RRB_ :: (SpelledAs "-RRB-") -> POS
+ Model.PennTreebank: RRB_ :: SpelledAs "-RRB-" -> POS
- Model.PennTreebank: Terminator :: (SpelledAs ".") -> POS
+ Model.PennTreebank: Terminator :: SpelledAs "." -> POS
- Model.PennTreebank: WP_Dollar :: (SpelledAs "WP$") -> POS
+ Model.PennTreebank: WP_Dollar :: SpelledAs "WP$" -> POS
- Model.UniversalTreebank: Acl_Relcl :: (SpelledAs "acl:relcl") -> REL
+ Model.UniversalTreebank: Acl_Relcl :: SpelledAs "acl:relcl" -> REL
- Model.UniversalTreebank: Cc_Preconj :: (SpelledAs "cc:preconj") -> REL
+ Model.UniversalTreebank: Cc_Preconj :: SpelledAs "cc:preconj" -> REL
- Model.UniversalTreebank: Compound_Pr :: (SpelledAs "compound:prt") -> REL
+ Model.UniversalTreebank: Compound_Pr :: SpelledAs "compound:prt" -> REL
- Model.UniversalTreebank: Det_Predet :: (SpelledAs "det:predet") -> REL
+ Model.UniversalTreebank: Det_Predet :: SpelledAs "det:predet" -> REL
- Model.UniversalTreebank: Fixed :: (SpelledAs "mwe") -> REL
+ Model.UniversalTreebank: Fixed :: SpelledAs "mwe" -> REL
- Model.UniversalTreebank: Nmod_npmod :: (SpelledAs "nmod:npmod") -> REL
+ Model.UniversalTreebank: Nmod_npmod :: SpelledAs "nmod:npmod" -> REL
- Model.UniversalTreebank: Nmod_poss :: (SpelledAs "nmod:poss") -> REL
+ Model.UniversalTreebank: Nmod_poss :: SpelledAs "nmod:poss" -> REL
- Model.UniversalTreebank: Nmod_tmod :: (SpelledAs "nmod:tmod") -> REL
+ Model.UniversalTreebank: Nmod_tmod :: SpelledAs "nmod:tmod" -> REL

Files

README.md view
@@ -1,31 +1,38 @@ # haskell-conll  [![Build Status](https://travis-ci.com/mgajda/haskell-conll.svg?token=DtSUtnf37TUDy1p4x6fT&branch=master)](https://travis-ci.com/mgajda/haskell-conll)+![Hackage](https://img.shields.io/hackage/v/api-monobank.svg) -Set of Basic Types and Primitives that are used for NLP software such as -- CoreNLP-- SyntaxNet+This library package provides set of foundational types and primitives that can be used in NLP software.+Such as: -and can be extended for usage with other software. +- [CoreNLP](https://github.com/mgajda/syntaxnet-haskell)+- [SyntaxNet](https://ai.googleblog.com/2016/05/announcing-syntaxnet-worlds-most.html) +and can be extended for usage with other software.+ If you're working on custom solutions you can use it also. -# TreeBanks+# Treebank -Library supports+Library provides support for -- [Penn Treebank Tag-set](http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html)-- [Universal Dependencies](http://universaldependencies.org/en/dep/)+- English / [Penn Treebank Tag-set](http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html)+- English / [Universal Dependencies](http://universaldependencies.org/en/dep/)  # Used -This library is used in +This library is used in  - [SyntaxNet Haskell bindings](https://github.com/mgajda/syntaxnet-haskell/)-- [CoreNLP Haskell bindings](https://github.com/mgajda/corenlp-haskell/) +- [CoreNLP Haskell bindings](https://github.com/mgajda/corenlp-haskell/) +# Maintainer++[Sergey Bushnyak](https://github.com/sigrlami)+ # Acknowledgements -- [Michał J. Gajda](https://github.com/mgajda)+- [Michał J. Gajda](https://github.com/mgajda)  - initial idea+- [Sergey Bushnyak](https://github.com/sigrlami) - core maintainer - [Alejandro Duran Pallares](https://github.com/vwwv)-- [Sergey Bushnyak](https://github.com/sigrlami)
haskell-conll.cabal view
@@ -1,74 +1,55 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.31.2.+--+-- see: https://github.com/sol/hpack+--+-- hash: b21428dd633a54dcad8df997e5dd388761faf2c2fb045e8f4e85db3fec48f6ca+ name:                haskell-conll-version:             0.1.0.1+version:             0.1.0.2 synopsis:            Core Types for NLP description:         Provides core types to work with CoreNLP, SyntaxNet. Handling CoNLL format and Syntax Trees.-homepage:            https://github.com/mgajda/haskell-conll#readme-license:             BSD3+homepage:            https://github.com/sigrlami/haskell-conll#readme+bug-reports:         https://github.com/sigrlami/haskell-conll/issues+license:             MIT license-file:        LICENSE-author:              Sergey Bushnyak, Alejandro Duran-Pallares, Michal Gajda+author:              Michal Gajda,+                     Sergey Bushnyak,+                     Alejandro Duran-Pallares maintainer:          sergey.bushnyak@sigrlami.eu-copyright:           Copyright: (c) 2017 Sergey Bushnyak, Michal Gajda, Alejandro Duran-Pallares+copyright:           Copyright: (c) 2017-2019 Michal Gajda,+                     Sergey Bushnyak,+                     Alejandro Duran-Pallares category:            Text build-type:          Simple-extra-source-files:  README.md-cabal-version:       >=1.10--library-  hs-source-dirs:      src-  exposed-modules:     Data.ConllToken-                 ,     Data.ParsedSentence-                 ,     Data.SyntaxTree-                 ,     Data.TagLabel-                 ,     Model.NerCoreNlp-                 ,     Model.PennTreebank-                 ,     Model.UniversalTreebank--  build-depends:       base >= 4.7 && < 5-                     , containers-                     , lens-                     , pretty-show-                     , protolude-                     , split-                     , text--  default-language:    Haskell2010--  default-extensions:          NoImplicitPrelude-                             , BangPatterns-                             , BinaryLiterals-                             , ConstraintKinds-                             , DataKinds-                             , DefaultSignatures-                             , DeriveFunctor-                             , DeriveGeneric-                             , DisambiguateRecordFields-                             , DuplicateRecordFields-                             , EmptyDataDecls-                             , FlexibleContexts-                             , FlexibleInstances-                             , FunctionalDependencies-                             , GADTs-                             , GeneralizedNewtypeDeriving-                             , LambdaCase-                             , MonadComprehensions-                             , MultiParamTypeClasses-                             , MultiWayIf-                             , OverloadedStrings-                             , PartialTypeSignatures-                             , PatternSynonyms-                             , RankNTypes-                             , RecordWildCards-                             , RecursiveDo-                             , ScopedTypeVariables-                             , StandaloneDeriving-                             , TemplateHaskell-                             , TupleSections-                             , TypeFamilies-                             , TypeInType-                             , TypeOperators-                             , TypeSynonymInstances-+extra-source-files:+    README.md  source-repository head-  type:     git+  type: git   location: https://github.com/sigrlami/haskell-conll++library+  hs-source-dirs:+      src+  exposed-modules:+      Data.ConllToken+      Data.ParsedSentence+      Data.SyntaxTree+      Data.TagLabel+      Model.NerCoreNlp+      Model.PennTreebank+      Model.UniversalTreebank+  other-modules:+      Paths_haskell_conll+  build-depends:+      base >=4.7 && <5+    , containers+    , lens+    , pretty-show+    , protolude+    , split+    , text+  default-language: Haskell2010+  default-extensions: NoImplicitPrelude DefaultSignatures OverloadedStrings TemplateHaskell TypeOperators
src/Data/ConllToken.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveFunctor #-}+ module Data.ConllToken where  import           Protolude@@ -6,31 +9,33 @@ --------------------------------------------------------------------------------  -- | Basic data type to work witn CoNLL data format--- +-- data ConllToken cpos fpos ger feats lemma =   ConllToken-    { _tnId        :: Int     -- ^ Index number-    , _tnWord      :: Text    -- ^ Parsed word or punctuation symbol-    , _tnLemma     :: lemma   -- ^ Lemma or stem-    , _tnPosCG     :: cpos    -- ^ Part-of-Speech (POS) coarse-grained (PRON, VERB, DET, NOUN, etc) -    , _tnPosFG     :: fpos    -- ^ Part-of-Speech (POS) fine-grained   (PRP, VBD, DT, NN etc.) -    , _tnFeats     :: feats   -- ^ Unordered set of syntactic and/or morphological features.-    , _tnHead      :: Int     -- ^ Head of the current token, which is either a value of ID or '0'.-    , _tnRel       :: ger     -- ^ grammatical relationships between different words in the sentence, alined with Head-    , _tnHeadProj  :: Text    -- ^ Projective head of current token.-    , _tnRelProj   :: Text    -- ^ Dependency relation to the PHEAD.     +    { _tnId       :: Int   -- ^ Index number+    , _tnWord     :: Text  -- ^ Parsed word or punctuation symbol+    , _tnLemma    :: lemma -- ^ Lemma or stem+    , _tnPosCG    :: cpos  -- ^ Part-of-Speech (POS) coarse-grained (PRON, VERB, DET, NOUN, etc)+    , _tnPosFG    :: fpos  -- ^ Part-of-Speech (POS) fine-grained   (PRP, VBD, DT, NN etc.)+    , _tnFeats    :: feats -- ^ Unordered set of syntactic and/or morphological features.+    , _tnHead     :: Int   -- ^ Head of the current token, which is either a value of ID or '0'.+    , _tnRel      :: ger   -- ^ grammatical relationships between different words in the sentence, alined with Head+    , _tnHeadProj :: Text  -- ^ Projective head of current token.+    , _tnRelProj  :: Text  -- ^ Dependency relation to the PHEAD.     } deriving (Show, Read, Eq, Ord, Generic, Functor)  -- | Describes typical errors when parsing CoNLL from text data --   Contains next filelds:  Reason, LineNumber, Culprit-data SyntaxErrorCoNLL = UnkonwnPosTag                 Int       Text -                      | UnkwownRelTag                 Int       Text -                      | CoulNotParseInteger           Int       Text -                      | InvalidNumberOfElementsOnLine Int       Text -                      | TheresNoRoot-                      deriving(Show,Read,Eq,Ord)+data SyntaxErrorCoNLL =+    UnkonwnPosTag                 Int       Text+  | UnkwownRelTag                 Int       Text+  | CoulNotParseInteger           Int       Text+  | InvalidNumberOfElementsOnLine Int       Text+  | TheresNoRoot+  deriving(Show, Read, Eq, Ord) -$(makeLenses ''ConllToken      )-$(makePrisms ''SyntaxErrorCoNLL)+-- There are multiple conll formats CoNLL, CoNLL-X, CoNLL-U, CoNLL-ST  +$(makeLenses ''ConllToken      )+$(makePrisms ''SyntaxErrorCoNLL)
src/Data/ParsedSentence.hs view
@@ -1,22 +1,24 @@+{-# LANGUAGE DeriveGeneric   #-}+{-# LANGUAGE RecordWildCards #-}+ module Data.ParsedSentence   ( module Data.ParsedSentence   , module Data.SyntaxTree   ) where -import           Protolude-import           Data.SyntaxTree import           Data.Map+import           Data.SyntaxTree+import           Protolude  -------------------------------------------------------------------------------- --- | +-- |  All relations having as "head" the given index data ParsedSentence cpos fpos ger feats lemma =   ParsedSentence   { _rootNode    :: SyntaxtTree cpos fpos ger feats lemma   , _indexToNode :: Map Int (SyntaxtTree cpos fpos ger feats lemma)-  , _headToNode  :: Map Int [SyntaxtTree cpos fpos ger feats lemma] -                    -- ^ All relations having as "head" the given index  -  } deriving(Show,Read,Eq,Generic)+  , _headToNode  :: Map Int [SyntaxtTree cpos fpos ger feats lemma]+  } deriving(Show, Read, Eq, Generic)  -- | sentenceFromRootNode :: SyntaxtTree cpos fpos ger feats lemma@@ -24,7 +26,7 @@ sentenceFromRootNode _rootNode =   ParsedSentence{..}     where-      _indexToNode = fromList          [ (_tnId   $ rootLabel node, node ) | node <- everyNode]    +      _indexToNode = fromList          [ (_tnId   $ rootLabel node, node ) | node <- everyNode]       _headToNode  = fromListWith (++) [ (_tnHead $ rootLabel node,[node]) | node <- everyNode]       everyNode    = everyNodeFrom _rootNode       everyNodeFrom node@(Node _ children) = node:( everyNodeFrom =<< children)
src/Data/SyntaxTree.hs view
@@ -11,27 +11,27 @@  -------------------------------------------------------------------------------- --- |+-- | Wrapper for the tree to describe syntax tree+--   as a structure of connected ConllTokens type SyntaxtTree cpos fpos ger feats lemma =   Tree (ConllToken cpos fpos ger feats lemma)  -- |-createSyntaxTree :: [ConllToken cpos fpos ger feats lemma] +createSyntaxTree :: [ConllToken cpos fpos ger feats lemma]                  -> Either SyntaxErrorCoNLL (SyntaxtTree cpos fpos ger feats lemma) createSyntaxTree conllLines =   note TheresNoRoot $ listToMaybe (treeFrom 0)     where--    indexToNode = fromList [ (_tnId l,l) | l <- conllLines]--    headToNode  = fromListWith (++) [ (_tnHead node,[node]) -                                    | node <- conllLines-                                    ]--    treeFrom n = let relations = fromMaybe [] $ lookup n headToNode                            -                  in [ Node{ rootLabel = node-                           , subForest = treeFrom (_tnId node)-                           }-                     | node <- relations-                     ]+      indexToNode = fromList [ (_tnId l,l)+                             | l <- conllLines+                             ]+      headToNode  = fromListWith (++) [ (_tnHead node,[node])+                                      | node <- conllLines+                                      ] +      treeFrom n = let relations = fromMaybe [] $ lookup n headToNode+                   in [ Node { rootLabel = node+                             , subForest = treeFrom (_tnId node)+                             }+                      | node <- relations+                      ]
src/Data/TagLabel.hs view
@@ -1,15 +1,25 @@-module Data.TagLabel ( module GHC.Generics-                     , TagLabel(..)-                     , SpelledAs(..)-                     , fromLabelText-                     , toLabelText-                     ) where+{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE DataKinds      #-}+{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE ScopedTypeVariables #-} +module Data.TagLabel+        ( module GHC.Generics+        , TagLabel(..)+        , SpelledAs(..)+        , fromLabelText+        , toLabelText+        ) where+ import           Data.Char import           Data.Map import           GHC.Generics    (Generic,Rep(..),(:+:)(..)) import           GHC.TypeLits-import           Protolude       hiding(fromLabel)+import           Protolude       hiding (fromLabel)+import           Protolude.Error import qualified Data.Text       as T import qualified GHC.Generics    as G @@ -29,10 +39,10 @@ fromLabelText :: (TagLabel label) => Text -> Maybe label fromLabelText t = lookup t labelMap --- | +-- | toLabelText   :: (TagLabel label) => label -> Text toLabelText l =-  fromMaybe (error "imposible branch on Data.Label") +  fromMaybe (error "imposible branch on Data.Label")     $ lookup l reverseLabelMap  --------------------------------------------------------------------------------@@ -46,31 +56,31 @@     gLabelMap _ = second M1 <$> gLabelMap (Proxy :: Proxy f)  --- | The labels of sum types are the labels of its parts +-- | The labels of sum types are the labels of its parts instance (GLabel f, GLabel g) => GLabel ( f :+: g) where   gLabelMap _ =  ( second L1  <$> gLabelMap (Proxy :: Proxy f))               ++ ( second R1  <$> gLabelMap (Proxy :: Proxy g))  -- | The label of a constructor without arguments is the constructor's name itself instance (KnownSymbol constructor) => GLabel (C1 ('MetaCons constructor a b) U1) where-  gLabelMap _ = [( convert . toSL $ symbolVal (Proxy :: Proxy constructor) , M1 U1)] +  gLabelMap _ = [( convert . toSL $ symbolVal (Proxy :: Proxy constructor) , M1 U1)]     where       convert s = if T.any isLower s then T.toLower s                                      else s--- | The labels with a constructor with a single argument, are the labels of its argument +-- | The labels with a constructor with a single argument, are the labels of its argument instance (TagLabel labelType) => GLabel (C1 meta1 (S1 meta2 (K1 meta3 labelType))) where   gLabelMap _ = assocs $ (M1 . M1 . K1)  <$> labelMap  --------------------------------------------------------------------------------------- -- Standard labels --- | The labels of a sum type, is the cartesian sum of its labels -instance (TagLabel l1, TagLabel l2)  => TagLabel (Either l1 l2)  +-- | The labels of a sum type, is the cartesian sum of its labels+instance (TagLabel l1, TagLabel l2)  => TagLabel (Either l1 l2)  -- | The label of a `SpelledAs x` is x, where x is a type level literal string (a "Symbol"). instance (KnownSymbol symbol) => TagLabel (SpelledAs symbol) where    labelMap = fromList [(toSL $ symbolVal (Proxy :: Proxy symbol),  SymbolProxy)] -data SpelledAs (s :: Symbol) = SymbolProxy deriving(Show,Read,Eq,Ord,Generic)--+data SpelledAs (s :: Symbol) =+  SymbolProxy+    deriving(Show, Read, Eq, Ord, Generic)
src/Model/NerCoreNlp.hs view
@@ -1,10 +1,12 @@ {-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric  #-} -module Model.NerCoreNlp where +module Model.NerCoreNlp where -import           Protolude import           Data.TagLabel+import           Protolude +--------------------------------------------------------------------------------  {- | Named Entity Recognition (NER) tag set used by `CoreNLP`. @@ -14,24 +16,22 @@  -- | CoreNLP's NER tag set: -data NER = O-         | CARDINAL -         | DATE-         | DURATION-         | FACILITY -         | GPE-         | LOCATION -         | MEASURE-         | MISC-         | MONEY-         | NUMBER-         | ORDINAL-         | ORGANIZATION -         | PERCENT -         | PERSON -         | SET-         | TIME-         deriving(Show,Eq,Read,Ord,Generic,TagLabel)---+data NER =+    O+  | CARDINAL+  | DATE+  | DURATION+  | FACILITY+  | GPE+  | LOCATION+  | MEASURE+  | MISC+  | MONEY+  | NUMBER+  | ORDINAL+  | ORGANIZATION+  | PERCENT+  | PERSON+  | SET+  | TIME+  deriving(Show, Eq, Read, Ord, Generic, TagLabel)
src/Model/PennTreebank.hs view
@@ -1,65 +1,63 @@+{-# LANGUAGE DataKinds      #-} {-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric  #-} -module Model.PennTreebank where +module Model.PennTreebank where -import           Protolude import           Data.TagLabel+import           Protolude  -------------------------------------------------------------------------------- --- | (Penn) Treebank Tag-set +-- | (Penn) Treebank Tag-set --  For documentation see http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html-data POS = CC-         | CD-         | ClosePar    (SpelledAs ")"    )-         | Colon       (SpelledAs ":"    )-         | Coma        (SpelledAs ",")-         | Dash        (SpelledAs "--"   ) -         | Dollar      (SpelledAs "$"    )-         | DT-         | EX-         | FW-         | IN-         | JJ-         | JJR-         | JJS-         | LRB_        (SpelledAs "-LRB-")-         | LS-         | MD-         | NN-         | NNP-         | NNPS-         | NNS-         | OpenPar     (SpelledAs "("    ) -         | PDT-         | POS-         | PRP-         | PRP_Dollar  (SpelledAs "PRP$")-         | Quotes      (SpelledAs "''")-         | Quotes2     (SpelledAs "``")-         | RB-         | RBR-         | RBS-         | RP-         | RRB_        (SpelledAs "-RRB-")-         | SYM-         | Terminator  (SpelledAs "."    )-         | TO-         | UH-         | VB-         | VBD-         | VBG-         | VBN-         | VBP-         | VBZ-         | WDT-         | WP-         | WP_Dollar     (SpelledAs "WP$")-         | WRB-         | UNKNOWN -- when some unknown string used-         deriving(Show,Read,Eq,Ord,Generic,TagLabel)-----+data POS =+    CC+  | CD+  | ClosePar    (SpelledAs ")"    )+  | Colon       (SpelledAs ":"    )+  | Coma        (SpelledAs ",")+  | Dash        (SpelledAs "--"   )+  | Dollar      (SpelledAs "$"    )+  | DT+  | EX+  | FW+  | IN+  | JJ+  | JJR+  | JJS+  | LRB_        (SpelledAs "-LRB-")+  | LS+  | MD+  | NN+  | NNP+  | NNPS+  | NNS+  | OpenPar     (SpelledAs "("    )+  | PDT+  | POS+  | PRP+  | PRP_Dollar  (SpelledAs "PRP$")+  | Quotes      (SpelledAs "''")+  | Quotes2     (SpelledAs "``")+  | RB+  | RBR+  | RBS+  | RP+  | RRB_        (SpelledAs "-RRB-")+  | SYM+  | Terminator  (SpelledAs "."    )+  | TO+  | UH+  | VB+  | VBD+  | VBG+  | VBN+  | VBP+  | VBZ+  | WDT+  | WP+  | WP_Dollar     (SpelledAs "WP$")+  | WRB+  | UNKNOWN -- when some unknown string used+  deriving(Show,Read,Eq,Ord,Generic,TagLabel)
src/Model/UniversalTreebank.hs view
@@ -1,62 +1,64 @@+{-# LANGUAGE DataKinds      #-} {-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric  #-} -module Model.UniversalTreebank where +module Model.UniversalTreebank where -import           Protolude import           Data.TagLabel+import           Protolude  --------------------------------------------------------------------------------  -- | Tags from Universal Dependencies project --   see `http://universaldependencies.org/en/dep/`-data REL = Acl                                    -- ^ clausal modifier of noun-         | Acl_Relcl  (SpelledAs "acl:relcl"   )  -- ^ relative clause modifier-         | Advcl                                  -- ^ adverbial clause modifier-         | Advmod                                 -- ^ adverbial modifier-         | Amod                                   -- ^ adjectival modifier-         | Appos                                  -- ^ appositional modifier-         | Aux                                    -- ^ auxiliary-         | Auxpass                                -- ^ passive auxiliary-         | Case                                   -- ^ case marking-         | Cc                                     -- ^ coordination-         | Cc_Preconj (SpelledAs "cc:preconj"  )  -- ^ preconjunct-         | Ccomp                                  -- ^ clausal complement-         | Compound                               -- ^ compound-         | Compound_Pr(SpelledAs "compound:prt")  -- ^ phrasal verb particle-         | Conj                                   -- ^ conjunct-         | Cop                                    -- ^ copula-         | Csubj                                  -- ^ clausal subject-         | Csubjpass                              -- ^ clausal passive subject-         | Dep                                    -- ^ dependent-         | Det                                    -- ^ determiner-         | Det_Predet (SpelledAs "det:predet"  )  -- ^ predeterminer-         | Discourse                              -- ^ discourse element-         | Dislocated                             -- ^ dislocated elements-         | Dobj                                   -- ^ direct object-         | Expl                                   -- ^ expletive-         | Fixed      (SpelledAs "mwe")           -- ^ multi-word expression-         | Flat                                   -- ^ name-         | Foreign                                -- ^ foreign words-         | Goeswith                               -- ^ goes with-         | Iobj                                   -- ^ indirect object-         | List                                   -- ^ list-         | Mark                                   -- ^ marker-         | Neg                                    -- ^ negation modifier-         | Nmod                                   -- ^ nominal modifier-         | Nmod_npmod (SpelledAs "nmod:npmod"  )  -- ^ noun phrase as adverbial modifier-         | Nmod_poss  (SpelledAs "nmod:poss"   )  -- ^ possessive nominal modifier-         | Nmod_tmod  (SpelledAs "nmod:tmod"   )  -- ^ temporal modifier-         | Nsubj                                  -- ^ nominal subject-         | Nsubjpass                              -- ^ passive nominal subject-         | Nummod                                 -- ^ numeric modifier-         | Orphan                                 -- ^ remnant in ellipsis-         | Parataxis                              -- ^ parataxis-         | Punct                                  -- ^ punctuation-         | Reparandum                             -- ^ overridden disfluency-         | ROOT                                   -- ^ root-         | Root                                   -- ^ root (not main)-         | Vocative                               -- ^ vocative-         | Xcomp                                  -- ^ open clausal complement-         | Unknown                                -- ^ unknown-         deriving(Show,Read,Eq,Ord,Generic,TagLabel)-+data REL =+  Acl                                    -- ^ clausal modifier of noun+  | Acl_Relcl  (SpelledAs "acl:relcl"   )  -- ^ relative clause modifier+  | Advcl                                  -- ^ adverbial clause modifier+  | Advmod                                 -- ^ adverbial modifier+  | Amod                                   -- ^ adjectival modifier+  | Appos                                  -- ^ appositional modifier+  | Aux                                    -- ^ auxiliary+  | Auxpass                                -- ^ passive auxiliary+  | Case                                   -- ^ case marking+  | Cc                                     -- ^ coordination+  | Cc_Preconj (SpelledAs "cc:preconj"  )  -- ^ preconjunct+  | Ccomp                                  -- ^ clausal complement+  | Compound                               -- ^ compound+  | Compound_Pr(SpelledAs "compound:prt")  -- ^ phrasal verb particle+  | Conj                                   -- ^ conjunct+  | Cop                                    -- ^ copula+  | Csubj                                  -- ^ clausal subject+  | Csubjpass                              -- ^ clausal passive subject+  | Dep                                    -- ^ dependent+  | Det                                    -- ^ determiner+  | Det_Predet (SpelledAs "det:predet"  )  -- ^ predeterminer+  | Discourse                              -- ^ discourse element+  | Dislocated                             -- ^ dislocated elements+  | Dobj                                   -- ^ direct object+  | Expl                                   -- ^ expletive+  | Fixed      (SpelledAs "mwe")           -- ^ multi-word expression+  | Flat                                   -- ^ name+  | Foreign                                -- ^ foreign words+  | Goeswith                               -- ^ goes with+  | Iobj                                   -- ^ indirect object+  | List                                   -- ^ list+  | Mark                                   -- ^ marker+  | Neg                                    -- ^ negation modifier+  | Nmod                                   -- ^ nominal modifier+  | Nmod_npmod (SpelledAs "nmod:npmod"  )  -- ^ noun phrase as adverbial modifier+  | Nmod_poss  (SpelledAs "nmod:poss"   )  -- ^ possessive nominal modifier+  | Nmod_tmod  (SpelledAs "nmod:tmod"   )  -- ^ temporal modifier+  | Nsubj                                  -- ^ nominal subject+  | Nsubjpass                              -- ^ passive nominal subject+  | Nummod                                 -- ^ numeric modifier+  | Orphan                                 -- ^ remnant in ellipsis+  | Parataxis                              -- ^ parataxis+  | Punct                                  -- ^ punctuation+  | Reparandum                             -- ^ overridden disfluency+  | ROOT                                   -- ^ root+  | Root                                   -- ^ root (not main)+  | Vocative                               -- ^ vocative+  | Xcomp                                  -- ^ open clausal complement+  | Unknown                                -- ^ unknown+  deriving(Show, Read, Eq, Ord, Generic, TagLabel)