Ejemplo n.º 1
0
        public double GetAffinities(DbObject obj, IEnumerable <string> words, ref Affinities affinities, Type typ = null, int weight = 1)
        {
            double totalScore = 0;
            // affinities = new Affinities();
            SortedList <string, double> results = new SortedList <string, double>();

            foreach (AffinityTable table in affinityTables.Values)
            {
                double score = GetAffinity(table.affinityTableName, words, typ);
                if (score > 0)
                {
                    score       = Math.Log(score, 10);
                    totalScore += score;
                    results.Add(table.affinityTableName, score);
                }
            }
            foreach (string t in results.Keys)
            {
                affinities.Add(t, results[t]);
            }

            if (objectAffinities.ContainsKey(obj))
            {
                T.Assert(affinities == objectAffinities[obj]);
            }
            else
            {
                objectAffinities.Add(obj, affinities);
            }
            //affinities.Add(t, T.Normalize(results[t], 0, totalScore, weight));
            return(totalScore);
        }
Ejemplo n.º 2
0
        public void Normalize()
        {
            return;

            SortedList <string, double> maxes = new SortedList <string, double>();

            foreach (DbObject c in objectAffinities.Keys)
            {
                Affinities a = objectAffinities[c];
                a.Normalize();
                foreach (string t in a.tables)
                {
                    if (!maxes.ContainsKey(t))
                    {
                        maxes.Add(t, 0);
                    }
                    maxes[t] = Math.Max(maxes[t], a.Get(t));
                }
            }
            foreach (DbObject c in objectAffinities.Keys)
            {
                Affinities    a = objectAffinities[c];
                List <string> affinityTables = a.tables.ToList();
                foreach (string t in affinityTables)
                {
                    a.Set(t, T.Normalize(a.Get(t), 0, maxes[t]));
                }
                a.Normalize();
            }
        }
Ejemplo n.º 3
0
        public override int FindAffinities()
        {
            affinities = new Affinities();
            foreach (DbColumn c in columns.Values)
            {
                affinityMatrix.GetAffinities(this, c.objectNameWords, ref affinities, c.dataType, 1);
            }
            affinityMatrix.GetAffinities(this, objectNameWords, ref affinities, null, 50);
            affinities.SummarizeAffinities("important", "descriptive,payment,value,order,need,status,product,sale,manufacturer,customer,person,buyer,client,need,purchase", true);

            return(affinities.Count);
        }