2015-11-29 3 views
0

J'essaye de mettre en place un pipeline, qui produit des phrases lemmatisées. Je sais comment obtenir toutes les phrases ou tous les lemmes, mais je ne sais pas comment obtenir des collections de lemmes divisés par la fin des phrases. Voici un extrait de code avec un argument manquant marqué par ??????:Comment obtenir des lemmes à partir de phrases dans DKPro/UIMA?

AnalysisEngine pipeline = createEngine(createEngineDescription( 
           createEngineDescription(BreakIteratorSegmenter.class), 
           createEngineDescription(StanfordLemmatizer.class), 
           createEngineDescription(StopWordRemover.class, StopWordRemover.PARAM_MODEL_LOCATION, 
            new String[]{"stopwords.txt"}))); 

JCas jcas = JCasFactory.createJCas(); 

jcas.setDocumentText ("Almost all energy on Earth comes from the Sun. Plants make food energy from sunlight."); 
jcas.setDocumentLanguage("en"); 
pipeline.process  (jcas); 

for (Sentence s : select(jcas, Sentence.class)) { 
    out.println(""); 

    for (Lemma l : select(??????, Lemma.class)) 
    out.print(l.getValue() + " "); 
} 

Que dois-je changer dans ce code, il imprime lemmes de deux phrases d'entrée en deux lignes.

Répondre

2

Ici, vous allez:

for (Lemma l : JCasUtil.selectCovered(Lemma.class, s)) 
    out.print(l.getValue() + " "); 

Divulgation: Je travaille sur le projet Apache UIMA

+0

de Merci, mais je suis en train de 'La méthode selectCovered (classe , AnnotationFS) dans le type JCasUtil n'est pas applicable pour les arguments (Phrase, Class ) 'erreur. –

+0

Désolé, la commande est erronée - mise à jour. D'abord la classe, puis l'annotation de couverture. – rec

+0

Merci, ça marche maintenant. BTW, quel est le meilleur endroit pour trouver ce genre de spécification détaillée? –