private void Bide() { _allSequentialPatterns.Clear(); ProjectedDatabase projectedDatabase = _sequenceDatabase.ConvertToProjectedDatabase(); // Divides the search space according to frequent items and mine each recursively. for (int i = 0; i < _1LengthSequentialPatterns.Count; ++i) { ProjectedDatabase freqItemProjectedDb = ConstructProjectedDatabase(_1LengthSequentialPatterns[i], projectedDatabase); if (freqItemProjectedDb == null || !freqItemProjectedDb.IsNotEmpty) { continue; } if (ClosureChecker.BackScan(freqItemProjectedDb)) { PrunedSequencesCount++; } else { Bide(freqItemProjectedDb); } } }
private void PrefixSpan() { _allSequentialPatterns.Clear(); ProjectedDatabase projectedDatabase = _sequenceDatabase.ConvertToProjectedDatabase(); // Divides the search space according to frequent items and mine each recursively. for (int i = 0; i < _1LengthSequentialPatterns.Count; ++i) { Sequence seqPattern = _1LengthSequentialPatterns[i]; _allSequentialPatterns.Add(seqPattern); LogPattern(seqPattern); ProjectedDatabase freqItemProjectedDb = ConstructProjectedDatabase(seqPattern, projectedDatabase); if (freqItemProjectedDb == null || !freqItemProjectedDb.IsNotEmpty) { continue; } PrefixSpan(freqItemProjectedDb); } }