public static IDictionary<uint, SeqBitmap> ConvertSequenceDatabaseToVerticalFormat(SequenceDatabase sequenceDatabase, IDictionary<uint, int> frequentItems)
    {
      var verticalDb = new Dictionary<uint, SeqBitmap>();
      SeqBitmap seqBitmap;

      foreach (Sequence seq in sequenceDatabase)
      {
        foreach (var item in frequentItems)
        {
          if (!verticalDb.TryGetValue((uint) item.Key, out seqBitmap))
          {
            seqBitmap = new SeqBitmap();
            seqBitmap.Support = item.Value;
            verticalDb.Add((uint) 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;
    }
 public PrefixSpanAlgorithm(SequenceDatabase database, ILogger logger, IItemsManager itemsManager, IStop stopper)
   :base(logger, itemsManager, stopper)
 {
   _sequenceDatabase = database;
 }
 public BideAlgorithm(SequenceDatabase database, ILogger logger, IItemsManager itemsManager, IStop stopper)
     : base(logger, itemsManager, stopper)
 {
     _sequenceDatabase = database;
 }
Example #4
0
        public static IDictionary <uint, SeqBitmap> ConvertSequenceDatabaseToVerticalFormat(SequenceDatabase sequenceDatabase, IDictionary <uint, int> frequentItems)
        {
            var       verticalDb = new Dictionary <uint, SeqBitmap>();
            SeqBitmap seqBitmap;

            foreach (Sequence seq in sequenceDatabase)
            {
                foreach (var item in frequentItems)
                {
                    if (!verticalDb.TryGetValue((uint)item.Key, out seqBitmap))
                    {
                        seqBitmap         = new SeqBitmap();
                        seqBitmap.Support = item.Value;
                        verticalDb.Add((uint)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);
        }