您好我正在嘗試使用PET解析器,但提供的使用文檔不足。任何人都可以點我一篇關於使用PET的好文章或教程嗎?它支持utf-8嗎?試圖使用HPSG PET解析器
回答
要使用PET解析器,首先必須爲感興趣的語言加載語法。語法必須以TDL語言編寫,如DELPH-IN consortium(wiki 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編輯:同意現在支持生成以及解析]
PET確實支持UTF-8,具體取決於編譯時如何配置。除了維基頁面之外,還可以看看或者發佈一個問題到mailing list。
確實存在幾種輸入法,我推薦FSC(XML)或YY(s-exp)是最現代的。我不知道任何簡短的教程,但你也可以看看Heart of Gold以獲得一個完整的端到端NLP包,其中PET是一個組件。
您是否使用ERG解析?
- 1. 試圖理解解析器
- 2. 試圖解析使用GSON
- 3. 試圖編寫解析器
- 4. 試圖瞭解Android的Sax解析器
- 5. 試圖解析使用PHP的JSON
- 6. 試圖解析,並使用PowerShell的
- 7. 如何防止Ruby的YAML解析器試圖解析{{VAR名}}
- 8. 如何使用羅馬解析圖像RSS解析器
- 9. 使用android sax解析器解析XML
- 10. 的Android - 解析使用SAX解析器
- 11. 使用sax解析器解析XML
- 12. 使用DOM解析器解析
- 13. 使用DOM分析器解析和編輯HTML解析器
- 14. 試圖解析Instagram JSON
- 15. MalformedByteSequenceException試圖解析XML
- 16. 笑話試圖解析.css
- 17. Python試圖解析輸入
- 18. 試圖解析這個SQL
- 19. SIGABRT當試圖解析JSON
- 20. Java解析器測試
- 21. 試圖用VBA來解析html
- 22. Spark和Python試圖用gensim解析wikipedia
- 23. 使用JAI解析圖像
- 24. 使用Feedjira解析圖像
- 25. 英語測試用例解析器
- 26. java.lang.NoClassDefFoundError:java.awt.geom.Rectangle2D $ Double嘗試使用pdfrenderer解析PDF圖像到圖像
- 27. HTML解析器使用Java
- 28. PHP解析器使用simplexml_load_string()
- 29. 使用SAX解析器
- 30. 使用DOM解析器和SAX解析器進行Android XML解析的區別
的OP想要一些小例子。例如給PET一個句子,以及如何從PET中獲得有意義的信息(用一些簡單的例子爲哪個目的選擇)。 AFAIO這個信息不能在wiki中找到。 – hmuelner 2011-01-13 08:42:48