Beispiel #1
0
        // unit test driver
        public static void MainTest(string[] args)
        {
            //String inFile = "../data/Context/word2Vec.data";
            string inFile = "../data/Context/syn1n.data";

            if (args.Length == 1)
            {
                inFile = args[0];
            }
            else if (args.Length > 0)
            {
                Console.Error.WriteLine("Usage: java Word2Vec <inFile>");
                Environment.Exit(1);
            }
            // test
            try {
                Word2Vec word2Vec = new Word2Vec(inFile);
                Console.WriteLine("Dimension: " + word2Vec.GetDimension());
                Console.WriteLine("Word No: " + word2Vec.GetWordNo());
                Console.WriteLine("Word size in WrodVec: " + word2Vec.GetWordVecMap().Keys.Count);
                Console.WriteLine("HasWordVec(man): " + word2Vec.HasWordVec("man"));
                Console.WriteLine("HasWordVec(king): " + word2Vec.HasWordVec("king"));
                Console.WriteLine("HasWordVec(ago): " + word2Vec.HasWordVec("ago"));
                Console.WriteLine("HasWordVec(a): " + word2Vec.HasWordVec("a"));
                Console.WriteLine("HasWordVec(ia): " + word2Vec.HasWordVec("ia"));
                Console.WriteLine("HasWordVec(m): " + word2Vec.HasWordVec("m"));
                Console.WriteLine("HasWordVec(xyxy): " + word2Vec.HasWordVec("xyxy"));
            } catch (Exception e) {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
            }
        }
        // Average wordVec for a list of words
        public static DoubleVec GetAvgWordVecForList(IList <string> wordList, Word2Vec word2Vec)
        {
            // init the matrix to all zero
            int       dimension  = word2Vec.GetDimension();
            DoubleVec aveWordVec = new DoubleVec(dimension);
            int       count      = 0;

            foreach (string word in wordList)
            {
                DoubleVec wordVec = word2Vec.GetWordVec(word);
                if (wordVec != null)
                {
                    aveWordVec.Add(wordVec);
                }
                count++;
            }
            // calculate the avg.
            if (count != 0)
            {
                aveWordVec.Divide(count);
            }
            return(aveWordVec);
        }