All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nlp.Document Maven / Gradle / Ivy

Go to download

Natural language processing toolbox using Sigma knowledge engineering system.

There is a newer version: 1.1
Show newest version
/*
Copyright 2014-2015 IPsoft

Author: Andrew Reed [email protected]

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program ; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA  02111-1307 USA
*/
package nlp;

import nlp.pipeline.Pipeline;
import nlp.pipeline.SentenceBuilder;
import semRewrite.substitutor.CorefSubstitutor;
import com.google.common.collect.Lists;
import edu.stanford.nlp.pipeline.Annotation;

import java.util.ArrayList;
import java.util.List;

public class Document extends ArrayList {

    /** *************************************************************
     */
    public Annotation annotateDocument(String extraSentence) {

        List sentences = new ArrayList<>(this);
        sentences.add(extraSentence);
        Annotation document = Pipeline.toAnnotation(sentences);
        return document;
    }

    /** *************************************************************
     * Inserts a new utterance or utterances into the document updating coreferencing of the document.
     * @param utterance input from the user (can be multiple sentences)
     * @return returns a coreference replaced version of the utterances
     */
    @Deprecated
    public List addUtterance(String utterance) {

        List toCoreference = Lists.newArrayList(this);
        toCoreference.add(utterance);

        Annotation document = Pipeline.toAnnotation(toCoreference);
        CorefSubstitutor ps = new CorefSubstitutor(document);

        List substitutedInputs = new SentenceBuilder(document).asStrings(ps);
        List newSentences = substitutedInputs.subList(this.size(), substitutedInputs.size());
        addAll(newSentences);

        return newSentences;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy