2010-10-13 3 views
8

Hallo Ich versuche, den PET Parser zu verwenden, aber die Dokumentation zur Verwendung ist unzureichend. Kann mir jemand auf einen guten Artikel oder eine Anleitung zur Verwendung von PET hinweisen? Unterstützt es UTF-8?Versuchen, HPSG PET Parser zu verwenden

Antwort

11

Um den PET-Parser zu verwenden, müssen Sie zunächst eine Grammatik für die gewünschte Sprache laden. Die Grammatik muss in der Sprache TDL verfasst sein, wie sie in der DELPH-IN consortium (wiki here) verwendet wird. Große, kompatible Grammatiken sind für mehrere Sprachen verfügbar, einschließlich Englisch, Japanisch und Deutsch. Es sind auch kleinere Grammatiken verfügbar, und Sie können Ihre eigenen schreiben.

Für diese - und für die Arbeit mit diesen Grammatiken - Ihre beste Wette ist Ann Copestakes Buch, "Implementing Typed Feature Structure Grammars" (CSLI 2002). Das Buch bietet eine gründliche Einführung in TDL und Grammatiken wie diese, die über die Vereinheitlichung typisierter Merkmalsstrukturen funktionieren. Die Grammatiken unterstützen bidirektionales Mapping zwischen Syntax (Oberflächen-Strings) und Semantik ("Bedeutung"), dargestellt nach Copestakes MRS- Minimal Rekursion Semantics). Beachten Sie, dass dies Präzisionsgrammatiken sind, was bedeutet, dass sie in der Regel weniger tolerant gegenüber grammatikalischen Eingaben sind als statistische Systeme.

Die English Resource Grammar (ERG) ist eine große Grammatik des Englischen, die breite, allgemeine Domain-Abdeckung hat. Es ist Open Source und Sie können es von der Website herunterladen. Eine Online-Demo mit dem PET-Parser finden Sie unter here.

Der PET-Parser läuft in zwei Schritten ab. Der erste, der Flop genannt wird, erzeugt eine "kompilierte" Version der Grammatik. Der zweite Schritt ist das eigentliche Parsen, das das billige Programm verwendet. Sie müssen diese zwei PET-Binärdateien für Ihre Linux-Maschine erhalten oder sie selbst erstellen. Dieser Schritt ist möglicherweise nicht einfach, wenn Sie mit dem Erstellen von Software unter Linux nicht vertraut sind. PET läuft nicht auf Windows (oder Mac, meines Wissens).

Laufen Flop ist einfach. Gehen Sie einfach zu Ihrem/ERG-Verzeichnis und Typ:

$ flop english.tdl 

Dies wird die english.grm Datei erzeugen. Jetzt können Sie Sätze parsen von billig läuft:

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

Dieses Beispiel erzeugt eine einzige semantische Repräsentation des Satzes in MRS (Minimal Recursion Semantics) Format:

[ 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 > ] 

Copestake Buch erklärt die spezifischen Syntax und sprachlicher Formalismus, der in PET-kompatiblen Grammatiken verwendet wird. Es dient auch als Benutzerhandbuch für das Open-Source-LKB-System, das ein interaktiveres System ist, das auch mit diesen Grammatiken arbeiten kann.Zusätzlich zum Parsen kann die LKB das umgekehrte tun: Sätze aus semantischen MRS-Repräsentationen erzeugen. Das LKB wird derzeit nur unter Linux/Unix unterstützt. Es gibt tatsächlich insgesamt vier DELPH-IN-konforme Grammatik-Verarbeitungs-Engines, einschließlich LKB und PET.

Für Windows gibt es zustimmen, ein multi-threaded parser/generator (und here), die ich für .NET entwickelt haben; Es unterstützt auch die Generierung und das Parsen. Wenn Sie mit den Grammatiken interaktiv arbeiten müssen, sollten Sie die LKB oder zustimmen zusätzlich zu - oder anstelle von - PET in Erwägung ziehen. Die interaktiven Client-Frontends für stimmen sind meist WPF-basiert, aber die Engine und ein einfacher Konsolenclient können auf jeder beliebigen Mono-Plattform ausgeführt werden.

ACE ist ein weiteres Open-Source DELPH-IN-kompatibles Analyse- und Generierungssystem, das für hohe Leistung entwickelt wurde und für Linux und MacOS verfügbar ist.

Die LKB ist in Lisp geschrieben, während PET und ACE C/C++ sind, so dass letztere die schnelleren Parser für den Produktionseinsatz sind. zustimmen ist auch viel schneller als der LKB, aber wird nur schneller als PET beim Parsen komplexer Sätze, wo Gemeinkosten von zustimmen Lock-free Nebenläufigkeit amortisiert werden.

[11/25/2011 edit: vereinbaren jetzt Generation sowie Parsing unterstützt]

0

PET unterstützt UTF-8, je nachdem, wie es beim Kompilieren konfiguriert wurde. Schauen Sie sich neben der Wiki-Seite auch eine Frage an oder senden Sie eine Frage an die mailing list.

Es gibt mehrere Eingabemethoden, ich würde FSC (XML) oder YY (s-exp) als die modernsten empfehlen. Ich kenne keine kurzen Tutorials, aber Sie können auch Heart of Gold für ein komplettes End-to-End-NLP-Paket betrachten, in dem PET eine Komponente ist.

Analysieren Sie mit der ERG?

+0

Das OP einige minimale Beispiel wollte. z.B. einen Satz zu PET gegeben, und wie man aussagekräftige Informationen aus PET bekommen kann (welche Optionen mit welchen einfachen Beispielen). AFAIO Diese Information kann nicht im Wiki gefunden werden. – hmuelner