field.java

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Java 代码 · 共 100 行

JAVA
100
字号
/* 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 edu.umass.cs.mallet.base.extract;import edu.umass.cs.mallet.base.types.Label;import java.util.ArrayList;import java.util.List;import java.util.Iterator;import java.util.ListIterator;/** * Created: Oct 12, 2004 * * @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A> * @version $Id: Field.java,v 1.5 2005/11/08 23:03:11 culotta Exp $ */public class Field {  private Label name;  private List values = new ArrayList ();  private List allSpans = new ArrayList ();  public Field (LabeledSpan span)  {    name = span.getLabel ();    addFiller (span);  }  public Label getName ()  {    return name;  }  public int numValues () { return values.size (); }  public String value (int i) { return (String) values.get (i); }  public LabeledSpan span (int i) { return (LabeledSpan) allSpans.get (i); }  public void addFiller (LabeledSpan span) {    if (name != span.getLabel ())      throw new IllegalArgumentException ("Attempt to fill slot "+name+" with a span of type "+span.getLabel ());    values.add (span.getText ());    allSpans.add (span);  }  void cleanField (FieldCleaner cleaner) {    //??? Should I prevent the same cleaner from running twice?    ListIterator it = values.listIterator ();    while (it.hasNext()) {      String rawValue = (String) it.next ();      it.remove ();      it.add (cleaner.cleanFieldValue (rawValue));    }  }  /**   * Returns true if <tt>filler</tt> is an exact match to one of the values   *  of this field.   */  public boolean isValue (String filler)  {    return values.contains (filler);  }  public boolean isValue (String filler, FieldComparator comper)  {    for (Iterator it = values.iterator (); it.hasNext ();) {      String s = (String) it.next ();      if (comper.matches (filler, s))        return true;    }    return false;  }  public String toString () {    StringBuffer buf = new StringBuffer ();    buf.append ("FIELD NAME: ");    buf.append (name);    buf.append ("\n");    for (Iterator it = values.iterator (); it.hasNext ();) {      String s = (String) it.next ();      buf.append ("FILLER:");      buf.append (s);      buf.append ("\n");    }    return buf.toString ();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?