1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
package com.wcohen.ss.expt;
import com.wcohen.ss.*;
import com.wcohen.ss.api.*;
import java.util.Collections;
/**
* Train a StringDistanceLearner using MatchData and a Blocker.
*
*/
public class MatchDataTeacher extends StringDistanceTeacher
{
private Blocker blocker;
private MatchData data;
public MatchDataTeacher(MatchData data,Blocker blocker) {
this.blocker = blocker;
this.data = data;
}
public StringWrapperIterator stringWrapperIterator()
{
return data.getIterator();
}
public DistanceInstanceIterator distanceInstancePool()
{
return new BasicDistanceInstanceIterator(Collections.EMPTY_SET.iterator() );
}
public DistanceInstanceIterator distanceExamplePool()
{
blocker.block(data);
return new DistanceInstanceIterator() {
private int cursor=0;
public boolean hasNext() { return cursor<blocker.size(); }
public Object next() { return blocker.getPair( cursor++ ); }
public void remove() { throw new UnsupportedOperationException(); }
public DistanceInstance nextDistanceInstance() { return (DistanceInstance)next();}
};
}
public DistanceInstance labelInstance(DistanceInstance distanceInstance)
{
return distanceInstance;
}
public boolean hasAnswers()
{
return true;
}
}
|