コード例 #1
0
        /// <summary>
        /// Converts sequence database to the vertical format.
        /// </summary>
        public VerticalSequenceDatabase ConvertToVerticalFormat(IDictionary <uint, int> frequentItems)
        {
            var       verticalDb = new VerticalSequenceDatabase();
            SeqBitmap seqBitmap;

            foreach (Sequence seq in this)
            {
                foreach (var item in frequentItems)
                {
                    if (!verticalDb.TryGetValue(item.Key, out seqBitmap))
                    {
                        seqBitmap = new SeqBitmap {
                            Support = item.Value
                        };

                        verticalDb.Add(item.Key, seqBitmap);
                    }

                    seqBitmap.AddSequence(seq.Size);
                }

                for (int tid = 0; tid < seq.Size; tid++)
                {
                    foreach (uint item in seq[tid])
                    {
                        verticalDb[item].SetTransaction(tid);
                    }
                }
            }

            return(verticalDb);
        }
コード例 #2
0
 public SpamAlgorithm(VerticalSequenceDatabase sequenceDatabase, ILogger logger, IItemsManager itemsManager, IStop stopper)
     : base(logger, itemsManager, stopper)
 {
     _sequenceDatabase = sequenceDatabase;
 }
 public LapinSpamAlgorithm(VerticalSequenceDatabase verticalSequenceDatabase, ILogger logger, IItemsManager itemsManager, IStop stopper)
   : base(logger, itemsManager, stopper)
 {
   _sequenceSequenceDatabase = verticalSequenceDatabase;
 }