2010-10-13 10 views

risposta

11

Per utilizzare il parser PET, è necessario prima caricare una grammatica per la lingua di interesse. La grammatica deve essere scritta nel linguaggio TDL, come utilizzato nello DELPH-IN consortium (wiki here). Sono disponibili grammatiche grandi e compatibili per diverse lingue, tra cui inglese, giapponese e tedesco. Ci sono anche grammatiche più piccole disponibili e puoi scriverne di tue.

Per questo - e per lavorare con queste grammatiche - la soluzione migliore è il libro di Ann Copestake, "Implementing Typed Feature Structure Grammars" (CSLI 2002). Il libro fornisce un'introduzione approfondita al TDL e alle grammatiche come queste che funzionano attraverso l'unificazione delle strutture delle caratteristiche digitate. Le grammatiche supportano il mapping bidirezionale tra sintassi (stringhe di superficie) e semantica ("significato", rappresentato secondo MRS di Copestake - Semantica di ricorsione minima). Si noti che si tratta di grammatiche di precisione, il che significa che sono generalmente meno tolleranti rispetto agli input non grammaticali rispetto ai sistemi statistici.

Il English Resource Grammar (ERG) è una grammatica inglese di grandi dimensioni con un'ampia copertura generale. È open source e puoi scaricarlo dal sito web. Una demo online, alimentata dal parser PET, può essere trovata here.

Il parser PET viene eseguito in due passaggi. Il primo, chiamato flop produce una versione "compilata" della grammatica. Il secondo passo è l'analisi effettiva, che utilizza il programma economico. Dovrai ottenere questi due binari PET per la tua macchina Linux, o costruirli tu stesso. Questo passaggio potrebbe non essere facile se non hai familiarità con la creazione di software su Linux. PET non funziona su Windows (o Mac, per quanto ne so).

In esecuzione il flop è facile. Basta andare nella directory/erg, e digitare:

$ flop english.tdl 

Questo produrrà il file dienglish.grm. Ora è possibile analizzare frasi eseguendo buon mercato:

$ echo the child has the flu. | cheap --mrs english.grm 

Questo esempio produce una singola rappresentazione semantica della frase in MRS formato (Basico ricorsione semantica):

[ LTOP: h1 
    INDEX: e2 [ e SF: PROP TENSE: PRES MOOD: INDICATIVE PROG: - PERF: - ] 
    RELS: < 
      [ _the_q_rel<-1:-1> 
      LBL: h3 
      ARG0: x6 [ x PERS: 3 NUM: SG IND: + ] 
      RSTR: h5 
      BODY: h4 ] 
      [ "_child_n_1_rel"<-1:-1> 
      LBL: h7 
      ARG0: x6 ] 
      [ "_have_v_1_rel"<-1:-1> 
      LBL: h8 
      ARG0: e2 
      ARG1: x6 
      ARG2: x9 [ x PERS: 3 NUM: SG ] ] 
      [ _the_q_rel<-1:-1> 
      LBL: h10 
      ARG0: x9 
      RSTR: h12 
      BODY: h11 ] 
      [ "_flu_n_1_rel"<-1:-1> 
      LBL: h13 
      ARG0: x9 ] > 
    HCONS: < h5 qeq h7 h12 qeq h13 > ] 

libro di Copestake spiega la sintassi specifica e formalismo linguistico usato in grammatiche compatibili con il PET. Serve anche come manuale per l'utente del sistema LKB open-source, che è un sistema più interattivo che può anche essere analizzato con queste grammatiche.Oltre all'analisi, l'LKB può fare il contrario: generare frasi da rappresentazioni semantiche di MRS. L'LKB è attualmente supportato solo su Linux/Unix. Esistono in realtà quattro motori di elaborazione della grammatura conformi a DELPH-IN, inclusi LKB e PET.

Per Windows, c'è accordo, un multi-threaded parser/generator (e here) che ho sviluppato per .NET; supporta anche la generazione e l'analisi. Se hai bisogno di lavorare con le grammatiche in modo interattivo, potresti prendere in considerazione l'utilizzo di LKB o d'accordo oltre a - o al posto di - PET. I front-end client interattivi per concordano principalmente basati su WPF, ma il motore e un semplice client di console possono essere eseguiti su qualsiasi piattaforma Mono.

ACE è un altro sistema di analisi e generazione compatibile con DELPH-IN open source progettato per prestazioni elevate ed è disponibile per Linux e MacOS.

L'LKB è scritto in Lisp, mentre PET e ACE sono C/C++, quindi questi ultimi sono i parser più veloci per l'uso in produzione. concordare è anche molto più veloce di LKB, ma diventa più veloce di PET quando si analizzano frasi complesse, in cui le spese generali da concordano con la concorrenza senza lock senza ammortamento.

[11/25/2011 edit: d'accordo ora supporta la generazione e l'analisi]

0

PET supporta UTF-8, a seconda di come è stato configurato al momento della compilazione. Oltre alla pagina wiki, dai uno sguardo o pubblica una domanda allo mailing list.

Esistono diversi metodi di input, vorrei raccomandare FSC (XML) o YY (s-exp) per essere il più moderno. Non sono a conoscenza di brevi tutorial, ma puoi anche guardare a Heart of Gold per un pacchetto completo di NLP end-to-end, in cui PET è un componente.

Stai analizzando con l'ERG?

+0

L'OP ha voluto qualche esempio minimo. per esempio. dato una frase alla PET, e come ottenere informazioni significative dal PET (quali opzioni per quale scopo con alcuni semplici esempi). AFAIO questa informazione non può essere trovata nella wiki. – hmuelner

Problemi correlati