Examples of TIntFloatHashMap


Examples of gnu.trove.map.hash.TIntFloatHashMap

  protected void merge(int c1, int c2) {
    int newid = lastid++;
    heads.put(c1, newid);
    heads.put(c2, newid);
    TIntFloatHashMap newpcc = new TIntFloatHashMap();
    TIntFloatHashMap inewpcc = new TIntFloatHashMap();
    TIntFloatHashMap newwcc = new TIntFloatHashMap();
    float pc1 = wordProb.get(c1);
    float pc2 = wordProb.get(c2);   
    //新类的概率
    float pc = pc1+pc2;

    float w;
    {
      float pcc1 = getProb(c1,c1);
      float pcc2 = getProb(c2,c2);
      float pcc3 = getProb(c1,c2);
      float pcc4 = getProb(c2,c1);
      float pcc = pcc1 + pcc2 + pcc3 + pcc4;
      if(pcc!=0.0f)
        newpcc.put(newid, pcc);
      w = clacW(pcc,pc,pc);
      if(w!=0.0f)
        newwcc.put(newid, w);
    }
    TIntIterator it = slots.iterator();
    while(it.hasNext()){
      int k = it.next();

      float pck = wordProb.get(k);     
      if (c1==k||c2==k) {     
        continue;
      } else {       
        float pcc1 = getProb(c1,k);
        float pcc2 = getProb(c2,k);
        float pcc12 = pcc1 + pcc2;
        if(pcc12!=0.0f)
          newpcc.put(newid, pcc12);
        float p1 = clacW(pcc12,pc,pck);

        float pcc3 = getProb(k,c1);
        float pcc4 = getProb(k,c2);     
        float pcc34 = pcc3 + pcc4;
        if(pcc34!=0.0f)
          inewpcc.put(k, pcc34)
        float p2 = clacW(pcc34,pck,pc);
        w =  p1 + p2;
        if(w!=0.0f)
          newwcc.put(newid, w);
      }
    }

    //更新slots
    slots.remove(c1);
    slots.remove(c2);
    slots.add(newid);
    pcc.put(newid, newpcc);
    pcc.remove(c1);
    pcc.remove(c2);
    TIntFloatIterator it2 = inewpcc.iterator();
    while(it2.hasNext()){
      it2.advance();
      TIntFloatHashMap pmap = pcc.get(it2.key());
      //            if(pmap==null){
      //              pmap = new TIntFloatHashMap();
      //              pcc.put(it2.key(), pmap);
      //            }
      pmap.put(newid, it2.value());
      pmap.remove(c1);
      pmap.remove(c2);
    }


    //
    //newid 永远大于 it3.key;
    wcc.put(newid, new TIntFloatHashMap());
    wcc.remove(c1);
    wcc.remove(c2);
    TIntFloatIterator it3 = newwcc.iterator();
    while(it3.hasNext()){
      it3.advance();
      TIntFloatHashMap pmap = wcc.get(it3.key());
      pmap.put(newid, it3.value());
      pmap.remove(c1);
      pmap.remove(c2);
    }

    wordProb.remove(c1);
    wordProb.remove(c2);
    wordProb.put(newid, pc);
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

  public HashSparseVector() {

  }

  public HashSparseVector(HashSparseVector v) {
    data = new TIntFloatHashMap(v.data);
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

    private float distanceEuclidean(int n, HashSparseVector sv, float baseDistance) {
        HashSparseVector center = classCenter.get(n);
        int count = classCount.get(n);
        float dist = baseDistance / (count * count);
        TIntFloatHashMap data = center.data;
        TIntFloatIterator it = sv.data.iterator();
        while (it.hasNext()) {
            it.advance();
            int key = it.key();
            if (!data.containsKey(key)) {
                dist += it.value() * it.value();
            }
            else {
                float temp = data.get(key) / count;
                dist -= temp * temp;
                dist += (it.value() - temp) * (it.value() - temp);
            }
        }
        return dist;
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

//        vectorcenter.scaleDivide((float)count / (float)(count+1));
    }

    private void updateBaseDist(int classid, HashSparseVector vector) {
        float base = baseDistList.get(classid);
        TIntFloatHashMap center = classCenter.get(classid).data;
        TIntFloatIterator it =  vector.data.iterator();
        while (it.hasNext()) {
            it.advance();
            if (!center.containsKey(it.key())) {
                base += it.value() * it.value();
            }
            else {
                float temp = center.get(it.key());
                base -= temp * temp;
                base += (it.value() - temp) * (it.value() - temp);
            }
        }
        baseDistList.set(classid, base);
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

*/
public class TByteShortByteKeyedFloatHashMap extends TByteShortByteKeyedMap {
  private TIntFloatHashMap map;

  public TByteShortByteKeyedFloatHashMap() {
    map = new TIntFloatHashMap(100);
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

  public TByteShortByteKeyedFloatHashMap() {
    map = new TIntFloatHashMap(100);
  }

  public TByteShortByteKeyedFloatHashMap(int capacity) {
    map = new TIntFloatHashMap(capacity);
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

*/
public class TByteTripleFloatHashMap {
  private TIntFloatHashMap map;

  public TByteTripleFloatHashMap() {
    map = new TIntFloatHashMap(100);
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

  public TByteTripleFloatHashMap() {
    map = new TIntFloatHashMap(100);
  }

  public TByteTripleFloatHashMap(int capacity) {
    map = new TIntFloatHashMap(capacity);
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

   * @throws IllegalArgumentException if the given selected attributes specify
   *         an attribute as selected which is out of range for the given
   *         SparseFloatVector.
   */
  public static SparseFloatVector project(SparseFloatVector v, BitSet selectedAttributes) {
    TIntFloatHashMap values = new TIntFloatHashMap(selectedAttributes.cardinality(), 1);
    for(int d = selectedAttributes.nextSetBit(0); d >= 0; d = selectedAttributes.nextSetBit(d + 1)) {
      if(v.getValue(d + 1) != 0.0f) {
        values.put(d, v.getValue(d + 1));
      }
    }
    SparseFloatVector projectedVector = new SparseFloatVector(values, selectedAttributes.cardinality());
    return projectedVector;
  }
View Full Code Here

Examples of gnu.trove.map.hash.TIntFloatHashMap

  }

  @Override
  protected SparseFloatVector filterSingleObject(SparseFloatVector featureVector) {
    BitSet b = featureVector.getNotNullMask();
    TIntFloatHashMap vals = new TIntFloatHashMap();
    for(int i = b.nextSetBit(0); i >= 0; i = b.nextSetBit(i + 1)) {
      vals.put(i, (float) (featureVector.doubleValue(i) * idf.get(i)));
    }
    return new SparseFloatVector(vals, featureVector.getDimensionality());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.