/** * load a previously trained FeatureSubsetModel (CRF4+Properties) which was stored as serialized object to disk. * * @param is * input stream of the serialized featureSubsetModel */ public void readModel(InputStream is) throws IOException, FileNotFoundException, ClassNotFoundException { final GZIPInputStream gin = new GZIPInputStream(is); final ObjectInputStream ois = new ObjectInputStream(gin); final FeatureSubsetModel fsm = (FeatureSubsetModel) ois.readObject(); ois.close(); model = fsm.getModel(); featureConfig = fsm.getFeatureConfig(); trained = true; if (model instanceof MaxEnt) { ((MaxEnt) model).getInstancePipe().getDataAlphabet().stopGrowth(); max_ent = true; } else { ((Transducer) model).getInputPipe().getDataAlphabet().stopGrowth(); } }
/** * load a previously trained FeatureSubsetModel (CRF4+Properties) which was stored as serialized object to disk. * * @param is * input stream of the serialized featureSubsetModel */ public void readModel(InputStream is) throws IOException, FileNotFoundException, ClassNotFoundException { final GZIPInputStream gin = new GZIPInputStream(is); final ObjectInputStream ois = new ObjectInputStream(gin); final FeatureSubsetModel fsm = (FeatureSubsetModel) ois.readObject(); ois.close(); model = fsm.getModel(); featureConfig = fsm.getFeatureConfig(); trained = true; if (model instanceof MaxEnt) { ((MaxEnt) model).getInstancePipe().getDataAlphabet().stopGrowth(); max_ent = true; } else { ((Transducer) model).getInputPipe().getDataAlphabet().stopGrowth(); } }
public List<TagResult> tag(Alignment alignment, int nBest) { Instance instance = new Instance(alignment, null, null, null); instance = tduc.getInputPipe().instanceFrom(instance); Sequence inSeq = (Sequence) instance.getData(); List<Sequence<Object>> outSeqs = tduc.getMaxLatticeFactory().newMaxLattice(tduc, inSeq).bestOutputSequences(nBest); ArrayList<TagResult> results = Lists.newArrayListWithCapacity(outSeqs.size()); double z = tduc.getSumLatticeFactory().newSumLattice(tduc, inSeq).getTotalWeight(); for (Sequence<Object> outSeq : outSeqs) { double score = tduc.getSumLatticeFactory().newSumLattice(tduc, inSeq, outSeq).getTotalWeight(); results.add(makeTagResult(outSeq, score - z)); } return results; }
public void evaluateInstanceList (TransducerTrainer tt, InstanceList data, String description) Alphabet dict = model.getInputPipe().getTargetAlphabet(); int numLabels = dict.size(); int[] numCorrectTokens = new int [numLabels];
/** * This method classifies several instances at once * * @param features * a list of lists of features - each list in the list represents one instance to be * classified. The list should correspond to some logical sequence of instances to be * classified (e.g. tokens in a sentence or lines in a document) that corresponds to the * model that has been built for this classifier. */ public List<String> classify(List<List<Feature>> features) throws CleartkProcessingException { String[][] featureStringArray = toStrings(features); Pipe pipe = transducer.getInputPipe(); Instance instance = new Instance(featureStringArray, null, null, null); instance = pipe.instanceFrom(instance); Sequence<?> data = (Sequence<?>) instance.getData(); Sequence<?> untypedSequence = transducer.transduce(data); Sequence<String> sequence = ReflectionUtil.uncheckedCast(untypedSequence); List<String> returnValues = new ArrayList<String>(); for (int i = 0; i < sequence.size(); i++) { String encodedOutcome = sequence.get(i); returnValues.add(outcomeEncoder.decode(encodedOutcome)); } return returnValues; }
/** * This method classifies several instances at once * * @param features * a list of lists of features - each list in the list represents one instance to be * classified. The list should correspond to some logical sequence of instances to be * classified (e.g. tokens in a sentence or lines in a document) that corresponds to the * model that has been built for this classifier. */ public List<String> classify(List<List<Feature>> features) throws CleartkProcessingException { String[][] featureStringArray = toStrings(features); Pipe pipe = transducer.getInputPipe(); Instance instance = new Instance(featureStringArray, null, null, null); instance = pipe.instanceFrom(instance); Sequence<?> data = (Sequence<?>) instance.getData(); Sequence<?> untypedSequence = transducer.transduce(data); Sequence<String> sequence = ReflectionUtil.uncheckedCast(untypedSequence); List<String> returnValues = new ArrayList<String>(); for (int i = 0; i < sequence.size(); i++) { String encodedOutcome = sequence.get(i); returnValues.add(outcomeEncoder.decode(encodedOutcome)); } return returnValues; }
for (int i = 0; i < sentences.size(); i++) { final Sentence sentence = sentences.get(i); final Instance inst = ((Transducer) model).getInputPipe().instanceFrom( new Instance(sentence, "", "", ""));
public void evaluateInstanceList (TransducerTrainer tt, InstanceList data, String description) Alphabet dict = model.getInputPipe().getTargetAlphabet(); int numLabels = dict.size(); int[] numCorrectTokens = new int [numLabels];
public void evaluateInstanceList (TransducerTrainer tt, InstanceList data, String description) Alphabet dict = model.getInputPipe().getTargetAlphabet(); int numLabels = dict.size(); int[] numCorrectTokens = new int [numLabels];
for (int i = 0; i < sentences.size(); i++) { final Sentence sentence = sentences.get(i); final Instance inst = ((Transducer) model).getInputPipe().instanceFrom( new Instance(sentence, "", "", ""));
final Instance inst = ((Transducer) model).getInputPipe().instanceFrom(new Instance(sentence, "", "", "")); final Sequence<?> input = (Sequence<?>) inst.getData();
final Instance inst = ((Transducer) model).getInputPipe().instanceFrom(new Instance(sentence, "", "", "")); final Sequence<?> input = (Sequence<?>) inst.getData();