From b9ffc8ac0023553010eda36d5909bb92c3fa3c3b Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Tue, 1 Jul 2014 17:32:25 +0000 Subject: [PATCH] a few changes in the Nerc that I have forgoten to push --- .../pgf/NercLiteralCallback.java | 22 +++++++++++-------- 1 file 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);