public LinguisticSummary(LinguisticSummaryParameter quantifier, List <LinguisticSummaryParameter> qualifier, List <LinguisticSummaryParameter> summarizer, Dictionary <string, double> hedges) { quantifierParam = quantifier; qualifierParam = qualifier; summarizerParam = summarizer; this.hedges = hedges; qualifierNumber = 0; foreach (var w in qualifier) { if (w.var != null) { qualifierNumber++; } } summarizerNumber = 0; foreach (var s in summarizer) { if (s.var != null) { summarizerNumber++; } } summarizerSet = new FuzzySet[summarizerNumber]; qualifierSet = new FuzzySet[qualifierNumber]; }
public static LinguisticSummary CreateSummary(List <string> quantifier, List <string> qualifier, List <string> summarizer) { if (quantifier.Count != 1) { throw new Exception("CreateSummary"); } // quantifier var q = new LinguisticSummaryParameter(); var qArgs = quantifier.First().Split(','); var qMods = qArgs.Take(2).ToArray(); var qName = qArgs[2]; foreach (var qq in quantifiers) { if (qq.isCorrect(qName)) { q.var = qq; q.modifiers = qMods; q.label = qq.getLabel(qName); break; } } // qualifier var wList = new List <LinguisticSummaryParameter>(); for (int i = 0; i < qualifier.Count; i++) { var wArgs = qualifier[i].Split(','); var w = new LinguisticSummaryParameter(); w.modifiers = wArgs.Take(2).ToArray(); if (wArgs.Length > 3) { w.connector = wArgs[3]; } var wName = wArgs[2]; foreach (var ww in qualifiers) { if (ww.isCorrect(wName)) { w.var = ww; w.label = ww.getLabel(wName); break; } } wList.Add(w); } // summarizer var sList = new List <LinguisticSummaryParameter>(); for (int i = 0; i < summarizer.Count; i++) { var sArgs = summarizer[i].Split(','); var s = new LinguisticSummaryParameter(); s.modifiers = sArgs.Take(2).ToArray(); if (sArgs.Length > 3) { s.connector = sArgs[3]; } var sName = sArgs[2]; foreach (var ss in summarizers) { if (ss.isCorrect(sName)) { s.var = ss; s.label = ss.getLabel(sName); break; } } sList.Add(s); } return(new LinguisticSummary(q, wList, sList, hedges)); }