summaryrefslogtreecommitdiff
path: root/src/runtime/java/org/grammaticalframework
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/java/org/grammaticalframework')
-rw-r--r--src/runtime/java/org/grammaticalframework/pgf/NercLiteralCallback.java22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/runtime/java/org/grammaticalframework/pgf/NercLiteralCallback.java b/src/runtime/java/org/grammaticalframework/pgf/NercLiteralCallback.java
index 8d206667d..ae8f665b0 100644
--- a/src/runtime/java/org/grammaticalframework/pgf/NercLiteralCallback.java
+++ b/src/runtime/java/org/grammaticalframework/pgf/NercLiteralCallback.java
@@ -38,23 +38,27 @@ public class NercLiteralCallback implements LiteralCallback {
if (i > 0) {
String name = sbuilder.toString();
- String lemma = null;
+ Expr expr = null;
double prob = 0;
for (MorphoAnalysis an : concr.lookupMorpho(name)) {
- if ("PN".equals(pgf.getFunctionType(an.getLemma()).getCategory()) &&
- prob < an.getProb()) {
- lemma = an.getLemma();
- prob = an.getProb();
+ String cat = pgf.getFunctionType(an.getLemma()).getCategory();
+ if (prob < an.getProb()) {
+ if ("PN".equals(cat)) {
+ expr = new Expr(an.getLemma(), new Expr[0]);
+ prob = an.getProb();
+ } else if ("Language".equals(cat)) {
+ expr = new Expr(an.getLemma(), new Expr[0]);
+ expr = new Expr("languagePN", expr);
+ } else if ("Pron".equals(cat)) { // to capture I in English
+ return null;
+ }
}
}
- Expr expr;
- if (lemma == null) {
+ if (expr == null) {
expr = new Expr(name);
expr = new Expr("MkSymb", expr);
expr = new Expr("SymbPN", expr);
- } else {
- expr = new Expr(lemma, new Expr[0]);
}
return new CallbackResult(new ExprProb(expr, 0), end_offset);