Beispiel #1
0
        public void BuildSegmentTable(int n)
        {
            if(_segmentTable == null) _segmentTable = new NGramCache();

            foreach (var item in Documents)
            {
                for (int i = 0; i <= item.LanguageSegments.Count - n; i++)
                {
                    IEnumerable<string> ngram = item.LanguageSegments.Skip(i).Take(n).ToArray();
                    _segmentTable.Increment(ngram, 1);
                }
            }
        }
Beispiel #2
0
        public static NGramCache Aggregate(IEnumerable<NGramCache> nGramCaches)
        {
            var result = new NGramCache();

            foreach (var item in nGramCaches)
            {
                IEnumerable<NGramCache> nGrams = item.NextSegment.Values;

                while(nGrams.Count() > 0)
                {
                    foreach (var xGram in nGrams)
                    {
                        result.Increment(xGram.NGram, xGram.Value);
                    }

                    // next n
                    nGrams = nGrams.SelectMany(el => el.NextSegment.Values);
                }
            }

            return result;
        }
Beispiel #3
0
 public void SetNGramCache(NGramCache value)
 {
     _segmentTable = value;
 }