2017-04-02 69 views
0

其實我使用Java從西班牙語文本中提取三元組。我需要提取形式爲NP-VP-NP的三元組。我使用斯坦福分析器CoreNLP v 3.7.0和西班牙模型v 3.7.0。我的問題是下一個,有沒有一種方法可以從西班牙語模型中的句子中提取NP子樹和VP子樹?我意識到西班牙語解析器樹形式與英語形式不同。如何使用西班牙語模型在斯坦福分析器中獲得NP和VP子樹

例:

(ROOT (sentence (sn (spec (da0000 El)) (grup.nom (nc0s000 reino))) (grup.verb (vmm0000 canta) (sadv (spec (rg muy)) (grup.adv (rg bien))) (fp .)))

回答

1

您應該使用的主要分佈以確保你擁有的一切,並下載了西班牙模特

(點擊此處下載:http://stanfordnlp.github.io/CoreNLP/download.html

package edu.stanford.nlp.examples; 

import edu.stanford.nlp.ling.*; 
import edu.stanford.nlp.pipeline.*; 
import edu.stanford.nlp.trees.*; 
import edu.stanford.nlp.trees.tregex.*; 
import edu.stanford.nlp.util.*; 

import java.util.*; 


public class TregexExample { 

    public static void main(String[] args) { 
    // set up pipeline 
    Properties props = StringUtils.argsToProperties("-props", "StanfordCoreNLP-spanish.properties"); 
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props); 
    // Spanish example 
    Annotation spanishDoc = new Annotation("...insert Spanish text..."); 
    pipeline.annotate(spanishDoc); 
    // get first sentence 
    CoreMap firstSentence = spanishDoc.get(CoreAnnotations.SentencesAnnotation.class).get(0); 
    Tree firstSentenceTree = firstSentence.get(TreeCoreAnnotations.TreeAnnotation.class); 
    // use Tregex to match 
    String nounPhrasePattern = "/grup\\.nom/"; 
    TregexPattern nounPhraseTregexPattern = TregexPattern.compile(nounPhrasePattern); 
    TregexMatcher nounPhraseTregexMatcher = nounPhraseTregexPattern.matcher(firstSentenceTree); 
    while (nounPhraseTregexMatcher.find()) { 
     nounPhraseTregexMatcher.getMatch().pennPrint(); 
    } 
    } 
} 
+0

感謝。我應該對更改名詞PrasePattern的動詞組進行相同的操作嗎? –

+0

是的,只需將其更改爲「/grup\\.verb/」即可。 – StanfordNLPHelp

+0

完美。非常感謝。 –

相關問題