public class ProbUnrestrictedGrammar extends java.lang.Object implements ProbabilisticGrammar
Modifier and Type | Field and Description |
---|---|
static int |
CNFGRAMMAR |
static int |
CONTEXT_FREE |
static int |
CONTEXT_SENSITIVE |
static int |
PROB_CONTEXT_FREE |
static int |
REGULAR |
java.util.List<Rule> |
rules |
java.util.List<java.lang.String> |
terminals |
int |
type |
static int |
UNRESTRICTED |
java.util.List<java.lang.String> |
vars |
Constructor and Description |
---|
ProbUnrestrictedGrammar() |
Modifier and Type | Method and Description |
---|---|
boolean |
addRule(Rule rule)
Add a single rule the grammar, testing it for structural
and probability validity.
|
boolean |
addRules(java.util.List<Rule> ruleList)
Add a number of rules at once, testing each in turn
for validity, and then testing the batch for probability validity.
|
static boolean |
isTerminal(java.lang.String s)
Check if we have a terminal, as they are lowercase strings
|
static boolean |
isVariable(java.lang.String s)
Check if we have a variable, as they are uppercase strings.
|
java.lang.String |
toString() |
void |
updateVarsAndTerminals()
Whenever a new rule is added to the grammar, we want to
update the list of variables and terminals with any new grammar symbols
|
void |
updateVarsAndTerminals(Rule r)
Update variable and terminal lists with a single rule's symbols,
if there a new symbols
|
boolean |
validateRuleProbabilities(java.util.List<Rule> ruleList)
For a set of rules, test whether each batch of rules with the same
LHS have their probabilities sum to exactly 1.0
|
boolean |
validRule(Rule r)
Test validity of the LHS and RHS of grammar rule.
|
public static final int UNRESTRICTED
public static final int CONTEXT_SENSITIVE
public static final int CONTEXT_FREE
public static final int REGULAR
public static final int CNFGRAMMAR
public static final int PROB_CONTEXT_FREE
public java.util.List<Rule> rules
public java.util.List<java.lang.String> vars
public java.util.List<java.lang.String> terminals
public int type
public boolean addRules(java.util.List<Rule> ruleList)
addRules
in interface ProbabilisticGrammar
ruleList
- public boolean addRule(Rule rule)
addRule
in interface ProbabilisticGrammar
rule
- public boolean validateRuleProbabilities(java.util.List<Rule> ruleList)
validateRuleProbabilities
in interface ProbabilisticGrammar
ruleList
- public boolean validRule(Rule r)
validRule
in interface ProbabilisticGrammar
r
- ( a rule )public void updateVarsAndTerminals()
updateVarsAndTerminals
in interface ProbabilisticGrammar
public void updateVarsAndTerminals(Rule r)
updateVarsAndTerminals
in interface ProbabilisticGrammar
r
- public static boolean isVariable(java.lang.String s)
s
- public static boolean isTerminal(java.lang.String s)
s
- public java.lang.String toString()
toString
in class java.lang.Object