Beispiel #1
0
        //Get feature id from feature set by feature string
        //If feature string is not existed in the set, generate a new id and return it
        public bool BuildFeatures(EncoderTagger tagger)
        {
            var feature = new List <long>();

            using (var v = _buildersPool.GetOrCreate())
            {
                var localBuilder = v.Item;
                //tagger.feature_id_ = tagger.feature_cache_.Count;
                for (var cur = 0; cur < tagger.word_num; ++cur)
                {
                    for (int index = 0; index < unigram_templs_.Count; index++)
                    {
                        var it         = unigram_templs_[index];
                        var strFeature = apply_rule(it, cur, localBuilder, tagger);
                        if (strFeature == null)
                        {
                            Logger.WriteLine(Logger.Level.err, " format error: " + it);
                        }
                        else
                        {
                            var id = featureLexicalDict.GetOrAddId(strFeature.ToString());
                            feature.Add(id);
                        }
                    }
                    tagger.feature_cache_.Add(feature.ToArray());
                    feature.Clear();
                }

                for (var cur = 1; cur < tagger.word_num; ++cur)
                {
                    for (int index = 0; index < bigram_templs_.Count; index++)
                    {
                        var it         = bigram_templs_[index];
                        var strFeature = apply_rule(it, cur, localBuilder, tagger);
                        if (strFeature == null)
                        {
                            Logger.WriteLine(Logger.Level.err, " format error: " + it);
                        }
                        else
                        {
                            var id = featureLexicalDict.GetOrAddId(strFeature.ToString());
                            feature.Add(id);
                        }
                    }

                    tagger.feature_cache_.Add(feature.ToArray());
                    feature.Clear();
                }
            }

            return(true);
        }
Beispiel #2
0
        //Get feature id from feature set by feature string
        //If feature string is not existed in the set, generate a new id and return it
        public bool BuildFeatures(EncoderTagger tagger)
        {
            var feature = new List<long>();

            //tagger.feature_id_ = tagger.feature_cache_.Count;
            for (var cur = 0; cur < tagger.word_num; ++cur)
            {
                for (int index = 0; index < unigram_templs_.Count; index++)
                {
                    var it = unigram_templs_[index];
                    var strFeature = apply_rule(it, cur, tagger);
                    if (strFeature == "")
                    {
                        Console.WriteLine(" format error: " + it);
                    }

                    var id = featureLexicalDict.GetOrAddId(strFeature);
                    feature.Add(id);
                }
                tagger.feature_cache_.Add(feature.ToArray());
                feature.Clear();
            }

            for (var cur = 1; cur < tagger.word_num; ++cur)
            {
                for (int index = 0; index < bigram_templs_.Count; index++)
                {
                    var it = bigram_templs_[index];
                    var strFeature = apply_rule(it, cur, tagger);
                    if (strFeature == "")
                    {
                        Console.WriteLine(" format error: " + it);
                    }
                    var id = featureLexicalDict.GetOrAddId(strFeature);
                    feature.Add(id);
                }

                tagger.feature_cache_.Add(feature.ToArray());
                feature.Clear();

            }

            return true;
        }
Beispiel #3
0
        //Get feature id from feature set by feature string
        //If feature string is not existed in the set, generate a new id and return it
        public bool BuildFeatures(EncoderTagger tagger)
        {
            List<long> feature = new List<long>();

            //tagger.feature_id_ = tagger.feature_cache_.Count;
            for (int cur = 0; cur < tagger.word_num; ++cur)
            {
                foreach (string it in unigram_templs_)
                {
                    string strFeature = apply_rule(it, cur, tagger);
                    if (strFeature == "")
                    {
                        Console.WriteLine(" format error: " + it);
                    }

                    long id = featureLexicalDict.GetOrAddId(strFeature);
                    feature.Add(id);
                }
                tagger.feature_cache_.Add(feature.ToArray());
                feature.Clear();
            }

            for (int cur = 1; cur < tagger.word_num; ++cur)
            {
                foreach (string it in bigram_templs_)
                {
                    string strFeature = apply_rule(it, cur, tagger);
                    if (strFeature == "")
                    {
                        Console.WriteLine(" format error: " + it);
                    }
                    long id = featureLexicalDict.GetOrAddId(strFeature);
                    feature.Add(id);
                }

                tagger.feature_cache_.Add(feature.ToArray());
                feature.Clear();

            }

            return true;
        }