use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class AddressFunctionStack method check.
@Override
public FeatureResult<PosTaggedTokenWrapper> check(ParseConfigurationWrapper wrapper, RuntimeEnvironment env) throws TalismaneException {
ParseConfiguration configuration = wrapper.getParseConfiguration();
PosTaggedToken resultToken = null;
FeatureResult<Integer> indexResult = indexFeature.check(wrapper, env);
if (indexResult != null) {
int index = indexResult.getOutcome();
Iterator<PosTaggedToken> stackIterator = configuration.getStack().iterator();
for (int i = 0; i <= index; i++) {
if (!stackIterator.hasNext()) {
resultToken = null;
break;
}
resultToken = stackIterator.next();
}
}
FeatureResult<PosTaggedTokenWrapper> featureResult = null;
if (resultToken != null)
featureResult = this.generateResult(resultToken);
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class AncestorSearchFeature method check.
@Override
public FeatureResult<PosTaggedTokenWrapper> check(ParseConfigurationWrapper wrapper, RuntimeEnvironment env) throws TalismaneException {
ParseConfiguration configuration = wrapper.getParseConfiguration();
PosTaggedToken resultToken = null;
FeatureResult<PosTaggedTokenWrapper> referenceTokenResult = referenceTokenFeature.check(wrapper, env);
if (referenceTokenResult != null) {
PosTaggedToken referenceToken = referenceTokenResult.getOutcome().getPosTaggedToken();
boolean includeMe = false;
if (includeMeFeature != null) {
FeatureResult<Boolean> includeMeResult = includeMeFeature.check(wrapper, env);
if (includeMeResult == null)
return null;
includeMe = includeMeResult.getOutcome();
}
PosTaggedToken ancestor = null;
if (includeMe)
ancestor = referenceToken;
else
ancestor = configuration.getHead(referenceToken);
ParseConfigurationAddress parseConfigurationAddress = new ParseConfigurationAddress(env);
parseConfigurationAddress.setParseConfiguration(configuration);
while (ancestor != null) {
parseConfigurationAddress.setPosTaggedToken(ancestor);
FeatureResult<Boolean> criterionResult = criterionFeature.check(parseConfigurationAddress, env);
if (criterionResult != null) {
boolean criterion = criterionResult.getOutcome();
if (criterion) {
resultToken = ancestor;
break;
}
}
ancestor = configuration.getHead(ancestor);
}
}
FeatureResult<PosTaggedTokenWrapper> featureResult = null;
if (resultToken != null)
featureResult = this.generateResult(resultToken);
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class BackwardSearchFeature method check.
@Override
public FeatureResult<PosTaggedTokenWrapper> check(ParseConfigurationWrapper wrapper, RuntimeEnvironment env) throws TalismaneException {
ParseConfiguration configuration = wrapper.getParseConfiguration();
PosTaggedToken resultToken = null;
FeatureResult<PosTaggedTokenWrapper> referenceTokenResult = referenceTokenFeature.check(wrapper, env);
if (referenceTokenResult != null) {
PosTaggedToken referenceToken = referenceTokenResult.getOutcome().getPosTaggedToken();
ParseConfigurationAddress parseConfigurationAddress = new ParseConfigurationAddress(env);
parseConfigurationAddress.setParseConfiguration(configuration);
for (int i = referenceToken.getToken().getIndex() - 1; i >= 0; i--) {
PosTaggedToken nextToken = configuration.getPosTagSequence().get(i);
parseConfigurationAddress.setPosTaggedToken(nextToken);
FeatureResult<Boolean> criterionResult = criterionFeature.check(parseConfigurationAddress, env);
if (criterionResult != null) {
boolean criterion = criterionResult.getOutcome();
if (criterion) {
resultToken = nextToken;
break;
}
}
}
}
FeatureResult<PosTaggedTokenWrapper> featureResult = null;
if (resultToken != null)
featureResult = this.generateResult(resultToken);
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class BetweenCountIf method check.
@Override
public FeatureResult<Integer> check(ParseConfigurationWrapper wrapper, RuntimeEnvironment env) throws TalismaneException {
ParseConfiguration configuration = wrapper.getParseConfiguration();
FeatureResult<PosTaggedTokenWrapper> tokenResult1 = addressFunction1.check(wrapper, env);
FeatureResult<PosTaggedTokenWrapper> tokenResult2 = addressFunction2.check(wrapper, env);
FeatureResult<Integer> featureResult = null;
if (tokenResult1 != null && tokenResult2 != null) {
PosTaggedToken posTaggedToken1 = tokenResult1.getOutcome().getPosTaggedToken();
PosTaggedToken posTaggedToken2 = tokenResult2.getOutcome().getPosTaggedToken();
int index1 = posTaggedToken1.getToken().getIndex();
int index2 = posTaggedToken2.getToken().getIndex();
int minIndex = index1 < index2 ? index1 : index2;
int maxIndex = index1 >= index2 ? index1 : index2;
int countMatching = 0;
for (int i = minIndex + 1; i < maxIndex; i++) {
IntegerFeature<ParseConfigurationWrapper> indexFeature = new IntegerLiteralFeature<ParseConfigurationWrapper>(i);
PosTaggedTokenAddressFunction<ParseConfigurationWrapper> indexFunction = new AddressFunctionSequence(indexFeature);
ParseConfigurationAddress parseConfigurationAddress = new ParseConfigurationAddress(configuration, indexFunction, env);
FeatureResult<Boolean> criterionResult = criterion.check(parseConfigurationAddress, env);
if (criterionResult != null && criterionResult.getOutcome())
countMatching++;
}
featureResult = this.generateResult(countMatching);
}
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class ParseConfigurationAddress method getToken.
@Override
public Token getToken() throws TalismaneException {
PosTaggedToken posTaggedToken = this.getPosTaggedToken();
Token token = null;
if (posTaggedToken != null)
token = posTaggedToken.getToken();
return token;
}
Aggregations