|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.stanford.nlp.stats.Counter<E>
public class Counter<E>
A specialized kind of hash table (or map) for storing numeric counts for objects. It works like a Map, but with different methods for easily getting/setting/incrementing counts for objects and computing various functions with the counts. The Counter constructor and addAll method can be used to copy another Counter's contents over. This class also provides access to Comparators that can be used to sort the keys or entries of this Counter by the counts, in either ascending or descending order.
Implementation note: Note that this class stores atotalCount
field as well as the map. This makes certain
operations much more efficient, but means that any methods that change the
map must also update totalCount
appropriately. If you use the
setCount
method, then you cannot go wrong.
Constructor Summary | |
---|---|
Counter()
Constructs a new (empty) Counter. |
|
Counter(Collection<E> collection)
Constructs a new Counter by counting the elements in the given Collection. |
|
Counter(GenericCounter<E> c)
Constructs a new Counter with the contents of the given Counter. |
|
Counter(MapFactory mapFactory)
Pass in a MapFactory and the map it vends will back your counter. |
Method Summary | |
---|---|
void |
addAll(Collection<E> collection)
Calls incrementCount(key) on each key in the given collection. |
void |
addAll(GenericCounter<E> counter)
Adds the counts in the given Counter to the counts in this Counter. |
void |
addMultiple(GenericCounter<E> counter,
double d)
Adds the counts in the given Counter to the counts in this Counter. |
E |
argmax()
Finds and returns the key in this Counter with the largest count. |
E |
argmax(Comparator<E> tieBreaker)
Finds and returns the key in this Counter with the largest count. |
E |
argmin()
Finds and returns the key in this Counter with the smallest count. |
E |
argmin(Comparator<E> tieBreaker)
Finds and returns the key in this Counter with the smallest count. |
BinaryHeapPriorityQueue<E> |
asBinaryHeapPriorityQueue()
Builds a priority queue whose elements are the counter's elements, and whose priorities are those elements' counts in the counter. |
PriorityQueue<E> |
asPriorityQueue()
Builds a priority queue whose elements are the counter's elements, and whose priorities are those elements' counts in the counter. |
double |
averageCount()
Returns the mean of all the counts (totalCount/size). |
void |
clear()
Removes all counts from this Counter. |
Object |
clone()
|
Comparator<E> |
comparator()
Comparator that sorts objects by (increasing) count. |
Comparator |
comparator(boolean ascending)
Returns a comparator suitable for sorting this Counter's keys or entries by their respective counts. |
Comparator |
comparator(boolean ascending,
boolean useMagnitude)
Returns a comparator suitable for sorting this Counter's keys or entries by their respective value or magnitude (unsigned value). |
boolean |
containsKey(E key)
|
double |
decrementCount(E key)
Subtracts 1.0 from the count for the given key. |
double |
decrementCount(E key,
double count)
Subtracts the given count from the current count for the given key. |
void |
decrementCounts(Collection<E> keys)
Subtracts 1.0 from the counts of each of the given keys. |
void |
decrementCounts(Collection<E> keys,
double count)
Subtracts the given count from the current counts for each of the given keys. |
void |
divideBy(Counter<E> counter)
Divides every non-zero count by the count for the corresponding key in the argument Counter. |
void |
divideBy(double divisor)
Divides every count by the given divisor. |
double |
doubleMax()
Returns the value of the maximum entry in this counter, as a double. |
Set<Map.Entry<E,MutableDouble>> |
entrySet()
|
boolean |
equals(Object o)
|
static Counter<String> |
fromString(String s)
converts from format printed by toString method back into a Counter |
double |
getCount(E key)
Returns the current count for the given key, which is 0 if it hasn't been seen before. |
String |
getCountAsString(E key)
Returns the count for this key as a String. |
MapFactory |
getMapFactory()
Returns the MapFactory used by this counter. |
double |
getNormalizedCount(E key)
Return the proportion of the Counter mass under this key. |
int |
hashCode()
|
void |
incrementAll(double count)
Adds the same amount to every count, that is to every key currently stored in the counter (with no lookups). |
double |
incrementCount(E key)
Adds 1.0 to the count for the given key. |
double |
incrementCount(E key,
double count)
Adds the given count to the current count for the given key. |
void |
incrementCounts(Collection<E> keys)
Adds 1.0 to the counts for each of the given keys. |
void |
incrementCounts(Collection<E> keys,
double count)
Adds the given count to the current counts for each of the given keys. |
boolean |
isEmpty()
|
Iterator<E> |
iterator()
|
Set<E> |
keysAbove(double countThreshold)
Returns the set of keys whose counts are at or above the given threshold. |
Set<E> |
keysAt(double count)
Returns the set of keys that have exactly the given count. |
Set<E> |
keysBelow(double countThreshold)
Returns the set of keys whose counts are at or below the given threshold. |
Set<E> |
keySet()
Returns the Set of keys in this counter. |
double |
logIncrementCount(E key,
double count)
If the current count for the object is c1, and you call logIncrementCount with a value of c2, then the new value will be log(e^c1 + e^c2). |
void |
logNormalize()
|
double |
logSum()
|
static void |
main(String[] args)
For internal debugging purposes only. |
double |
max()
Finds and returns the largest count in this Counter. |
double |
min()
Finds and returns the smallest count in this Counter. |
void |
multiplyBy(double multiplier)
Multiplies every count by the given multiplier. |
void |
normalize()
This has been de-deprecated in order to reduce compilation warnings, but really you should create a Distribution
instead. |
MutableDouble |
remove(E key)
Removes the given key from this Counter. |
void |
removeAll(Collection<E> keys)
Removes all the given keys from this Counter. |
void |
removeZeroCounts()
Removes all keys whose count is 0. |
void |
retainTop(int num)
|
void |
setCount(E key,
double count)
Sets the current count for the given key. |
void |
setCount(E key,
String s)
Sets the count for this key to be the number encoded in the given String. |
void |
setCounts(Collection<E> keys,
double count)
Sets the current count for each of the given keys. |
int |
size()
Returns the number of keys stored in the counter. |
void |
subtractAll(GenericCounter<E> counter)
Subtracts the counts in the given Counter to the counts in this Counter. |
void |
subtractAll(GenericCounter<E> counter,
boolean removeZeroKeys)
Subtracts the counts in the given Counter from the counts in this Counter. |
void |
subtractMultiple(GenericCounter<E> counter,
double d)
Subtracts the counts in the given Counter to the counts in this Counter. |
String |
toString()
|
String |
toString(int maxKeysToPrint)
Returns a string representation which includes no more than the maxKeysToPrint elements with largest counts. |
String |
toString(NumberFormat nf)
Pretty print a Counter. |
String |
toString(NumberFormat nf,
String preAppend,
String postAppend,
String keyValSeparator,
String itemSeparator)
Pretty print a Counter. |
double |
totalCount()
Returns the current total count for all objects in this Counter. |
double |
totalCount(Filter<E> filter)
Returns the total count for all objects in this Counter that pass the given Filter. |
double |
totalDoubleCount()
Returns the current total count for all objects in this Counter. |
static Counter<String> |
valueOf(String s)
Returns the Counter over Strings specified by this String. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Counter()
public Counter(MapFactory mapFactory)
public Counter(GenericCounter<E> c)
public Counter(Collection<E> collection)
Method Detail |
---|
public MapFactory getMapFactory()
GenericCounter
getMapFactory
in interface GenericCounter<E>
public double totalCount()
public Iterator<E> iterator()
iterator
in interface Iterable<E>
public double totalDoubleCount()
totalDoubleCount
in interface GenericCounter<E>
public double totalCount(Filter<E> filter)
totalCount()
.
public double logSum()
public void logNormalize()
public double averageCount()
public double getCount(E key)
get
that casts
and extracts the primitive value.
getCount
in interface GenericCounter<E>
public String getCountAsString(E key)
GenericCounter
getCountAsString
in interface GenericCounter<E>
public double getNormalizedCount(E key)
Distribution
instead of using this
method.
public void setCount(E key, double count)
incrementCount(Object,double)
.
public void setCount(E key, String s)
GenericCounter
setCount
in interface GenericCounter<E>
public void setCounts(Collection<E> keys, double count)
incrementCounts(Collection, double)
.
public double incrementCount(E key, double count)
incrementCount(Object)
.
To set a count to a specifc value instead of incrementing it, use
setCount(Object,double)
.
public double logIncrementCount(E key, double count)
setCount(Object,double)
.
public double incrementCount(E key)
incrementCount(Object,double)
.
To set a count to a specifc value instead of incrementing it, use
setCount(Object,double)
.
public void incrementCounts(Collection<E> keys, double count)
incrementCounts(Collection)
.
To set the counts of a collection of objects to a specific value instead
of incrementing them, use setCounts(Collection,double)
.
public void incrementCounts(Collection<E> keys)
incrementCounts(Collection,double)
.
To set the counts of a collection of objects to a specifc value instead
of incrementing them, use setCounts(Collection,double)
.
public void incrementAll(double count)
count
- The amount to be addedpublic double decrementCount(E key, double count)
decrementCount(Object)
.
To set a count to a specifc value instead of decrementing it, use
setCount(Object,double)
.
public double decrementCount(E key)
decrementCount(Object,double)
.
To set a count to a specifc value instead of decrementing it, use
setCount(Object,double)
.
public void decrementCounts(Collection<E> keys, double count)
decrementCounts(Collection)
.
To set the counts of a collection of objects to a specific value instead
of decrementing them, use setCounts(Collection,double)
.
public void decrementCounts(Collection<E> keys)
decrementCounts(Collection,double)
.
To set the counts of a collection of objects to a specifc value instead
of decrementing them, use setCounts(Collection,double)
.
public void addAll(GenericCounter<E> counter)
public void addMultiple(GenericCounter<E> counter, double d)
public void subtractAll(GenericCounter<E> counter)
public void subtractMultiple(GenericCounter<E> counter, double d)
public void addAll(Collection<E> collection)
public void multiplyBy(double multiplier)
public void divideBy(double divisor)
public void divideBy(Counter<E> counter)
counter
- Entries in argument scale individual keys in this counterpublic void subtractAll(GenericCounter<E> counter, boolean removeZeroKeys)
public boolean containsKey(E key)
containsKey
in interface GenericCounter<E>
public MutableDouble remove(E key)
public void removeAll(Collection<E> keys)
public void clear()
public int size()
size
in interface GenericCounter<E>
public boolean isEmpty()
public Set<E> keySet()
GenericCounter
keySet
in interface GenericCounter<E>
public Set<Map.Entry<E,MutableDouble>> entrySet()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public String toString()
toString
in class Object
public String toString(int maxKeysToPrint)
maxKeysToPrint
-
public String toString(NumberFormat nf, String preAppend, String postAppend, String keyValSeparator, String itemSeparator)
public String toString(NumberFormat nf)
public Object clone()
clone
in class Object
public void normalize()
Distribution
instead.
public void removeZeroCounts()
public PriorityQueue<E> asPriorityQueue()
public BinaryHeapPriorityQueue<E> asBinaryHeapPriorityQueue()
public double max()
public double doubleMax()
GenericCounter
doubleMax
in interface GenericCounter<E>
public double min()
public E argmax(Comparator<E> tieBreaker)
public void retainTop(int num)
public E argmax()
argmax(Comparator)
. Returns null if this Counter is empty.
public E argmin(Comparator<E> tieBreaker)
public E argmin()
argmin(Comparator)
. Returns null if this Counter is empty.
public Set<E> keysAbove(double countThreshold)
public Set<E> keysBelow(double countThreshold)
public Set<E> keysAt(double count)
public Comparator comparator(boolean ascending)
Counter c = new Counter(); // add to the counter... List biggestKeys = new ArrayList(c.keySet()); Collections.sort(biggestKeys, c.comparator(false)); List smallestEntries = new ArrayList(c.entrySet()); Collections.sort(smallestEntries, c.comparator(true))
public Comparator comparator(boolean ascending, boolean useMagnitude)
Counter c = new Counter(); // add to the counter... List biggestKeys = new ArrayList(c.keySet()); Collections.sort(biggestKeys, c.comparator(false, true)); List smallestEntries = new ArrayList(c.entrySet()); Collections.sort(smallestEntries, c.comparator(true))
public Comparator<E> comparator()
comparator(true)
.
comparator
in interface GenericCounter<E>
public static Counter<String> valueOf(String s)
s
- A String representation of a Counter, where the entries are
one-per-line ('\n') and each line is key \t value
public static Counter<String> fromString(String s)
public static void main(String[] args) throws Exception
Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |