Commit c37cdf4b authored by Alexandre Delanoë's avatar Alexandre Delanoë

[WithList] merge function is right thx to @npouillard

parent 3ac3fa94
...@@ -62,8 +62,6 @@ terms :: TermType Lang -> Text -> IO [Terms] ...@@ -62,8 +62,6 @@ terms :: TermType Lang -> Text -> IO [Terms]
terms (Mono lang) txt = pure $ monoTerms lang txt terms (Mono lang) txt = pure $ monoTerms lang txt
terms (Multi lang) txt = multiterms lang txt terms (Multi lang) txt = multiterms lang txt
terms (MonoMulti lang) txt = terms (Multi lang) txt terms (MonoMulti lang) txt = terms (Multi lang) txt
terms (WithList list) txt = pure . map (\x -> Terms x Set.empty {-TODO-}) $ extractTermsWithList labelPolicy list txt terms (WithList list) txt = pure . map (\x -> Terms x Set.empty {-TODO-}) $ extractTermsWithList list txt
where
labelPolicy = undefined
------------------------------------------------------------------------ ------------------------------------------------------------------------
...@@ -33,8 +33,8 @@ type TermList = [(Label, [[Term]])] ...@@ -33,8 +33,8 @@ type TermList = [(Label, [[Term]])]
type Patterns = [(Pattern, Int, Label)] type Patterns = [(Pattern, Int, Label)]
replaceTerms :: (Term -> Label) -> Patterns -> Sentence Term -> Sentence Label replaceTerms :: Patterns -> Sentence Term -> Sentence Label
replaceTerms labelPolicy pats terms = go 0 terms replaceTerms pats terms = go 0 terms
where where
go _ [] = [] go _ [] = []
go !ix (t:ts) = go !ix (t:ts) =
...@@ -43,9 +43,8 @@ replaceTerms labelPolicy pats terms = go 0 terms ...@@ -43,9 +43,8 @@ replaceTerms labelPolicy pats terms = go 0 terms
Just (len, label) -> Just (len, label) ->
label : go (ix + len) (drop (len - 1) ts) label : go (ix + len) (drop (len - 1) ts)
-- | merge with labelPolicy (can be a Map Term label)
merge (len1, lab1) (len2, lab2) = merge (len1, lab1) (len2, lab2) =
if (labelPolicy lab1) == lab2 then (len2, lab2) else (len1, lab1) if len2 < len1 then (len1, lab1) else (len2, lab2)
m = m =
IntMap.fromListWith merge IntMap.fromListWith merge
...@@ -59,5 +58,5 @@ buildPatterns = concatMap buildPattern ...@@ -59,5 +58,5 @@ buildPatterns = concatMap buildPattern
where where
f alt = (KMP.build alt, length alt, label) f alt = (KMP.build alt, length alt, label)
extractTermsWithList :: (Term -> Label) -> Patterns -> Text -> Corpus Label extractTermsWithList :: Patterns -> Text -> Corpus Label
extractTermsWithList labelPolicy pats = map (replaceTerms labelPolicy pats) . monoTextsBySentence extractTermsWithList pats = map (replaceTerms pats) . monoTextsBySentence
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment