regexpipe.java

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

JAVA
50
字号
package edu.umass.cs.mallet.projects.seg_plus_coref.coreference;import com.wcohen.secondstring.*;import edu.umass.cs.mallet.base.types.*;import edu.umass.cs.mallet.base.classify.*;import edu.umass.cs.mallet.base.pipe.*;import edu.umass.cs.mallet.base.pipe.iterator.*;import edu.umass.cs.mallet.base.util.*;import java.util.*;import java.util.logging.*;import java.lang.*;import java.io.*;/** features about regex matches in a field */public class RegexPipe extends Pipe {	private static Logger logger = MalletLogger.getLogger(RegexPipe.class.getName());	String[] fields;	String regex, featureName;		public RegexPipe (String featureName, String[] fields, String regex) {		this.featureName = featureName;		this.fields = fields;		this.regex = regex;	}	public Instance pipe (Instance carrier) {		NodePair pair = (NodePair)carrier.getData();		Citation c1 = (Citation)pair.getObject1();		Citation c2 = (Citation)pair.getObject2();		for (int i=0; i < fields.length; i++) {			boolean m1 = c1.getField( fields[i] ).matches( this.regex );			boolean m2 = c2.getField( fields[i] ).matches( this.regex );			if (m1 && m2)				pair.setFeatureValue( featureName+"_"+fields[i]+"_MatchesBoth_", 1.0 );			else if (m1 || m2) {				pair.setFeatureValue( featureName+"_"+fields[i]+"_MatchesOne_", 1.0 );			}		}		return carrier;			}		}																

⌨️ 快捷键说明

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