You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by sm...@apache.org on 2017/10/24 08:20:26 UTC
[opennlp] branch master updated: OPENNLP-1151: All Sample objects
should implement Serializable for easy interation into other tools (#282)
This is an automated email from the ASF dual-hosted git repository.
smarthi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/opennlp.git
The following commit(s) were added to refs/heads/master by this push:
new aed96a7 OPENNLP-1151: All Sample objects should implement Serializable for easy interation into other tools (#282)
aed96a7 is described below
commit aed96a73cf44b53c0657411dde6240aacebda2a9
Author: Suneel Marthi <sm...@apache.org>
AuthorDate: Tue Oct 24 13:50:24 2017 +0530
OPENNLP-1151: All Sample objects should implement Serializable for easy interation into other tools (#282)
---
.../java/opennlp/tools/chunker/ChunkSample.java | 15 +++++----
.../java/opennlp/tools/doccat/DocumentSample.java | 3 +-
.../java/opennlp/tools/langdetect/Language.java | 7 ++--
.../opennlp/tools/langdetect/LanguageSample.java | 3 +-
.../java/opennlp/tools/lemmatizer/LemmaSample.java | 3 +-
.../tools/ml/maxent/io/BinaryQNModelWriter.java | 8 ++---
.../java/opennlp/tools/namefind/NameSample.java | 3 +-
.../namefind/TokenNameFinderCrossValidator.java | 3 +-
.../main/java/opennlp/tools/postag/POSSample.java | 3 +-
.../opennlp/tools/sentdetect/SentenceSample.java | 4 +--
.../java/opennlp/tools/tokenize/TokenSample.java | 3 +-
.../src/main/java/opennlp/tools/util/Span.java | 3 +-
.../opennlp/tools/chunker/ChunkSampleTest.java | 34 +++++++++++++++++++
.../opennlp/tools/doccat/DocumentSampleTest.java | 32 ++++++++++++++++++
.../tools/langdetect/LanguageSampleTest.java | 39 ++++++++++++++++++++--
.../opennlp/tools/lemmatizer/LemmaSampleTest.java | 31 +++++++++++++++++
.../opennlp/tools/namefind/NameSampleTest.java | 38 ++++++++++++++++++---
.../java/opennlp/tools/postag/POSSampleTest.java | 34 +++++++++++++++++++
.../tools/sentdetect/SentenceSampleTest.java | 32 ++++++++++++++++++
.../opennlp/tools/tokenize/TokenSampleTest.java | 30 +++++++++++++++++
20 files changed, 297 insertions(+), 31 deletions(-)
diff --git a/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkSample.java b/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkSample.java
index 174ca61..f703621 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/chunker/ChunkSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.chunker;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -28,7 +29,7 @@ import opennlp.tools.util.Span;
/**
* Class for holding chunks for a single unit of text.
*/
-public class ChunkSample {
+public class ChunkSample implements Serializable {
private final List<String> sentence;
private final List<String> tags;
@@ -167,12 +168,12 @@ public class ChunkSample {
StringBuilder result = new StringBuilder(" ");
for (int tokenIndex = 0; tokenIndex < sentence.size(); tokenIndex++) {
- for (int nameIndex = 0; nameIndex < spans.length; nameIndex++) {
- if (spans[nameIndex].getStart() == tokenIndex) {
- result.append("[").append(spans[nameIndex].getType()).append(" ");
+ for (Span span : spans) {
+ if (span.getStart() == tokenIndex) {
+ result.append("[").append(span.getType()).append(" ");
}
- if (spans[nameIndex].getEnd() == tokenIndex) {
+ if (span.getEnd() == tokenIndex) {
result.append("]").append(' ');
}
}
@@ -183,8 +184,8 @@ public class ChunkSample {
if (sentence.size() > 1)
result.setLength(result.length() - 1);
- for (int nameIndex = 0; nameIndex < spans.length; nameIndex++) {
- if (spans[nameIndex].getEnd() == sentence.size()) {
+ for (Span span : spans) {
+ if (span.getEnd() == sentence.size()) {
result.append(']');
}
}
diff --git a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
index adddc27..3f149ed 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.doccat;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -27,7 +28,7 @@ import java.util.Objects;
/**
* Class which holds a classified document and its category.
*/
-public class DocumentSample {
+public class DocumentSample implements Serializable {
private final String category;
private final List<String> text;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/langdetect/Language.java b/opennlp-tools/src/main/java/opennlp/tools/langdetect/Language.java
index f780759..43ad71b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/langdetect/Language.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/langdetect/Language.java
@@ -17,12 +17,13 @@
package opennlp.tools.langdetect;
+import java.io.Serializable;
import java.util.Objects;
/**
* Class for holding the document language and its confidence
*/
-public class Language {
+public class Language implements Serializable {
private final String lang;
private final double confidence;
@@ -46,9 +47,7 @@ public class Language {
@Override
public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(getLang()).append(" (").append(this.confidence).append(")");
- return sb.toString();
+ return getLang() + " (" + this.confidence + ")";
}
@Override
diff --git a/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java b/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
index f454864..634718f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
@@ -17,12 +17,13 @@
package opennlp.tools.langdetect;
+import java.io.Serializable;
import java.util.Objects;
/**
* Class which holds a classified document and its @{@link Language}.
*/
-public class LanguageSample {
+public class LanguageSample implements Serializable {
private final Language language;
private final CharSequence context;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
index 553eb3a..f5c2434 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.lemmatizer;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -26,7 +27,7 @@ import java.util.Objects;
/**
* Represents an lemmatized sentence.
*/
-public class LemmaSample {
+public class LemmaSample implements Serializable {
private List<String> tokens;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryQNModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryQNModelWriter.java
index cf23929..1da4d1e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryQNModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryQNModelWriter.java
@@ -63,19 +63,19 @@ public class BinaryQNModelWriter extends QNModelWriter {
output = dos;
}
- public void writeUTF(String s) throws java.io.IOException {
+ public void writeUTF(String s) throws IOException {
output.writeUTF(s);
}
- public void writeInt(int i) throws java.io.IOException {
+ public void writeInt(int i) throws IOException {
output.writeInt(i);
}
- public void writeDouble(double d) throws java.io.IOException {
+ public void writeDouble(double d) throws IOException {
output.writeDouble(d);
}
- public void close() throws java.io.IOException {
+ public void close() throws IOException {
output.flush();
output.close();
}
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
index 6db4b69..a1e1d07 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
@@ -18,6 +18,7 @@
package opennlp.tools.namefind;
import java.io.IOException;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -32,7 +33,7 @@ import opennlp.tools.util.Span;
/**
* Class for holding names for a single unit of text.
*/
-public class NameSample {
+public class NameSample implements Serializable {
private final String id;
private final List<String> sentence;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderCrossValidator.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderCrossValidator.java
index 5e9e662..0a2fb4d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderCrossValidator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderCrossValidator.java
@@ -18,6 +18,7 @@
package opennlp.tools.namefind;
import java.io.IOException;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -34,7 +35,7 @@ import opennlp.tools.util.eval.FMeasure;
public class TokenNameFinderCrossValidator {
- private static class DocumentSample {
+ private static class DocumentSample implements Serializable {
private NameSample[] samples;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/postag/POSSample.java b/opennlp-tools/src/main/java/opennlp/tools/postag/POSSample.java
index 9512e38..459905a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/postag/POSSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/postag/POSSample.java
@@ -18,6 +18,7 @@
package opennlp.tools.postag;
+import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -29,7 +30,7 @@ import opennlp.tools.util.InvalidFormatException;
/**
* Represents an pos-tagged sentence.
*/
-public class POSSample {
+public class POSSample implements Serializable {
private List<String> sentence;
diff --git a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceSample.java b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceSample.java
index 7891cfd..3ffe084 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/sentdetect/SentenceSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.sentdetect;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -30,10 +31,9 @@ import opennlp.tools.util.Span;
* A {@link SentenceSample} contains a document with
* begin indexes of the individual sentences.
*/
-public class SentenceSample {
+public class SentenceSample implements Serializable {
private final String document;
-
private final List<Span> sentences;
/**
diff --git a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenSample.java b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenSample.java
index 3ec3b8d..85f1c07 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.tokenize;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -29,7 +30,7 @@ import opennlp.tools.util.Span;
/**
* A {@link TokenSample} is text with token spans.
*/
-public class TokenSample {
+public class TokenSample implements Serializable {
public static final String DEFAULT_SEPARATOR_CHARS = "<SPLIT>";
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/Span.java b/opennlp-tools/src/main/java/opennlp/tools/util/Span.java
index 733e461..1c389b1 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/Span.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/Span.java
@@ -17,13 +17,14 @@
package opennlp.tools.util;
+import java.io.Serializable;
import java.util.Objects;
/**
* Class for storing start and end integer offsets.
*
*/
-public class Span implements Comparable<Span> {
+public class Span implements Comparable<Span>, Serializable {
private final int start;
private final int end;
diff --git a/opennlp-tools/src/test/java/opennlp/tools/chunker/ChunkSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/chunker/ChunkSampleTest.java
index 9f3367d..79b5234 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/chunker/ChunkSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/chunker/ChunkSampleTest.java
@@ -18,7 +18,13 @@
package opennlp.tools.chunker;
import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
@@ -107,6 +113,34 @@ public class ChunkSampleTest {
return new ChunkSample(createSentence(), createTags(), chunks);
}
+ @Test
+ public void testChunkSampleSerDe() throws IOException {
+ ChunkSample chunkSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(chunkSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ ChunkSample deSerializedChunkSample = null;
+ try {
+ deSerializedChunkSample = (ChunkSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedChunkSample);
+ Assert.assertArrayEquals(chunkSample.getPhrasesAsSpanList(),
+ deSerializedChunkSample.getPhrasesAsSpanList());
+ Assert.assertArrayEquals(chunkSample.getPreds(), deSerializedChunkSample.getPreds());
+ Assert.assertArrayEquals(chunkSample.getTags(), deSerializedChunkSample.getTags());
+ Assert.assertArrayEquals(chunkSample.getSentence(), deSerializedChunkSample.getSentence());
+ Assert.assertEquals(chunkSample, deSerializedChunkSample);
+ }
+
@Test(expected = IllegalArgumentException.class)
public void testParameterValidation() {
new ChunkSample(new String[] {""}, new String[] {""},
diff --git a/opennlp-tools/src/test/java/opennlp/tools/doccat/DocumentSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/doccat/DocumentSampleTest.java
index 8cf8fef..2e7bfb7 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/doccat/DocumentSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/doccat/DocumentSampleTest.java
@@ -17,6 +17,14 @@
package opennlp.tools.doccat;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+
import org.junit.Assert;
import org.junit.Test;
@@ -30,6 +38,30 @@ public class DocumentSampleTest {
Assert.assertFalse(createPredSample().equals(new Object()));
}
+ @Test
+ public void testDocumentSampleSerDe() throws IOException {
+ DocumentSample documentSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(documentSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ DocumentSample deSerializedDocumentSample = null;
+ try {
+ deSerializedDocumentSample = (DocumentSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedDocumentSample);
+ Assert.assertEquals(documentSample.getCategory(), deSerializedDocumentSample.getCategory());
+ Assert.assertArrayEquals(documentSample.getText(), deSerializedDocumentSample.getText());
+ }
+
public static DocumentSample createGoldSample() {
return new DocumentSample("aCategory", new String[]{"a", "small", "text"});
}
diff --git a/opennlp-tools/src/test/java/opennlp/tools/langdetect/LanguageSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/langdetect/LanguageSampleTest.java
index 7d12581..5b7aac0 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/langdetect/LanguageSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/langdetect/LanguageSampleTest.java
@@ -17,11 +17,17 @@
package opennlp.tools.langdetect;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import org.junit.Assert;
import org.junit.Test;
-
public class LanguageSampleTest {
@Test
@@ -35,6 +41,35 @@ public class LanguageSampleTest {
Assert.assertEquals(context, sample.getContext());
}
+ @Test
+ public void testLanguageSampleSerDe() throws IOException {
+ Language lang = new Language("aLang");
+ CharSequence context = "aContext";
+
+ LanguageSample languageSample = new LanguageSample(lang, context);
+
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(languageSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ LanguageSample deSerializedLanguageSample = null;
+ try {
+ deSerializedLanguageSample = (LanguageSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedLanguageSample);
+ Assert.assertEquals(languageSample.getContext(), deSerializedLanguageSample.getContext());
+ Assert.assertEquals(languageSample.getLanguage(), deSerializedLanguageSample.getLanguage());
+ Assert.assertEquals(languageSample, deSerializedLanguageSample);
+ }
+
@Test(expected = NullPointerException.class)
public void testNullLang() throws Exception {
CharSequence context = "aContext";
@@ -84,6 +119,6 @@ public class LanguageSampleTest {
Assert.assertNotEquals(sampleA, sampleB);
Assert.assertNotEquals(sampleA, sampleC);
Assert.assertNotEquals(sampleB, sampleC);
- Assert.assertFalse(sampleA.equals("something else"));
+ Assert.assertNotEquals(sampleA, "something else");
}
}
diff --git a/opennlp-tools/src/test/java/opennlp/tools/lemmatizer/LemmaSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/lemmatizer/LemmaSampleTest.java
index 97f9e27..bfb6cd2 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/lemmatizer/LemmaSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/lemmatizer/LemmaSampleTest.java
@@ -18,7 +18,13 @@
package opennlp.tools.lemmatizer;
import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import java.io.StringReader;
import org.junit.Assert;
@@ -48,6 +54,31 @@ public class LemmaSampleTest {
}
@Test
+ public void testLemmaSampleSerDe() throws IOException {
+ LemmaSample lemmaSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(lemmaSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ LemmaSample deSerializedLemmaSample = null;
+ try {
+ deSerializedLemmaSample = (LemmaSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedLemmaSample);
+ Assert.assertArrayEquals(lemmaSample.getLemmas(), deSerializedLemmaSample.getLemmas());
+ Assert.assertArrayEquals(lemmaSample.getTokens(), deSerializedLemmaSample.getTokens());
+ Assert.assertArrayEquals(lemmaSample.getTags(), deSerializedLemmaSample.getTags());
+ }
+
+ @Test
public void testRetrievingContent() {
LemmaSample sample = new LemmaSample(createSentence(), createTags(), createLemmas());
diff --git a/opennlp-tools/src/test/java/opennlp/tools/namefind/NameSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/namefind/NameSampleTest.java
index 0078731..8bf4aff 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/namefind/NameSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/namefind/NameSampleTest.java
@@ -17,7 +17,13 @@
package opennlp.tools.namefind;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import org.junit.Assert;
import org.junit.Test;
@@ -61,6 +67,32 @@ public class NameSampleTest {
return nameSample;
}
+ @Test
+ public void testNameSampleSerDe() throws IOException {
+ NameSample nameSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(nameSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ NameSample deSerializedNameSample = null;
+ try {
+ deSerializedNameSample = (NameSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedNameSample);
+ Assert.assertArrayEquals(nameSample.getSentence(), deSerializedNameSample.getSentence());
+ Assert.assertArrayEquals(nameSample.getNames(), deSerializedNameSample.getNames());
+ Assert.assertArrayEquals(nameSample.getAdditionalContext(),
+ deSerializedNameSample.getAdditionalContext());
+ }
+
/**
* Test serialization of sequential spans.
*/
@@ -72,8 +104,7 @@ public class NameSampleTest {
Span[] names = {new Span(0, 2, "Place"), new Span(2, 4, "Time"),
new Span(4, 6, "Person")};
- NameSample nameSample;
- nameSample = new NameSample(sentence, names, false);
+ NameSample nameSample = new NameSample(sentence, names, false);
Assert.assertEquals(
"<START:Place> A Place <END> <START:Time> a time <END> <START:Person> A Person <END> .",
@@ -91,8 +122,7 @@ public class NameSampleTest {
Span[] names = {new Span(0, 2, "Place"), new Span(4, 6, "Person"),
new Span(2, 4, "Time")};
- NameSample nameSample;
- nameSample = new NameSample(sentence, names, false);
+ NameSample nameSample = new NameSample(sentence, names, false);
Assert.assertEquals(
"<START:Place> A Place <END> <START:Time> a time <END> <START:Person> A Person <END> .",
diff --git a/opennlp-tools/src/test/java/opennlp/tools/postag/POSSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/postag/POSSampleTest.java
index de437cd..7082828 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/postag/POSSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/postag/POSSampleTest.java
@@ -18,6 +18,14 @@
package opennlp.tools.postag;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+
import org.junit.Assert;
import org.junit.Test;
@@ -48,6 +56,32 @@ public class POSSampleTest {
return POSSample.parse(sentence);
}
+ @Test
+ public void testPOSSampleSerDe() throws IOException {
+ POSSample posSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(posSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ POSSample deSerializedPOSSample = null;
+ try {
+ deSerializedPOSSample = (POSSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedPOSSample);
+ Assert.assertArrayEquals(posSample.getAddictionalContext(),
+ deSerializedPOSSample.getAddictionalContext());
+ Assert.assertArrayEquals(posSample.getSentence(), deSerializedPOSSample.getSentence());
+ Assert.assertArrayEquals(posSample.getTags(), deSerializedPOSSample.getTags());
+ }
+
/**
* Tests if it can parse a valid token_tag sentence.
*
diff --git a/opennlp-tools/src/test/java/opennlp/tools/sentdetect/SentenceSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/sentdetect/SentenceSampleTest.java
index 2ec0978..23dca30 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/sentdetect/SentenceSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/sentdetect/SentenceSampleTest.java
@@ -17,6 +17,14 @@
package opennlp.tools.sentdetect;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+
import org.junit.Assert;
import org.junit.Test;
@@ -37,6 +45,30 @@ public class SentenceSampleTest {
Assert.assertEquals(new Span(3, 5), sample.getSentences()[1]);
}
+ @Test
+ public void testSentenceSampleSerDe() throws IOException {
+ SentenceSample sentenceSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(sentenceSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ SentenceSample deSerializedSentenceSample = null;
+ try {
+ deSerializedSentenceSample = (SentenceSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedSentenceSample);
+ Assert.assertEquals(sentenceSample.getDocument(), deSerializedSentenceSample.getDocument());
+ Assert.assertArrayEquals(sentenceSample.getSentences(), deSerializedSentenceSample.getSentences());
+ }
+
@Test(expected = IllegalArgumentException.class)
public void testInvalidSpansFailFast() {
SentenceSample sample = new SentenceSample("1. 2.",
diff --git a/opennlp-tools/src/test/java/opennlp/tools/tokenize/TokenSampleTest.java b/opennlp-tools/src/test/java/opennlp/tools/tokenize/TokenSampleTest.java
index 1c329bc..9b53c8b 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/tokenize/TokenSampleTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/tokenize/TokenSampleTest.java
@@ -17,7 +17,13 @@
package opennlp.tools.tokenize;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import org.junit.Assert;
import org.junit.Test;
@@ -41,6 +47,30 @@ public class TokenSampleTest {
}
@Test
+ public void testTokenSampleSerDe() throws IOException {
+ TokenSample tokenSample = createGoldSample();
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream);
+ out.writeObject(tokenSample);
+ out.flush();
+ byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream);
+
+ TokenSample deSerializedTokenSample = null;
+ try {
+ deSerializedTokenSample = (TokenSample) objectInput.readObject();
+ } catch (ClassNotFoundException e) {
+ // do nothing
+ }
+
+ Assert.assertNotNull(deSerializedTokenSample);
+ Assert.assertEquals(tokenSample.getText(), deSerializedTokenSample.getText());
+ Assert.assertArrayEquals(tokenSample.getTokenSpans(), deSerializedTokenSample.getTokenSpans());
+ }
+
+ @Test
public void testCreationWithDetokenizer() throws IOException {
Detokenizer detokenizer = DictionaryDetokenizerTest.createLatinDetokenizer();
--
To stop receiving notification emails like this one, please contact
['"commits@opennlp.apache.org" <co...@opennlp.apache.org>'].