Search in sources :

Example 11 with ReasonPair

use of main.database.ReasonPair in project Info-Evaluation by TechnionYP5777.

the class AnalyzeParagragh method InteractiveAnalyze.

public InteractiveTableTuple InteractiveAnalyze() {
    final String $ = getName();
    final String input_date = getDate(year);
    String accurate_name = "";
    LinkedList<ReasonPair> reasons = InteractiveReasonFinding();
    final Properties props = new Properties();
    props.put("annotators", "tokenize,ssplit, pos, regexner, parse,lemma,natlog,openie");
    final StanfordCoreNLP pipeLine = new StanfordCoreNLP(props);
    final String inputText = input + "";
    final Annotation document = new Annotation(inputText);
    pipeLine.annotate(document);
    for (final CoreMap sentence : document.get(SentencesAnnotation.class)) {
        final SemanticGraph dependencies = sentence.get(CollapsedDependenciesAnnotation.class);
        for (final IndexedWord root : dependencies.getRoots()) for (final SemanticGraphEdge edge : dependencies.getOutEdgesSorted(root)) {
            final IndexedWord dep = edge.getDependent();
            if ("nsubjpass".equals((edge.getRelation() + ""))) {
                for (final SemanticGraphEdge keshet : dependencies.getOutEdgesSorted(dep)) {
                    final IndexedWord dep2 = keshet.getDependent();
                    final String rel2 = keshet.getRelation() + "";
                    if ("arrested".equals(edge.getGovernor().word()) && ((dep2.ner() != null && "PERSON".equals(dep2.ner())) || "compound".equals(rel2) || "det".equals(rel2)))
                        accurate_name += dep2.word() + " ";
                }
                accurate_name += dep.word();
            }
        }
    }
    return new InteractiveTableTuple(accurate_name.isEmpty() ? $ : accurate_name, input_date, reasons);
}
Also used : SemanticGraph(edu.stanford.nlp.semgraph.SemanticGraph) ReasonPair(main.database.ReasonPair) Properties(java.util.Properties) IndexedWord(edu.stanford.nlp.ling.IndexedWord) CoreMap(edu.stanford.nlp.util.CoreMap) StanfordCoreNLP(edu.stanford.nlp.pipeline.StanfordCoreNLP) SentencesAnnotation(edu.stanford.nlp.ling.CoreAnnotations.SentencesAnnotation) Annotation(edu.stanford.nlp.pipeline.Annotation) CollapsedDependenciesAnnotation(edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.CollapsedDependenciesAnnotation) SemanticGraphEdge(edu.stanford.nlp.semgraph.SemanticGraphEdge) InteractiveTableTuple(main.database.InteractiveTableTuple)

Aggregations

ReasonPair (main.database.ReasonPair)11 Test (org.junit.Test)9 InteractiveTableTuple (main.database.InteractiveTableTuple)6 Sentence (edu.stanford.nlp.simple.Sentence)3 LinkedList (java.util.LinkedList)3 AnalyzeParagragh (main.Analyze.AnalyzeParagragh)3 SentencesAnnotation (edu.stanford.nlp.ling.CoreAnnotations.SentencesAnnotation)2 Annotation (edu.stanford.nlp.pipeline.Annotation)2 StanfordCoreNLP (edu.stanford.nlp.pipeline.StanfordCoreNLP)2 CollapsedDependenciesAnnotation (edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.CollapsedDependenciesAnnotation)2 CoreMap (edu.stanford.nlp.util.CoreMap)2 Properties (java.util.Properties)2 RelationTriple (edu.stanford.nlp.ie.util.RelationTriple)1 IndexedWord (edu.stanford.nlp.ling.IndexedWord)1 SemanticGraph (edu.stanford.nlp.semgraph.SemanticGraph)1 SemanticGraphEdge (edu.stanford.nlp.semgraph.SemanticGraphEdge)1 AnalyzePage (main.Analyze.AnalyzePage)1