2010-10-13 34 views

回答

11

要使用PET解析器,首先必須爲感興趣的語言加載語法。語法必須以TDL語言編寫,如DELPH-IN consortiumwiki here)中所使用的。大型兼容的語法可用於多種語言,包括英語,日語和德語。也有更小的語法可用,並且您可以編寫自己的語法。

對於這個 - 以及對這些語法的工作 - 你最好的選擇是Ann Copestake的書,"Implementing Typed Feature Structure Grammars"(CSLI 2002)。本書提供了對TDL和語法的全面介紹,例如通過統一鍵入功能結構的語法。語法支持語法(表面字符串)和語義(根據Copestake的MRS-最小遞歸語義表示的「含義」)之間的雙向映射。請注意,這些是精確語法,這意味着它們比統計系統一般不容許不合規輸入。

English Resource Grammar (ERG)是一個大型的英語語法,它具有廣泛的通用範圍。它是開源的,你可以從網站上下載。一個由PET解析器支持的在線演示可以在here中找到。

PET分析器分兩步運行。第一個叫做的翻譯產生一個語法的「編譯」版本。第二步是實際解析,它使用程序。您需要爲您的Linux機器獲取這兩個PET二進制文件,或者自己構建它們。如果你不熟悉在Linux上構建軟件,這一步可能並不容易。 PET不能運行在Windows(或者Mac上,據我所知)。

跑步翻牌圈很容易。只要到你的/爾格目錄,然後鍵入:

$ flop english.tdl 

這將產生english.grm文件。現在,您可以通過運行便宜解析句子:

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

此示例將在MRS句單一語義表示(最小遞歸語義)格式:

[ 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的書解釋了特殊的語法以及與PET兼容的語法中使用的語言形式。它也可作爲開源LKB系統的用戶手冊,它是一個更具交互性的系統,可以用這些語法進行分析。除了解析,LKB可以做相反的事情:從MRS語義表示生成句子。 LKB目前僅在Linux/Unix上受支持。實際上,總共有四個DELPH-IN兼容的語法處理引擎,包括LKB和PET。

對於Windows,有同意,我已經爲.NET開發的multi-threaded parser/generator(和here);它也支持生成和解析。如果您需要以交互方式使用語法,則可能需要考慮使用LKB或同意,或者替代--PET。交互式客戶端前端同意大多是基於WPF的,但引擎和簡單的控制檯客戶端可以在任何Mono平臺上運行。

ACE是另一款開源的兼容DELPH-IN的解析和生成系統,專爲高性能而設計,適用於Linux和MacOS。

LKB是用Lisp編寫的,而PET和ACE是C/C++,所以後者是用於生產的更快的解析器。 同意也比LKB快得多,但在解析複雜句子時只比PET速度快,其中同意的開銷無鎖併發性成爲攤銷。

[2011/11/25編輯:同意現在支持生成以及解析]

0

PET確實支持UTF-8,具體取決於編譯時如何配置。除了維基頁面之外,還可以看看或者發佈一個問題到mailing list

確實存在幾種輸入法,我推薦FSC(XML)或YY(s-exp)是最現代的。我不知道任何簡短的教程,但你也可以看看Heart of Gold以獲得一個完整的端到端NLP包,其中PET是一個組件。

您是否使用ERG解析?

+0

的OP想要一些小例子。例如給PET一個句子,以及如何從PET中獲得有意義的信息(用一些簡單的例子爲哪個目的選擇)。 AFAIO這個信息不能在wiki中找到。 – hmuelner 2011-01-13 08:42:48