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