Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## cc.mallet.types
Class Instance

    java.lang.Object
      cc.mallet.types.Instance

All Implemented Interfaces:
  AlphabetCarrying, java.io.Serializable, java.lang.Cloneable

    public class Instance

extends java.lang.Object
implements java.io.Serializable, AlphabetCarrying, java.lang.Cloneable

A machine learning "example" to be used in training, testing or performance of various machine learning algorithms.

An instance contains four generic fields of predefined name: "data", "target", "name", and "source". "Data" holds the data represented `by the instance, "target" is often a label associated with the instance, "name" is a short identifying name for the instance (such as a filename), and "source" is human-readable sourceinformation, (such as the original text).

Each field has no predefined type, and may change type as the instance is processed. For example, the data field may start off being a string that represents a file name and then be processed by a `Pipe` into a CharSequence representing the contents of the file, and eventually to a feature vector holding indices into an `Alphabet` holding words found in the file. It is up to each pipe which fields in the Instance it modifies; the most common case is that the pipe modifies the data field.

Generally speaking, there are two modes of operation for Instances. (1) An instance gets created and passed through a Pipe, and the resulting data/target/name/source fields are used. This is generally done for training instances. (2) An instance gets created with raw values in its slots, then different users of the instance call newPipedCopy() with their respective different pipes. This might be done for test instances at "performance" time.

Rather than store an `Alphabet` in the Instance, we obtain it through the Pipe instance variable, because the Pipe also indicates where the data came from and how to interpret the Alphabet.

Instances can be made immutable if locked. Although unlocked Instances are mutable, typically the only code that changes the values in the four slots is inside Pipes.

Note that constructing an instance with a pipe argument means "Construct the instance and then run it through the pipe". `InstanceList` uses this method when adding instances through a pipeInputIterator.

Author:
  Andrew McCallum mccallum@cs.umass.edu
See Also:
  `Pipe`, `Alphabet`, `InstanceList`, Serialized Form

Field Summary
`protected java.lang.Object` | `data`
`protected java.lang.Object` | `name`
`protected java.lang.Object` | `source`
`protected java.lang.Object` | `target`

Constructor Summary
`Instance(java.lang.Object data, java.lang.Object target, java.lang.Object name, java.lang.Object source)` In certain unusual circumstances, you might want to create an Instance without sending it through a pipe.

Method Summary
`boolean` | `alphabetsMatch(AlphabetCarrying object)`
`void` | `clearSource()`
`java.lang.Object` | `clone()`
`Alphabet` | `getAlphabet()`
`Alphabet[]` | `getAlphabets()`
`java.lang.Object` | `getData()`
`Alphabet` | `getDataAlphabet()`
`Labeling` | `getLabeling()`
`java.lang.Object` | `getName()`
`double` | `getNumericProperty(java.lang.String key)`
`PropertyList` | `getProperties()` Deprecated.
`java.lang.Object` | `getProperty(java.lang.String key)`
`java.lang.Object` | `getSource()`
`java.lang.Object` | `getTarget()`
`Alphabet` | `getTargetAlphabet()`
`boolean` | `hasProperty(java.lang.String key)`
`boolean` | `isLocked()`
`void` | `lock()`
`void` | `setData(java.lang.Object d)`
`void` | `setLabeling(Labeling l)`
`void` | `setName(java.lang.Object n)`
`void` | `setNumericProperty(java.lang.String key, double value)`
`void` | `setProperty(java.lang.String key, java.lang.Object value)`
`void` | `setPropertyList(PropertyList p)` Deprecated.
`void` | `setSource(java.lang.Object s)`
`void` | `setTarget(java.lang.Object t)`
`Instance` | `shallowCopy()`
`void` | `unLock()`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### data

    protected java.lang.Object data

### target

    protected java.lang.Object target

### name

    protected java.lang.Object name

### source

    protected java.lang.Object source

Constructor Detail

### Instance

    public Instance(java.lang.Object data,
                    java.lang.Object target,
                    java.lang.Object name,
                    java.lang.Object source)

  In certain unusual circumstances, you might want to create an Instance without sending it through a pipe.

Method Detail

### getData

    public java.lang.Object getData()

### getTarget

    public java.lang.Object getTarget()

### getName

    public java.lang.Object getName()

### getSource

    public java.lang.Object getSource()

### getDataAlphabet

    public Alphabet getDataAlphabet()

### getTargetAlphabet

    public Alphabet getTargetAlphabet()

### getAlphabet

    public Alphabet getAlphabet()

  Specified by:
    `getAlphabet` in interface `AlphabetCarrying`

### getAlphabets

    public Alphabet[] getAlphabets()

  Specified by:
    `getAlphabets` in interface `AlphabetCarrying`

### alphabetsMatch

    public boolean alphabetsMatch(AlphabetCarrying object)

### isLocked

    public boolean isLocked()

### lock

    public void lock()

### unLock

    public void unLock()

### getLabeling

    public Labeling getLabeling()

### setData

    public void setData(java.lang.Object d)

### setTarget

    public void setTarget(java.lang.Object t)

### setLabeling

    public void setLabeling(Labeling l)

### setName

    public void setName(java.lang.Object n)

### setSource

    public void setSource(java.lang.Object s)

### clearSource

    public void clearSource()

### shallowCopy

    public Instance shallowCopy()

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `java.lang.Object`

### setProperty

    public void setProperty(java.lang.String key,
                            java.lang.Object value)

### setNumericProperty

    public void setNumericProperty(java.lang.String key,
                                   double value)

### getProperties

    @Deprecated
    public PropertyList getProperties()

  Deprecated.

### setPropertyList

    @Deprecated
    public void setPropertyList(PropertyList p)

  Deprecated.

### getProperty

    public java.lang.Object getProperty(java.lang.String key)

### getNumericProperty

    public double getNumericProperty(java.lang.String key)

### hasProperty

    public boolean hasProperty(java.lang.String key)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD