use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class LexicalAttributeFeatureTest method testCheckInternalMultipleEntries.
@Test
public void testCheckInternalMultipleEntries() throws Exception {
System.setProperty("config.file", "src/test/resources/testWithLex.conf");
ConfigFactory.invalidateCaches();
final Config config = ConfigFactory.load();
final String sessionId = "test";
Sentence sentence = new Sentence("je demande", sessionId);
TokenSequence tokenSequence = new TokenSequence(sentence, sessionId);
Token token = new Token("demande", tokenSequence, 1, "je ".length(), "je demande".length(), sessionId);
Decision decision = new Decision("V", 1.0);
final PosTaggedToken posTaggedToken = new PosTaggedToken(token, decision, sessionId);
PosTaggedTokenAddressFunction<PosTaggerContext> addressFunction = new AbstractPosTaggedTokenAddressFunction() {
@Override
protected FeatureResult<PosTaggedTokenWrapper> checkInternal(PosTaggerContext context, RuntimeEnvironment env) {
return this.generateResult(posTaggedToken);
}
};
StringLiteralFeature<PosTaggedTokenWrapper> person = new StringLiteralFeature<>(LexicalAttribute.Person.name());
LexicalAttributeFeature<PosTaggerContext> feature = new LexicalAttributeFeature<>(addressFunction, person);
PosTagSequence history = new PosTagSequence(tokenSequence);
PosTaggerContext context = new PosTaggerContextImpl(token, history);
RuntimeEnvironment env = new RuntimeEnvironment();
FeatureResult<List<WeightedOutcome<String>>> featureResult = feature.checkInternal(context, env);
List<WeightedOutcome<String>> outcomes = featureResult.getOutcome();
System.out.println(outcomes);
for (WeightedOutcome<String> outcome : outcomes) {
assertTrue("1".equals(outcome.getOutcome()) || "3".equals(outcome.getOutcome()));
}
assertEquals(2, outcomes.size());
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class WordFormFeature method checkInternal.
@Override
public FeatureResult<String> checkInternal(T context, RuntimeEnvironment env) throws TalismaneException {
PosTaggedTokenWrapper innerWrapper = this.getToken(context, env);
if (innerWrapper == null)
return null;
PosTaggedToken posTaggedToken = innerWrapper.getPosTaggedToken();
if (posTaggedToken == null)
return null;
FeatureResult<String> featureResult = null;
featureResult = this.generateResult(posTaggedToken.getToken().getAnalyisText());
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class AbstractLexicalAttributeFeature method checkInternal.
@Override
public FeatureResult<List<WeightedOutcome<String>>> checkInternal(T context, RuntimeEnvironment env) throws TalismaneException {
PosTaggedTokenWrapper innerWrapper = this.getToken(context, env);
if (innerWrapper == null)
return null;
PosTaggedToken posTaggedToken = innerWrapper.getPosTaggedToken();
if (posTaggedToken == null)
return null;
FeatureResult<List<WeightedOutcome<String>>> featureResult = null;
List<String> attributes = this.getAttributes(innerWrapper, env);
Set<String> results = new HashSet<>();
for (LexicalEntry lexicalEntry : posTaggedToken.getLexicalEntries()) {
boolean haveAtLeastOne = false;
Set<String> previousAttributeStrings = new HashSet<>();
previousAttributeStrings.add("");
for (String attribute : attributes) {
List<String> values = lexicalEntry.getAttributeAsList(attribute);
if (values.size() > 0) {
Set<String> currentAttributeStrings = new HashSet<>();
haveAtLeastOne = true;
for (String value : values) {
for (String prevString : previousAttributeStrings) {
if (prevString.length() > 0)
currentAttributeStrings.add(prevString + "|" + value);
else
currentAttributeStrings.add(value);
}
}
previousAttributeStrings = currentAttributeStrings;
}
}
if (haveAtLeastOne) {
results.addAll(previousAttributeStrings);
}
}
if (results.size() > 0) {
List<WeightedOutcome<String>> outcomes = new ArrayList<>(results.size());
for (String result : results) {
outcomes.add(new WeightedOutcome<String>(result, 1.0));
}
featureResult = this.generateResult(outcomes);
}
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class AssignedPosTagFeature method checkInternal.
@Override
public FeatureResult<String> checkInternal(T context, RuntimeEnvironment env) throws TalismaneException {
PosTaggedTokenWrapper innerWrapper = this.getToken(context, env);
if (innerWrapper == null)
return null;
PosTaggedToken posTaggedToken = innerWrapper.getPosTaggedToken();
if (posTaggedToken == null)
return null;
FeatureResult<String> featureResult = null;
featureResult = this.generateResult(posTaggedToken.getTag().getCode());
return featureResult;
}
use of com.joliciel.talismane.posTagger.PosTaggedToken in project talismane by joliciel-informatique.
the class HistoryAbsoluteAddressFunction method checkInternal.
@Override
protected FeatureResult<PosTaggedTokenWrapper> checkInternal(PosTaggerContext context, RuntimeEnvironment env) throws TalismaneException {
FeatureResult<PosTaggedTokenWrapper> result = null;
FeatureResult<Integer> indexResult = indexFeature.check(context, env);
if (indexResult != null) {
int n = indexResult.getOutcome();
if (n < 0) {
return null;
} else if (n >= context.getHistory().size()) {
return null;
}
PosTaggedToken prevToken = context.getHistory().get(n);
result = this.generateResult(prevToken);
}
// have n
return result;
}
Aggregations