public class MetricalLpcfgProbabilityTracker
extends java.lang.Object
implements java.io.Serializable
MetricalLpcfgProbabilityTracker
keeps track of counts for a
MetricalLpcfg
. Items can be added into these
maps using the add... methods, and probabilities can be retrieved thorugh the
get...Probability methods.Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.util.Map<java.lang.Double,java.lang.Integer>> |
headMap
The map used for modeling: p(head(nonterminal) | measure, nonterminal, parentHeadLength)
|
private java.util.Map<Measure,java.util.Map<java.lang.Double,java.lang.Integer>> |
measureHeadMap
The map used for modeling: p(head(measure) | measure)
|
private static long |
serialVersionUID
Version 1
|
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Integer>> |
transitionMap
The map used for modeling: p(nonterminal -> children | measure, nonterminal, head(nonterminal))
|
Modifier | Constructor and Description |
---|---|
|
MetricalLpcfgProbabilityTracker()
Create a new empty probability tracker.
|
private |
MetricalLpcfgProbabilityTracker(MetricalLpcfgProbabilityTracker probabilities)
Create a new probability tracker as a deep copy of the given one.
|
Modifier and Type | Method and Description |
---|---|
void |
addHead(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead parentHead,
MetricalLpcfgHead head,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Add a new head mapping.
|
void |
addMeasureHead(Measure measure,
MetricalLpcfgHead head)
Add a new measure head length mapping.
|
void |
addTransition(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead head,
java.lang.String transitionString,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Add a new transition mapping.
|
MetricalLpcfgProbabilityTracker |
deepCopy()
Get a deep copy of this probability tracker.
|
private static java.lang.String |
encode(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead head)
Encode the given measure, typeString, and head into a single String key.
|
private static java.lang.String |
encode(java.lang.String measureKey,
java.lang.String typeString,
MetricalLpcfgHead head)
Encode the given measureKey, typeString, and headLength into a String.
|
private static java.lang.String |
encodeBackoff(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead head,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Encode the given measure's backup type (based on the level), typeString, and headLength into
a single String key.
|
double |
getHeadProbability(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead parentHead,
MetricalLpcfgHead head,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Gets the probability p(headLength | measure, type, parentHeadLength).
|
double |
getMeasureHeadProbability(Measure measure,
MetricalLpcfgHead head)
Gets the probability p(headLength | measure).
|
double |
getTransitionProbability(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead head,
java.lang.String transitionString,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Gets the probability p(transition | measure, type, headLength).
|
void |
removeHead(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead parentHead,
MetricalLpcfgHead head,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Remove a head mapping.
|
void |
removeMeasureHead(Measure measure,
MetricalLpcfgHead head)
Remove measure head length mapping.
|
void |
removeTransition(Measure measure,
java.lang.String typeString,
MetricalLpcfgHead head,
java.lang.String transitionString,
MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
Remove a transition mapping.
|
java.lang.String |
toString() |
private static final long serialVersionUID
private final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Integer>> transitionMap
private final java.util.Map<java.lang.String,java.util.Map<java.lang.Double,java.lang.Integer>> headMap
private final java.util.Map<Measure,java.util.Map<java.lang.Double,java.lang.Integer>> measureHeadMap
public MetricalLpcfgProbabilityTracker()
private MetricalLpcfgProbabilityTracker(MetricalLpcfgProbabilityTracker probabilities)
probabilities
- The probability tracker we want to be a deep copy of.public void addMeasureHead(Measure measure, MetricalLpcfgHead head)
measureHeadMap
.measure
- The measure.head
- The head.public void removeMeasureHead(Measure measure, MetricalLpcfgHead head) throws MetricalLpcfgElementNotFoundException
measureHeadMap
.measure
- The measure.head
- The head.MetricalLpcfgElementNotFoundException
- If the measure head to be removed is not found.public double getMeasureHeadProbability(Measure measure, MetricalLpcfgHead head)
measure
- The measure.head
- The head.public void addTransition(Measure measure, java.lang.String typeString, MetricalLpcfgHead head, java.lang.String transitionString, MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
transitionMap
.measure
- The measure.typeString
- The type.head
- The head.transitionString
- The transition String.level
- The level to use for back-off probabilities.public void removeTransition(Measure measure, java.lang.String typeString, MetricalLpcfgHead head, java.lang.String transitionString, MetricalLpcfgNonterminal.MetricalLpcfgLevel level) throws MetricalLpcfgElementNotFoundException
transitionMap
.measure
- The measure.typeString
- The type.head
- The head.transitionString
- The transition String.level
- The level to use for back-off probabilities.MetricalLpcfgElementNotFoundException
- If the transition to be removed is not found.public double getTransitionProbability(Measure measure, java.lang.String typeString, MetricalLpcfgHead head, java.lang.String transitionString, MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
measure
- The measure.typeString
- The type.head
- The head.transitionString
- The transition String.level
- The level to use in case we need to back off.public void addHead(Measure measure, java.lang.String typeString, MetricalLpcfgHead parentHead, MetricalLpcfgHead head, MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
headMap
.measure
- The measure.typeString
- The type.parentHead
- The parent's head.head
- The head.level
- The level to use for back-off probabilities.public void removeHead(Measure measure, java.lang.String typeString, MetricalLpcfgHead parentHead, MetricalLpcfgHead head, MetricalLpcfgNonterminal.MetricalLpcfgLevel level) throws MetricalLpcfgElementNotFoundException
headMap
.measure
- The measure.typeString
- The type.parentHead
- The parent's head.head
- The head.level
- The level to use for back-off probabilities.MetricalLpcfgElementNotFoundException
- If the head to be removed is not found.public double getHeadProbability(Measure measure, java.lang.String typeString, MetricalLpcfgHead parentHead, MetricalLpcfgHead head, MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
measure
- The measure.typeString
- The type.parentHead
- The parent's head.head
- The head.level
- The level to use in case we need to back off.public MetricalLpcfgProbabilityTracker deepCopy()
public java.lang.String toString()
toString
in class java.lang.Object
private static java.lang.String encode(Measure measure, java.lang.String typeString, MetricalLpcfgHead head)
measure
- The measure we want to encode.typeString
- The typeString to encode.head
- The head to encode.private static java.lang.String encodeBackoff(Measure measure, java.lang.String typeString, MetricalLpcfgHead head, MetricalLpcfgNonterminal.MetricalLpcfgLevel level)
measure
- The measure whose feature to encode.typeString
- The typeString to encode.head
- The head to encode.level
- The level that decides which feature of the given measure to encode.private static java.lang.String encode(java.lang.String measureKey, java.lang.String typeString, MetricalLpcfgHead head)
measureKey
- The measureKey to encode.typeString
- The typeString to encode.head
- The head to encode.