2010-10-13 6 views

Respuesta

11

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]

0

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?

+0

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

Cuestiones relacionadas