Hola, estoy tratando de usar el analizador PET, pero la documentación dada para el uso es insuficiente. ¿Alguien puede dirigirme a un buen artículo o tutorial sobre el uso de PET? ¿Es compatible con utf-8?Intentando usar el analizador PET de HPSG
Respuesta
Para utilizar el analizador PET, primero debe cargar una gramática para el idioma de su interés. La gramática debe estar escrita en el lenguaje TDL, como se usa en el DELPH-IN consortium (wiki here). Se encuentran disponibles gramáticas compatibles y de gran tamaño para varios idiomas, incluidos inglés, japonés y alemán. También hay gramáticas más pequeñas disponibles, y puedes escribir las tuyas propias.
Para esto, y para trabajar con estas gramáticas, su mejor apuesta es el libro de Ann Copestake, "Implementing Typed Feature Structure Grammars" (CSLI 2002). El libro proporciona una introducción completa a TDL y gramáticas como estas que funcionan mediante la unificación de estructuras de características tipadas. Las gramáticas admiten mapeo bidireccional entre la sintaxis (cadenas superficiales) y la semántica ("significado", representado de acuerdo con la semántica de recursividad mínima MRS-- de Copestake). Tenga en cuenta que estas son gramáticas de precisión, lo que significa que generalmente son menos tolerantes a las entradas no gramaticales que los sistemas estadísticos.
La English Resource Grammar (ERG) es una gran gramática del inglés que tiene una amplia cobertura de dominio general. Es de código abierto y puedes descargarlo desde el sitio web. Una demostración en línea, con el analizador PET, se puede encontrar en here.
El analizador PET se ejecuta en dos pasos. El primero, llamado flop produce una versión "compilada" de la gramática. El segundo paso es el análisis real, que utiliza el programa barato. Necesitará obtener estos dos binarios PET para su máquina Linux o compilarlos usted mismo. Este paso puede no ser fácil si no está familiarizado con la creación de software en Linux. PET no se ejecuta en Windows (o Mac, que yo sepa).
Corriendo flop es fácil. Sólo tiene que ir a su directorio/erg, y el tipo:
$ flop english.tdl
Esto producirá el archivo english.grm. Ahora se puede analizar frases mediante la ejecución de barato:
$ echo the child has the flu. | cheap --mrs english.grm
En este ejemplo se produce una sola representación semántica de la oración en MRS (recursividad Semántica Mínimo) Formato:
[ 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 de Copestake explica la sintaxis específica y el formalismo lingüístico utilizado en gramáticas compatibles con el PET. También sirve como un manual del usuario para el sistema LKB de código abierto, que es un sistema más interactivo que también puede analizar estas gramáticas.Además del análisis sintáctico, el LKB puede hacer lo contrario: generar oraciones a partir de representaciones semánticas de MRS. El LKB actualmente solo es compatible con Linux/Unix. En realidad, hay un total de cuatro motores de procesamiento de gramática compatibles con DELPH-IN, incluidos LKB y PET.
Para Windows, hay de acuerdo, un multi-threaded parser/generator (y here) que he desarrollado para .NET; también es compatible con la generación y el análisis. Si necesita trabajar con las gramáticas de forma interactiva, es posible que desee considerar utilizar LKB o de acuerdo con además de, o en lugar de, PET. Los front-ends interactivos del cliente para están de acuerdo con, están basados principalmente en WPF, pero el motor y un cliente simple de consola pueden ejecutarse en cualquier plataforma Mono.
ACE es otro sistema de análisis y generación compatible con DELPH-IN de código abierto que está diseñado para un alto rendimiento, y está disponible para Linux y MacOS.
El LKB está escrito en Lisp, mientras que PET y ACE son C/C++, por lo que estos últimos son los analizadores más rápidos para uso en producción. de acuerdo también es mucho más rápido que el LKB, pero solo se vuelve más rápido que el PET al analizar oraciones complejas, donde los gastos generales de coinciden la concurrencia sin bloqueo se amortiza.
[11/25/2011 edición: de acuerdo ahora es compatible con la generación, así como el análisis sintáctico]
PET es compatible con UTF-8, dependiendo de cómo se configuró cuando se compiló. Además de la página wiki, también eche un vistazo o publique una pregunta al mailing list.
Existen varios métodos de entrada, recomendaría FSC (XML) o YY (s-exp) por ser el más moderno. No conozco ningún tutorial breve, pero también puede consultar Heart of Gold para obtener un paquete completo de PNL de extremo a extremo, donde el PET es un componente.
¿Está analizando con el ERG?
- 1. cómo usar el analizador dom php
- 2. ¿Cuándo debería usar un analizador?
- 3. Intentando usar la clase C# SpellCheck
- 4. Diferencia entre el analizador XML SAX, el analizador de arrastre y el analizador DOM en Android
- 5. Necesita el analizador de C++
- 6. Analizador CLR: problema al usar DefineAssemblyRef
- 7. Intentando comprender el preprocesador C
- 8. Analizador/Analizador para Erlang?
- 9. Intentando capturar el tráfico http de node.js con un analizador de protocolos (Charles) pero no puedo hacer que el nodo use el proxy
- 10. Intentando usar gglocator en ggplot2: Error en vpPathFromVector (nombres)
- 11. Intentando comprender completamente el izado de JavaScript
- 12. Intentando forzar el redibujado de UITableViewCell
- 13. Intentando actualizar el almacén de claves 'caducado'
- 14. Intentando atrapar el oncreate de un formulario
- 15. Intentando utilizar DOMParser con el nodo js
- 16. analizador SAX vs XMLPull analizador
- 17. analizador
- 18. Cómo especificar qué analizador de stax para usar
- 19. ¿Qué analizador de RSS debería usar en PHP?
- 20. ¿Cuándo es práctico usar un generador de analizador sintáctico?
- 21. Analizador de SQL en PHP?
- 22. Intentando usar jquery ui en la extensión google chrome en el nivel de contenido
- 23. Extendiendo el analizador de matplotlib mathtext
- 24. ¿El mejor analizador para C#?
- 25. ¿Pautas de diseño para el analizador y el lexer?
- 26. Flex ++ Analizador de BisonC++
- 27. ¿El mejor analizador JSON para Qt?
- 28. Intentando entender el uso de self.method_name vs. Classname.method_name en Ruby
- 29. Intentando leer un blob
- 30. ¿Cómo usar un analizador Lucene para tokenizar una cadena?
El PO quería un poco de ejemplo mínima. p.ej. Se le dio una oración al PET, y cómo obtener información significativa de PET (qué opciones para qué, con algunos ejemplos simples). AFAIO esta información no se puede encontrar en la wiki. – hmuelner