|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.util.AbstractMap | +--java.util.HashMap | +--edu.stanford.nlp.util.Counter
Specialized Map for storing numeric counts for objects. Works like a normal Map but with extra methods for easily getting/setting/incrementing counts for objects and computing various functions with the counts. Any attempt to put a non-Double value into this Counter will result in an IllegalArgumentException being thrown. Note however that the Map constructor and putAll method can be used to copy another Counter's contents over (see also addAll(Counter)). 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.
Constructor Summary | |
Counter()
Constructs a new (empty) Counter. |
|
Counter(Map m)
Constructs a new Counter with the contents of the given Map. |
Method Summary | |
void |
add(Object o,
double count)
Deprecated. use incrementCount instead. |
void |
addAll(Counter counter)
Adds the counts in the given Counter to the counts in this Counter. |
void |
addCounter(Counter c)
Deprecated. use addAll instead. |
Object |
argmax()
Finds and returns the key in this Counter with the largest count. |
Object |
argmax(Comparator tieBreaker)
Finds and returns the key in this Counter with the largest count. |
Object |
argmin()
Finds and returns the key in this Counter with the smallest count. |
Object |
argmin(Comparator tieBreaker)
Finds and returns the key in this Counter with the smallest count. |
Counter |
average(Counter other)
Returns a new Counter with counts averaged from this Counter and the given Counter. |
double |
averageCount()
Returns the mean of all the counts (totalCount/size). |
void |
clear()
Removes all counts from this Counter. |
Comparator |
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. |
double |
countOf(Object o)
Deprecated. use getCount instead. |
void |
decrementCount(Object key)
Subtracts 1.0 from the count for the given key. |
void |
decrementCount(Object key,
double count)
Subtracts the given count from the current count for the given key. |
void |
decrementCounts(Collection keys)
Subtracts 1.0 from the counts of each of the given keys. |
void |
decrementCounts(Collection keys,
double count)
Subtracts the given count from the current counts for each of the given keys. |
double |
entropy()
Calculates the entropy of this counter (in bits). |
double |
getCount(Object key)
Returns the current count for the given key, which is 0 if it hasn't been seen before. |
double |
getNormalizedCount(Object key)
Returns the current count for the given key as a fraction of the total count in the counter. |
boolean |
hasSeen(Object o)
Deprecated. use the standard containsKey function of Map. |
void |
increment(Object o)
Deprecated. use incrementCount instead. |
void |
incrementCount(Object key)
Adds 1.0 to the count for the given key. |
void |
incrementCount(Object key,
double count)
Adds the given count to the current count for the given key. |
void |
incrementCounts(Collection keys)
Adds 1.0 to the counts for each of the given keys. |
void |
incrementCounts(Collection keys,
double count)
Adds the given count to the current counts for each of the given keys. |
double |
informationRadius(Counter other)
Calculates the information radius (aka the Jensen-Shannon divergence) between this Counter and another counter. |
Set |
keysAbove(double countThreshold)
Returns the set of keys whose counts are at or above the given threshold. |
Set |
keysAt(double count)
Returns the set of keys that have exactly the given count. |
Set |
keysBelow(double countThreshold)
Returns the set of keys whose counts are at or below the given threshold. |
double |
klDivergence(Counter other)
Calculates the KL divergence between this counter and another counter. |
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 |
normalize()
Divides all the counts by the total so they collectively sum to 1.0. |
Object |
put(Object key,
Object value)
Adds a count for the given key if value is a Number. |
Object |
remove(Object key)
Removes the given key from this Counter. |
void |
removeAll(Collection c)
Removes all the given keys from this Counter. |
void |
removeZeroCounts()
Removes all keys whose count is 0. |
Set |
seenSet()
Deprecated. use the standard keySet() function of Map. |
void |
setCount(Object key,
double count)
Sets the current count for the given key. |
void |
setCounts(Collection keys,
double count)
Sets the current count for each of the given keys. |
void |
subtractAll(Counter counter)
Subtracts the counts in the given Counter from the counts in this Counter. |
double |
total()
Deprecated. use totalCount instead. |
double |
totalCount()
Returns the current total count for all objects in this Counter. |
double |
totalCount(Filter filter)
Returns the total count for all objects in this Counter that pass the given Filter. |
Methods inherited from class java.util.HashMap |
clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, putAll, size, values |
Methods inherited from class java.util.AbstractMap |
equals, hashCode, toString |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
equals, hashCode |
Constructor Detail |
public Counter()
public Counter(Map m)
Method Detail |
public double totalCount()
public double totalCount(Filter filter)
total()
, though the latter is faster since the total
is maintained internally as counts are adjusted.
public double averageCount()
public double getCount(Object key)
get
that casts
and extracts the primitive value.
public double getNormalizedCount(Object key)
public void setCount(Object key, double count)
To add to a count instead of replacing it, use
incrementCount(Object,double)
.
public void setCounts(Collection keys, double count)
To add to the counts of a collection of objects instead of replacing them,
use incrementCounts(Collection,double)
.
public void incrementCount(Object key, double count)
To more conviently increment the count by 1.0, use
incrementCount(Object)
.
To set a count to a specifc value instead of incrementing it, use
setCount(Object,double)
.
public void incrementCount(Object key)
To increment the count by a value other than 1.0, use
incrementCount(Object,double)
.
To set a count to a specifc value instead of incrementing it, use
setCount(Object,double)
.
public void incrementCounts(Collection keys, double count)
To more conviniently increment the counts of a collection of objects by
1.0, use 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 keys)
To increment the counts of a collection of object by a value other
than 1.0, use 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 decrementCount(Object key, double count)
To more conviently decrement the count by 1.0, use
decrementCount(Object)
.
To set a count to a specifc value instead of decrementing it, use
setCount(Object,double)
.
public void decrementCount(Object key)
To decrement the count by a value other than 1.0, use
decrementCount(Object,double)
.
To set a count to a specifc value instead of decrementing it, use
setCount(Object,double)
.
public void decrementCounts(Collection keys, double count)
To more conviniently decrement the counts of a collection of objects by
1.0, use 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 keys)
To decrement the counts of a collection of object by a value other
than 1.0, use 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(Counter counter)
To copy the values from another Counter rather than adding them, use
HashMap.putAll(Map)
or Counter(Map)
.
public void subtractAll(Counter counter)
To copy the values from another Counter rather than subtracting them, use
HashMap.putAll(Map)
or Counter(Map)
.
public Object put(Object key, Object value) throws IllegalArgumentException
put
in interface Map
put
in class HashMap
IllegalArgumentException
public Object remove(Object key)
remove
in interface Map
remove
in class HashMap
public void removeAll(Collection c)
public void clear()
clear
in interface Map
clear
in class HashMap
public void normalize()
getNormalizedCount(java.lang.Object)
returns the same thing
as getCount(java.lang.Object)
after calling normalize but it doesn't
change the raw counts.
public void removeZeroCounts()
Maybe in the future we should try to do this more on-the-fly, though it's not clear whether a distinction should be made between "never seen" (i.e. null count) and "seen with 0 count". Certainly there's no distinction in getCount() but there is in containsKey().
public double max()
public double min()
public Object argmax(Comparator tieBreaker)
public Object argmax()
argmax(Comparator)
. Returns null if this Counter is empty.
public Object argmin(Comparator tieBreaker)
public Object argmin()
argmin(Comparator)
. Returns null if this Counter is empty.
public Set keysAbove(double countThreshold)
public Set keysBelow(double countThreshold)
public Set keysAt(double count)
public double entropy()
public double klDivergence(Counter other)
other
- The other Counter
public double informationRadius(Counter other)
iRad(p,q) = D(p||(p+q)/2)+D(q,(p+q)/2)where p is this Counter, q is the other counter, and D(p||q) is the KL divergence bewteen p and q. Note that iRad(p,q) = iRad(q,p).
other
- The other Counter
public Counter average(Counter other)
public Comparator comparator(boolean ascending)
Sample usage:
Counter c = new Counter(); // add to the counter... List biggestKeys = Collections.sort(new ArrayList(c.keySet()), c.comparator(false)); List smallestEntries = Collections.sort(new ArrayList(c.entrySet()), c.comparator(true))
public Comparator comparator()
comparator(true)
.
public static void main(String[] args)
public boolean hasSeen(Object o)
public Set seenSet()
public double countOf(Object o)
public double total()
public void add(Object o, double count)
public void addCounter(Counter c)
public void increment(Object o)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |