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; }
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); }