use of com.graphaware.nlp.domain.AnnotatedText in project neo4j-nlp-stanfordnlp by graphaware.
the class DependencyParserTest method testStanfordNLPWithPredefinedProcessors.
@Test
public void testStanfordNLPWithPredefinedProcessors() throws Exception {
StanfordCoreNLP pipeline = ((StanfordTextProcessor) textProcessor).getPipeline("default");
String text = "Donald Trump flew yesterday to New York City";
AnnotatedText at = textProcessor.annotateText(text, "en", PIPELINE_DEFAULT);
Annotation document = new Annotation(text);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
CoreMap sentence = sentences.get(0);
System.out.println(sentence.toString());
SemanticGraph graph = sentence.get(SemanticGraphCoreAnnotations.EnhancedDependenciesAnnotation.class);
System.out.println(graph);
List<SemanticGraphEdge> edges = graph.edgeListSorted();
for (SemanticGraphEdge edge : edges) {
System.out.println(edge.getRelation().getShortName());
System.out.println(String.format("Source is : %s - Target is : %s - Relation is : %s", edge.getSource(), edge.getTarget(), edge.getRelation()));
}
}
use of com.graphaware.nlp.domain.AnnotatedText in project neo4j-nlp-stanfordnlp by graphaware.
the class DependencyParserTest method testEnhancedDependencyParsingWithComplexTest.
@Test
public void testEnhancedDependencyParsingWithComplexTest() throws Exception {
String text = "Softfoot and Small Paul would kill the Old Beard, Dirk would do Blane, and Lark and his cousins would silence Bannen and old Dywen, to keep them from sniffing after their trail.";
StanfordCoreNLP pipeline = ((StanfordTextProcessor) textProcessor).getPipeline("default");
AnnotatedText at = textProcessor.annotateText(text, "en", PIPELINE_DEFAULT);
Annotation document = new Annotation(text);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
System.out.println(sentence.toString());
SemanticGraph graph = sentence.get(SemanticGraphCoreAnnotations.EnhancedDependenciesAnnotation.class);
System.out.println(graph);
for (SemanticGraphEdge edge : graph.edgeListSorted()) {
System.out.println(String.format("Source is : %s - Target is : %s - Relation is : %s", edge.getSource(), edge.getTarget(), edge.getRelation()));
}
}
}
use of com.graphaware.nlp.domain.AnnotatedText in project neo4j-nlp by graphaware.
the class AnnotatedTextPersister method fromNode.
@Override
public AnnotatedText fromNode(Node node, Object... properties) {
if (!node.hasLabel(configuration().getLabelFor(Labels.AnnotatedText))) {
throw new RuntimeException("Expected an " + configuration().getLabelFor(Labels.AnnotatedText) + " node.");
}
AnnotatedText annotatedText = mapper().convertValue(node.getAllProperties(), AnnotatedText.class);
node.getRelationships(configuration().getRelationshipFor(Relationships.CONTAINS_SENTENCE), Direction.OUTGOING).forEach(relationship -> {
Sentence sentence = (Sentence) getPersister(Sentence.class).fromNode(relationship.getEndNode());
annotatedText.addSentence(sentence);
});
return annotatedText;
}
use of com.graphaware.nlp.domain.AnnotatedText in project neo4j-nlp by graphaware.
the class AnnotatedTextPersistenceTest method testTagOccurrenceGetAValue.
@Test
public void testTagOccurrenceGetAValue() {
clearDb();
AnnotatedText annotatedText = createAnnotatedTextWithSameTagInSameTextWithDifferentPos();
TestNLPGraph test = new TestNLPGraph(getDatabase());
try (Transaction tx = getDatabase().beginTx()) {
getNLPManager().getPersister(AnnotatedText.class).persist(annotatedText, "test", "1");
tx.success();
}
test.assertTagOccurrenceWithValueExist("cool");
executeInTransaction("MATCH (n:TagOccurrence) WHERE n.value = 'cool' RETURN n", (result -> {
assertTrue(result.hasNext());
Node n = (Node) result.next().get("n");
String[] ners = (String[]) n.getProperty("ne");
assertTrue(Arrays.asList(ners).contains("NER_Cool0"));
}));
}
use of com.graphaware.nlp.domain.AnnotatedText in project neo4j-nlp by graphaware.
the class AnnotatedTextPersistenceTest method createAnnotatedTextWithSameTagInSameTextWithDifferentPos.
private AnnotatedText createAnnotatedTextWithSameTagInSameTextWithDifferentPos() {
AnnotatedText annotatedText = new AnnotatedText();
AtomicInteger inc = new AtomicInteger();
for (String s : "Hello my name is cool. And I am cool.".split("\\.")) {
Sentence sentence = new Sentence(s, inc.get());
for (String token : s.split(" ")) {
Tag tag = new Tag(token, "en");
if (token.equals("cool")) {
int v = inc.get();
tag.setPos(Collections.singletonList("cool" + v));
tag.setNe(Collections.singletonList("NER_Cool" + v));
}
sentence.addTagOccurrence(0, 20, token, sentence.addTag(tag));
}
inc.incrementAndGet();
annotatedText.addSentence(sentence);
}
return annotatedText;
}
Aggregations