Exemplo n.º 1
0
        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];
        }
Exemplo n.º 2
0
        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));
        }