/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
package cc.mallet.extract;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import cc.mallet.types.Label;
/**
* Created: Oct 12, 2004
*
* @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A>
* @version $Id: LabeledSpan.java,v 1.1 2007/10/22 21:37:44 mccallum Exp $
*/
//xxx Maybe this is the same thing as a field??
public class LabeledSpan implements Span, Serializable {
private Span span;
private Label label;
private boolean isBackground;
private double confidence;
public LabeledSpan (Span span, Label label, boolean isBackground) {
this (span, label, isBackground, 1.0);
}
public LabeledSpan (Span span, Label label, boolean isBackground, double confidence) {
this.span = span;
this.label = label;
this.isBackground = isBackground;
this.confidence = confidence;
}
public Span getSpan () { return span; }
public Label getLabel () { return label; }
public String getText ()
{
return span.getText ();
}
public Object getDocument ()
{
return span.getDocument ();
}
public double getConfidence ()
{
return confidence;
}
void setConfidence (double c)
{
this.confidence = c;
}
public boolean intersects (Span r)
{
return span.intersects (r);
}
public boolean isSubspan (Span r)
{
return span.isSubspan (r);
}
public Span intersection (Span r)
{
LabeledSpan other = (LabeledSpan) r;
Span newSpan = getSpan ().intersection (other.getSpan ());
return new LabeledSpan (newSpan, label, isBackground, confidence);
}
public int getEndIdx ()
{
return span.getEndIdx ();
}
public int getStartIdx ()
{
return span.getStartIdx ();
}
public boolean isBackground ()
{
return isBackground;
}
public String toString ()
{
return label.toString ()+" [span "+getStartIdx ()+".."+getEndIdx ()+" confidence="+confidence+"]";
}
// Serialization garbage
private static final long serialVersionUID = 1L;
private static final int CURRENT_SERIAL_VERSION = 1;
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeInt(CURRENT_SERIAL_VERSION);
}
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
in.defaultReadObject();
in.readInt(); // read version
}
}