diff --git a/third_party/src/main/java/com/github/datquocnguyen/FWObject.java b/third_party/src/main/java/com/github/datquocnguyen/FWObject.java index 4d89465d..9017f23a 100644 --- a/third_party/src/main/java/com/github/datquocnguyen/FWObject.java +++ b/third_party/src/main/java/com/github/datquocnguyen/FWObject.java @@ -36,4 +36,13 @@ public class FWObject context = new String[13]; } } + + public void reset(boolean check) { + if (check) { + System.arraycopy(contextPrototype, 0, context, 0, 13); + } + else { + Arrays.fill(context, null); + } + } } diff --git a/third_party/src/main/java/com/github/datquocnguyen/RDRPOSTagger.java b/third_party/src/main/java/com/github/datquocnguyen/RDRPOSTagger.java index e51f44ec..a0bea5b2 100644 --- a/third_party/src/main/java/com/github/datquocnguyen/RDRPOSTagger.java +++ b/third_party/src/main/java/com/github/datquocnguyen/RDRPOSTagger.java @@ -103,8 +103,10 @@ public class RDRPOSTagger var initialTags = InitialTagger.EnInitTagger4Sentence(FREQDICT, sentence); String[] tags = new String[initialTags.length]; + FWObject object = new FWObject(true); + for (int i = 0; i < initialTags.length; i++) { - FWObject object = Utils.getObject(sentence, initialTags, initialTags.length, i); + Utils.getObject(object, sentence, initialTags, initialTags.length, i); tags[i] = findFiredNode(object).conclusion; } diff --git a/third_party/src/main/java/com/github/datquocnguyen/Utils.java b/third_party/src/main/java/com/github/datquocnguyen/Utils.java index e422b5ad..4cd91d58 100644 --- a/third_party/src/main/java/com/github/datquocnguyen/Utils.java +++ b/third_party/src/main/java/com/github/datquocnguyen/Utils.java @@ -123,9 +123,9 @@ public class Utils return condition; } - public static FWObject getObject(String[] words, String[] tags, int size, int index) + public static FWObject getObject(FWObject object, String[] words, String[] tags, int size, int index) { - FWObject object = new FWObject(true); + object.reset(true); if (index > 1) { object.context[4] = words[index-2]; @@ -175,9 +175,7 @@ public class Utils else return ""; } - String conclusion = str.substring(str.indexOf("\"") + 1, - str.length() - 1); - return conclusion; + return str.substring(str.indexOf("\"") + 1, str.length() - 1); } public static void main(String[] args)