Ejemplo n.º 1
0
        private static List <tuple> CreateTuples4Merging(List <string> fileNames)
        {
            var tuples = new List <tuple>(fileNames.Count);

            for (var i = 0; i < fileNames.Count; i++)
            {
                var nfr = new ngram_filereader(fileNames[i]);
                var tf  = nfr.ReadNext();

                tuples.Add(new tuple(tf, nfr));
            }
            return(tuples);
        }
Ejemplo n.º 2
0
        private static IEnumerable <TermFrequency> GroupByMerging_1(List <string> fileNames)
        {
            var current_tuples = new List <tuple>(fileNames.Count);

            for (var i = 0; i < fileNames.Count; i++)
            {
                var nfr = new ngram_filereader(fileNames[i]);
                var tf  = nfr.ReadNext();

                current_tuples.Add(new tuple(tf, nfr));
            }

            for ( ; current_tuples.Count != 0;)
            {
                current_tuples.Sort(tuple_tf_term_Comparer.Instance);

                var tuple = current_tuples[0];
                var tf    = tuple.tf;

                for (var i = 1; i < current_tuples.Count; i++)
                {
                    var t = current_tuples[i];
                    if (tf.Term == t.tf.Term)
                    {
                        tf.Frequency += t.tf.Frequency;

                        t.tf = t.ngram_filereader.ReadNext();
                        if (t.tf == null)
                        {
                            t.Dispose();
                            current_tuples.RemoveAt(i);
                            i--;
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                tuple.tf = tuple.ngram_filereader.ReadNext();
                if (tuple.tf == null)
                {
                    tuple.Dispose();
                    current_tuples.RemoveAt(0);
                }

                yield return(tf);
            }
        }
Ejemplo n.º 3
0
 public tuple(TermFrequency _tf, ngram_filereader _ngram_filereader)
 {
     tf = _tf;
     ngram_filereader = _ngram_filereader;
 }