Exemple #1
0
        public static void commit(NcDBContext db, string[] query)
        {
            var ns = from m in db.Ncs select m;
            // Somehow this fixes certain LINQ errors.
            string qa = query[0];
            string qb = query[1];
            string qc = query[2];

            ns = ns.Where(s => s.A.Equals(qa) && s.B.Equals(qb) && s.C.Equals(qc));
            List <Nc> preld = ns.ToList();

            if (preld.Count < 1)
            {
                Nc n = new Nc();
                n.A     = qa;
                n.B     = qb;
                n.C     = qc;
                n.Count = 1;
                db.Ncs.Add(n);
                db.SaveChanges();
            }
            else
            {
                preld[0].Count          += 1;
                db.Entry(preld[0]).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
Exemple #2
0
 public static void commit(NcDBContext db, List <string[]> queries)
 {
     foreach (string[] i in queries)
     {
         commit(db, i);
     }
 }
        private static string findNextToken(NcDBContext db, string a, string b)
        {
            var ns = from m in db.Ncs select m;

            ns = ns.Where(s => s.A.Equals(a) && s.B.Equals(b));
            List <Nc> preld = ns.ToList();

            if (preld.Count == 0)
            {
                return(null);
            }
            else if (preld.Count == 1)
            {
                return(preld[0].C);
            }
            //preld.Sort((x, y) => x.Count.CompareTo(y.Count));
            Random r = new Random();

            return(preld[r.Next(0, preld.Count)].C);
        }
        /// <summary>
        /// Builds a sentence using the highest supported N-gram level. On missing link at N2, it will terminate.
        /// </summary>
        /// <param name="query">Initial user query.</param>
        /// <returns>Contructed sentence.</returns>
        public static string build(NcDBContext db, string query)
        {
            string        subject = Helpers.SubjectFinder.find(query);
            List <string> tokens  = new List <string>();

            tokens.Add(subject);
            tokens.Add(findNextToken(db, subject));
            while (tokens.Count < 15)
            {
                string nextToken = findNextToken(db, getLastTokens(tokens, 2));
                if (nextToken == null)
                {
                    break;
                }
                else
                {
                    tokens.Add(nextToken);
                }
            }
            return(Helpers.Tokenizer.toString(tokens.ToArray()));
        }
 private static string findNextToken(NcDBContext db, string[] previousTokens)
 {
     return(findNextToken(db, previousTokens[0], previousTokens[1]));
 }