Ciao Sto cercando di utilizzare il parser PET, ma la documentazione fornita per l'utilizzo è insufficiente. Qualcuno può indicarmi un buon articolo o tutorial sull'utilizzo di PET? Supporta utf-8?Tentativo di utilizzare HPSG PET Parser
risposta
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]
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?
- 1. Come utilizzare il parser Stanford
- 2. Tentativo di utilizzare MEGAM come classificatoreBasedPOSTagger NLTK?
- 3. FailedPreconditionError: Tentativo di utilizzare uninitialized in Tensorflow
- 4. Il tentativo di utilizzare disconnessione porto oggetto
- 5. Generatore di parser/parser combinato
- 6. Come posso utilizzare body parser con LoopBack?
- 7. Errore di compilazione durante il tentativo di utilizzare CAGradientLayer
- 8. Problema di parser Spirit e Lex parser
- 9. Quando è pratico utilizzare un generatore di parser?
- 10. Errore 404 non trovato durante il tentativo di utilizzare ErrorDocument
- 11. Tentativo di utilizzare un generico con Entity Framework
- 12. Errore durante il tentativo di utilizzare il wrapper SQLite FMDatabase
- 13. Tentativo di utilizzare DOMParser con il nodo js
- 14. Errore: tentativo di utilizzare lunghezza zero nome della variabile
- 15. Tentativo di utilizzare mangusta con destinazione node-webkit su Webpack
- 16. Errore durante il tentativo di utilizzare il gelsomino e l'angolare
- 17. Quando utilizzare parser-generator, quando è sufficiente la regex?
- 18. Comportamento di interruzione di un 6502 in test standalone vs in un Commodore PET
- 19. Multiple parser di bisello/flex
- 20. Limitazioni dei generatori di parser e parser PEG?
- 21. Perché parser-generatori invece di semplici parser configurabili?
- 22. Problemi di Parser di Scala
- 23. Tentativo di evitare AppDomains
- 24. Stanford Parser utilizzo multithread
- 25. Esempio di parser XML DOM
- 26. Haskell - parser di discesa ricorsivo
- 27. Scrittura di un parser semplice
- 28. Parser RTF Java
- 29. Flex ++ BisonC++ parser
- 30. Python lista argomento parser di lista o tupla di tuple
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