Ejemplo n.º 1
0
Archivo: App.cs Proyecto: kreeben/u-sir
        private int AddFile(string path, VectorTree tree)
        {
            var text   = GetLocalResource(path);
            var tokens = Tokenize(text);

            return(AddDocument(path, tokens, tree));
        }
Ejemplo n.º 2
0
Archivo: App.cs Proyecto: kreeben/u-sir
        private int AddDocument(string documentId, string[] input, VectorTree tree)
        {
            var docId = Hash(documentId);
            var dic   = new SortedList <double, string>();
            var count = tree.Count;

            foreach (var word in input)
            {
                if (string.IsNullOrWhiteSpace(word))
                {
                    continue;
                }

                tree.GetNode(0, 0).Add(word, docId);

                var wordvec = new VectorNode(word).TermVector;

                if (wordvec.CosAngle(tree.Find(0, 0, word).TermVector) < VectorNode.IdenticalAngle)
                {
                    throw new Exception("error");
                }

                //Console.Write("{0} [", word);
                //foreach (var c in word.Components())
                //{
                //    Console.Write("{0}:{1}, ", c.Key, c.Value);
                //}
                //Console.WriteLine("]");
            }

            return(tree.Count - count);
        }
Ejemplo n.º 3
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void AddFiles(string[] input, VectorTree tree)
        {
            ClearFiles(input, tree);

            foreach (var file in Directory.GetFiles(input[1], input[2]))
            {
                var n = AddFile(file, tree);
                Console.Write("{0} {1} ", file, n);
            }
            Console.WriteLine(tree.Visualize(0, 0));
            var size = tree.Size(0, 0);

            Console.WriteLine();
            Console.WriteLine("depth {0} width {1} count: {2}, merges: {3}", size.depth, size.width, tree.Count, tree.MergeCount);

            using (var treeStream = File.Create("tree.bin"))
                using (var wordStream = File.Create("word.bin"))
                    using (var posStream = File.Create("pos.bin"))
                    {
                        tree.GetNode(0, 0).Serialize(treeStream, wordStream, posStream);
                    }

            //using (var treeStream = File.OpenRead("tree.bin"))
            //using (var wordStream = File.OpenRead("word.bin"))
            //{
            //    var deserialized = VectorTree.Load(treeStream, wordStream);

            //    Console.WriteLine(deserialized.Visualize());
            //    var deserializedSize = deserialized.Size();
            //    Console.WriteLine("depth {0} width {1}", deserializedSize.depth, deserializedSize.width);
            //}
        }
Ejemplo n.º 4
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void Tokenize(string[] input, VectorTree tree)
        {
            var tokens = Tokenize(string.Join("", input.Skip(1).ToArray()));

            foreach (var token in tokens)
            {
                Console.WriteLine(token);
            }
        }
Ejemplo n.º 5
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void Add(string[] input, VectorTree tree)
        {
            Add(input.Skip(1).ToArray(), tree);
            Console.WriteLine(tree.Visualize(0, 0));
            var size = tree.Size(0, 0);

            Console.WriteLine();
            Console.WriteLine("depth {0} width {1}", size.depth, size.width);
        }
Ejemplo n.º 6
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void AddWebPage(string[] input, VectorTree tree)
        {
            AddWebPage(input[1], tree);
            Console.WriteLine(tree.Visualize(0, 0));
            Console.WriteLine("count: {0}", tree.Count);
            Console.WriteLine("merges: {0}", tree.MergeCount);
            var size = tree.Size(0, 0);

            Console.WriteLine("depth {0} width {1}", size.depth, size.width);
        }
Ejemplo n.º 7
0
Archivo: App.cs Proyecto: kreeben/u-sir
 public void ClearFiles(string[] input, VectorTree tree)
 {
     foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.bin"))
     {
         File.Delete(file);
     }
     foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.prs"))
     {
         File.Delete(file);
     }
 }
Ejemplo n.º 8
0
Archivo: App.cs Proyecto: kreeben/u-sir
        private void AddWebPage(string url, VectorTree tree)
        {
            var text = GetWebResource(url);

            AddDocument(url, Tokenize(text), tree);
            Console.WriteLine(tree.Visualize(0, 0));
            var size = tree.Size(0, 0);

            Console.WriteLine();
            Console.WriteLine("depth {0} width {1}", size.depth, size.width);
        }
Ejemplo n.º 9
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void Analyze(string[] input, VectorTree tree)
        {
            var node = tree.Find(0, 0, string.Join(" ", input.Skip(1).ToArray()));

            if (node != null)
            {
                foreach (var x in node.TermVector)
                {
                    Console.WriteLine("{0}:{1}", x.Key, x.Value);
                }
            }
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            var vectorTree = new VectorTree <int, string>();

            vectorTree.Add(5, "cinco");
            vectorTree.Add(7, "sete");
            vectorTree.Add(3, "tres");
            vectorTree.Add(8, "oito");
            vectorTree.Add(6, "seis");
            vectorTree.Add(4, "quatro");
            vectorTree.Add(2, "dois");

            var node = vectorTree.Parent(2);
        }
Ejemplo n.º 11
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void Find(string[] input, VectorTree tree)
        {
            var q      = string.Join("", input.Skip(1).ToArray());
            var result = tree.Find(0, 0, q);

            if (result == null)
            {
                Console.WriteLine("{0} not found", q);
            }
            else
            {
                Console.WriteLine("{0} {1} ", result, result.Highscore);
                var sb     = new StringBuilder();
                var cursor = result.Ancestor;
                while (cursor != null)
                {
                    Console.Write("{0} {1} ", cursor, cursor.Angle);
                    cursor = cursor.Ancestor;
                }
                Console.WriteLine();
            }
        }
Ejemplo n.º 12
0
Archivo: App.cs Proyecto: kreeben/u-sir
        public void Compare(string[] input, VectorTree tree)
        {
            var result = Compare(input[1], input[2]);

            Console.WriteLine("angle: {0} len1: {1}, len2: {2}", result.angle, result.len1, result.len2);
        }
Ejemplo n.º 13
0
Archivo: App.cs Proyecto: kreeben/u-sir
 public void GetWebResource(string[] input, VectorTree tree)
 {
     GetWebResource(input[1]);
 }