From 386ec87405e293d2ef423e3f8cab9b317bbce2f6 Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 8 Dec 2014 19:38:03 +0000 Subject: [PATCH] bugfix for unknown words --- .../org/grammaticalframework/pgf/UnknownLiteralCallback.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java b/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java index 140a07836..347c2e28a 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java +++ b/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java @@ -11,7 +11,8 @@ public class UnknownLiteralCallback implements LiteralCallback { } public CallbackResult match(int lin_idx, String sentence, int offset) { - if (!Character.isUpperCase(sentence.charAt(offset))) { + if (offset < sentence.length() && + !Character.isUpperCase(sentence.charAt(offset))) { int start_offset = offset; while (offset < sentence.length() && !Character.isWhitespace(sentence.charAt(offset))) { @@ -19,7 +20,7 @@ public class UnknownLiteralCallback implements LiteralCallback { } int end_offset = offset; String word = sentence.substring(start_offset,end_offset); - + if (concr.lookupMorpho(word).size() == 0) { Expr expr = new Expr("MkSymb", new Expr(word)); return new CallbackResult(new ExprProb(expr, 0), end_offset);