|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.sun.speech.freetts.cart.CARTImpl
Implementation of a Classification and Regression Tree (CART) that is used more like a binary decision tree, with each node containing a decision or a final value. The decision nodes in the CART trees operate on an Item and have the following format:
NODE feat operand value qfalse
Where feat
is an string that represents a feature
to pass to the findFeature
method of an item.
The value
represents the value to be compared against
the feature obtained from the item via the feat
string.
The operand
is the operation to do the comparison. The
available operands are as follows:
[[[TODO: provide support for the IN operator.]]]
For < and >, this CART coerces the value and feature to float's. For =, this CART coerces the value and feature to string and checks for string equality. For MATCHES, this CART uses the value as a regular expression and compares the obtained feature to that.
A CART is represented by an array in this implementation. The
qfalse
value represents the index of the array to go to if
the comparison does not match. In this implementation, qtrue index
is always implied, and represents the next element in the
array. The root node of the CART is the first element in the array.
The interpretations always start at the root node of the CART and continue until a final node is found. The final nodes have the following form:
LEAF value
Where value
represents the value of the node.
Reaching a final node indicates the interpretation is over and the
value of the node is the interpretation result.
Constructor Summary | |
CARTImpl(java.io.BufferedReader reader,
int nodes)
Creates a new CART by reading from the given reader. |
|
CARTImpl(java.net.URL url)
Creates a new CART by reading from the given URL. |
Method Summary | |
void |
dumpBinary(java.io.DataOutputStream os)
Dumps this CART to the output stream. |
protected com.sun.speech.freetts.cart.CARTImpl.Node |
getNode(java.lang.String type,
java.util.StringTokenizer tokenizer,
int currentNode)
Gets the node based upon the type and tokenizer. |
java.lang.Object |
interpret(Item item)
Passes the given item through this CART and returns the interpretation. |
static CART |
loadBinary(java.nio.ByteBuffer bb)
Loads a CART from the input byte buffer. |
static CART |
loadBinary(java.io.DataInputStream is)
Loads a CART from the input stream. |
protected void |
parseAndAdd(java.lang.String line)
Creates a node from the given input line and add it to the CART. |
protected java.lang.Object |
parseValue(java.lang.String string)
Coerces a string into a value. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public CARTImpl(java.net.URL url) throws java.io.IOException
url
- the location of the CART data
java.io.IOException
- if errors occur while reading the datapublic CARTImpl(java.io.BufferedReader reader, int nodes) throws java.io.IOException
reader
- the source of the CART datanodes
- the number of nodes to read for this cart
java.io.IOException
- if errors occur while reading the dataMethod Detail |
public void dumpBinary(java.io.DataOutputStream os) throws java.io.IOException
dumpBinary
in interface CART
os
- the output stream
java.io.IOException
- if an error occurs during outputpublic static CART loadBinary(java.nio.ByteBuffer bb) throws java.io.IOException
bb
- the byte buffer
java.io.IOException
- if an error occurs during output
Note that cart nodes are really saved as strings that
have to be parsed.public static CART loadBinary(java.io.DataInputStream is) throws java.io.IOException
is
- the input stream
java.io.IOException
- if an error occurs during output
Note that cart nodes are really saved as strings that
have to be parsed.protected void parseAndAdd(java.lang.String line)
line
- a line of input to parseprotected com.sun.speech.freetts.cart.CARTImpl.Node getNode(java.lang.String type, java.util.StringTokenizer tokenizer, int currentNode)
type
- NODE
or LEAF
tokenizer
- the StringTokenizer containing the data to getcurrentNode
- the index of the current node we're looking at
protected java.lang.Object parseValue(java.lang.String string)
string
- of the form "type(value)"; for example, "Float(2.3)"
public java.lang.Object interpret(Item item)
interpret
in interface CART
item
- the item to analyze
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |