Пример #1
0
 //从词汇表文件中读词并构建词表和hash表
 //由于词汇表中的词语不存在重复,因此与LearnVocabFromTrainFile相比没有做重复词汇的检测
 void ReadVocab(string filename)
 {
     vocab.Clear();
     StreamReader file = new StreamReader(filename);
     while (!file.EndOfStream)
     {
         string[] fields = file.ReadLine().Split('\t');
         vocab_word word1 = new vocab_word();
         word1.word = fields[0];
         word1.cn = Convert.ToInt64(fields[1]);
         if (!vocab.TryAdd(fields[0], word1)) { Console.WriteLine("添加单词失败"); }
     }
 }
Пример #2
0
        //为一个词构建一个vocab_word结构对象,并添加到词表中
        //词频初始化为0,hash值用之前的函数计算,
        //返回该词在词表中的位置
        void AddWordToVocab(string word)
        {
            if (word.Length > MAX_STRING)
            {
                word = word.Substring(0, MAX_STRING);
            }
            if (!vocab.ContainsKey(word))
            {
                vocab_word one_vocab_word = new vocab_word();
                one_vocab_word.cn = 1;
                one_vocab_word.word = word;
                if (!vocab.TryAdd(word, one_vocab_word))
                {
                    Console.WriteLine("插入单词失败");
                }
            }
            else
            {
                vocab[word].cn += 1;
            }

        }
Пример #3
0
 //输入两个词的结构体,返回二者的词频差值   
 Int64 VocabCompare(vocab_word a, vocab_word b)
 {
     return b.cn - a.cn;
 }