读书人

读代码-Pattern跟FrequentPatternMaxH

发布时间: 2012-07-04 19:33:54 作者: rapoo

读代码-Pattern和FrequentPatternMaxHeap
package org.apache.mahout.fpm.pfpgrowth.fpgrowth;
public class Pattern implements Comparable<Pattern>

pattern封装了一组item,每个item的support值,整体的support值

  private boolean addPattern(Pattern frequentPattern) {    if (subPatternCheck) {      Long index = frequentPattern.support();      if (patternIndex.containsKey(index)) {        Set<Pattern> indexSet = patternIndex.get(index);        boolean replace = false;        Pattern replacablePattern = null;        for (Pattern p : indexSet) {          if (frequentPattern.isSubPatternOf(p)) {            return false;          } else if (p.isSubPatternOf(frequentPattern)) {            replace = true;            replacablePattern = p;            break;          }        }        if (replace) {          indexSet.remove(replacablePattern);          if (!indexSet.contains(frequentPattern) && queue.add(frequentPattern)) {            indexSet.add(frequentPattern);          }          return false;        }        queue.add(frequentPattern);        indexSet.add(frequentPattern);      } else {        queue.add(frequentPattern);        Set<Pattern> patternList;        if (!patternIndex.containsKey(index)) {          patternList = new HashSet<Pattern>();          patternIndex.put(index, patternList);        }        patternList = patternIndex.get(index);        patternList.add(frequentPattern);      }    } else {      queue.add(frequentPattern);    }    return true;  }

读书人网 >开源软件

热点推荐