2011-12-25 19 views

risposta

9

Per OpenNLP esiste una piccola documentazione sulla risoluzione delle coreure al momento ad eccezione di a very short mention of how to run it in the readme.

Se non si è investiti nell'uso di OpenNLP, prendere in considerazione lo Stanford CoreNLP package, che include a Java example of how to run it, tra cui come eseguire la risoluzione di coreference utilizzando il pacchetto. Include anche a page summarizing it's performance, and the papers published on the coreference package.

11

Recentemente ho riscontrato lo stesso problema e ho scritto alcune note del blog per l'utilizzo degli strumenti OpenNLP 1.5.x. È un po 'denso da copiare nella sua interezza, quindi here's a link with more details.


Ad alto livello, è necessario caricare l'appropriata OpenNLP coreference model libraries e anche il WordNet 3.0 dictionary. A fronte di tali dipendenze, l'inizializzazione dell'oggetto linker è abbastanza semplice:

// LinkerMode should be TEST 
//Note: I tried LinkerMode.EVAL before realizing that this was the problem 
Linker _linker = new DefaultLinker("lib/opennlp/coref", LinkerMode.TEST); 

Utilizzando il Linker, però, è un po 'meno ovvio. È necessario:

  1. Rompere il contenuto verso il basso in frasi e le corrispondenti gettoni
  2. Creare un oggetto di analisi per ogni frase
  3. Avvolgere ogni frase Analizzare in modo da indicare l'ordine frase:

    final DefaultParse parseWrapper = new DefaultParse(parse, idx);
  4. Iterate su ogni frase analizza e usa il linker per ottenere gli oggetti di menzione da ogni analisi:

    final Mention[] extents = 
        _linker.getMentionFinder().getMentions(parseWrapper);
  5. Infine, usare il Linker di individuare le entità distinte in tutti gli oggetti Menzione:

    DiscourseEntity[] entities = _linker.getEntities(arrayOfAllMentions);
+0

La prego di indicare come ciò sarebbe stato fatto da linea di comando? Grazie. – Haritz

+0

Nel blog hai detto di caricare i modelli usando 'getResourceAsStream' ma alla fine non hai descritto come hai detto a Linker di caricare i modelli usando' getResourceAsStream'. Come hai caricato i modelli? – justhalf

+0

@justhalf Questo è in realtà solo un errore di copia + incolla da un precedente passaggio sul blog. Il 'Linker' prende direttamente il percorso verso i modelli di core-core, quindi non c'è bisogno di usare' getResourceAsStream'. Grazie per averlo capito! – dpdearing

Problemi correlati