diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-12-08 15:18:01 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-12-08 15:18:01 +0000 |
| commit | 3fd53b907e55d5e9a84ff15b548ea73fc822549b (patch) | |
| tree | fd1a633642765aba3869c3077f79cd67f856822b /src/runtime/java/org/grammaticalframework | |
| parent | 8ec5910ae21e99e721302f9b6a589c443d31d03b (diff) | |
added a callback for unknown words
Diffstat (limited to 'src/runtime/java/org/grammaticalframework')
| -rw-r--r-- | src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java b/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java new file mode 100644 index 000000000..1cd5806b6 --- /dev/null +++ b/src/runtime/java/org/grammaticalframework/pgf/UnknownLiteralCallback.java @@ -0,0 +1,35 @@ +package org.grammaticalframework.pgf; + +import java.util.Collections; +import java.util.Iterator; + +public class UnknownLiteralCallback implements LiteralCallback { + private Concr concr; + + public UnknownLiteralCallback(PGF pgf, Concr concr) { + this.concr = concr; + } + + public CallbackResult match(int lin_idx, String sentence, int offset) { + if (!Character.isUpperCase(sentence.charAt(offset))) { + int start_offset = offset; + while (offset < sentence.length() && + !Character.isWhitespace(sentence.charAt(offset))) { + offset++; + } + 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); + } + } + + return null; + } + + public Iterator<TokenProb> predict(int lin_idx, String prefix) { + return Collections.<TokenProb>emptyList().iterator(); + } +} |
