胡 盾,楊 炯
(蘇州大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
在計算機(jī)技術(shù)中,解析器通常是一個程序的一部分。一個編譯器接收輸入的形式連續(xù)源程序指令,互動在線命令,標(biāo)記或定義其他一些的接口,并把它們分成部分(例如,名詞(對象)、動詞(方法)和它們的屬性或選擇),然后可以由其他程序編譯。解析器還可以檢查所有提供的輸入是否必要。
自然語言處理出現(xiàn)于上世紀(jì)90年代。自然語言解析器是一個制定了語法結(jié)構(gòu)句子的程序,例如,哪些詞組組合在一起(如“短語”),哪個字是動詞的主語或賓語。概率解析器使用從hand-parsed句子中獲得語言知識來產(chǎn)生最可能的分析新句子。這些統(tǒng)計解析器雖然存在一些錯誤,但通常工作相當(dāng)好,其發(fā)展是一個重大的突破。通過語義分析,可以理解自然語言的語句,并進(jìn)行深入的知識獲取和推理,使得人類可以與電腦溝通。為此,人們做了多年的努力,但依然沒有取得進(jìn)展。淺層語義分析,又稱為語義角色標(biāo)注,是一種簡化的深層語義分析,它只標(biāo)記謂詞角色所連接的成分在句子中的意義,如代理、病人、時間和地點等。由于自然語言處理技術(shù)和統(tǒng)計學(xué)習(xí)技術(shù)的成熟,使得淺層語義分析得以實現(xiàn)。同時,也對實現(xiàn)問答系統(tǒng)、信息抽取和機(jī)器翻譯有很大幫助。
Stanford Parser是一個實現(xiàn)英語、德語、漢語、阿拉伯語概率PCFG和依存解析器。這個模塊提供了一個Java薄包裝代碼,使其可以對Ruby與純Ruby對象進(jìn)行解析。
這個包是一個實現(xiàn)概率自然語言解析器,包含高度優(yōu)化的PCFG和詞匯化依賴解析器。原始版本的這個解析器主要由丹·克萊因編寫,克里斯托弗曼寧編寫支持代碼和開發(fā)語言的語法。
詞匯化概率解析器可以實現(xiàn)產(chǎn)品模型,有單獨的PCFG短語結(jié)構(gòu),詞匯依賴專家的喜好,結(jié)合高效精確推理或軟件可以作為一個準(zhǔn)確的隨機(jī)上下文無關(guān)文法解析器使用,這是一個良好的性能統(tǒng)計分析系統(tǒng)。通過一個圖形用戶界面提供了短語結(jié)構(gòu)樹輸出解析器以及提供一個英語語法解析器,該解析器同樣可以適應(yīng)其他語言工作。一個漢語句法分析的漢語樹庫,一個德國解析器基于語料庫和阿拉伯語解析器根據(jù)賓州樹庫還包括阿拉伯語。解析器對于意大利語、保加利亞語、葡萄牙語也可適用。
在輸入輸出樣例方面,解析器可以閱讀各種形式的純文本的輸入并輸出各種分析格式,包括詞性標(biāo)注的文本、短語結(jié)構(gòu)樹和語法關(guān)系(類型依賴)格式。解析器提供Stanford Dependencies輸出以及短語結(jié)構(gòu)樹。但這種輸出方式僅提供英文和中文。
示例1:
Wecan cut our trees with an aix.
We/NNS can/MD cut/VB our/PRP$trees/NN with/IN an/DT aix/NN ./.
鏈接語法解析器是根據(jù)鏈接文法和英語語法理論的一個英語語法解析器(包括其他語言)。給定一個句子,系統(tǒng)分配給它一個句法結(jié)構(gòu),其中包括一套標(biāo)記鏈接連接雙字。解析器產(chǎn)生“組織”(賓夕法尼亞tree-bank風(fēng)格詞樹),表示一個句子(顯示名詞短語、動詞短語等),擴(kuò)展提供dependency-parse輸出。持續(xù)發(fā)展的鏈接語法遵循開放認(rèn)知工程,自然語言處理系統(tǒng)在分析中發(fā)揮越來越重要作用。目前的工作包括利用哈爾算法調(diào)查統(tǒng)計指導(dǎo)解析排名、語法誘導(dǎo)、詞義消除歧義、使用統(tǒng)計結(jié)果、自動學(xué)習(xí)和基于語料庫統(tǒng)計的新解析規(guī)則。
鏈接語法解析器改進(jìn)了性能,為詞典擴(kuò)展了大量的新詞,改進(jìn)解析覆蓋多種結(jié)構(gòu),改進(jìn)解析生物醫(yī)學(xué)文本,多線程的支持,一個標(biāo)準(zhǔn)構(gòu)建系統(tǒng),動態(tài)共享庫的支持,支持其他非Linux平臺,如窗口、代碼等。
由于鏈接語法是自然語言的語法解析器,而非人工智能。因此,還有許多句子它無法正確解析,或者生成多個解析。也有個別語句,如valley-girl是無法分析的。鏈接文法做的最好的是“報紙英語”,長度適中的句子,書寫具有良好的語法、標(biāo)點符號等。此外,它有很多“bug”,特別是對“特定”和某些類型書寫,目前處理還比較麻煩,如“如果…那么…”結(jié)構(gòu)、復(fù)合查詢(“誰做的,為什么?”)、名單、“…不僅…而且…”結(jié)構(gòu)、某些類型的習(xí)語、某些類型的“制度性的話語”等。該項目的目標(biāo)是最終解決所有這些問題,并取得一些新的進(jìn)展。
示例2:
We will havea birthday party for our son at our house on Saturday.
在很長的句子中,可能會導(dǎo)致大量的聯(lián)系。在鏈接里,“for”將連接到“party”、“at”將連接到“brother”和“on”將連接到“house”,所以用“J”連接。
PC-PATR是一個語法解析器,使用PARTII作為一項規(guī)則描述語言,它實現(xiàn)了patr-ii形式主義計算語言。在設(shè)計時,PC-PATR采用根據(jù)類別自下而上與自上而下的分析過濾和由左向右秩序,這樣將每個詞添加到圖表后,可以推導(dǎo)出所有可能的邊緣點計算。
PC-PATR不需要任何特定的語法理論。一個PC-PATR語法是由一組規(guī)則和詞匯組成。每個規(guī)則由上下文無關(guān)短語結(jié)構(gòu)規(guī)則和一組特征約束,即統(tǒng)一的特征結(jié)構(gòu)與成分的短語結(jié)構(gòu)規(guī)則。該詞典提供的項目可以取代終端符號的短語結(jié)構(gòu)規(guī)則,即語言的詞匯和其相關(guān)的特征。這樣,它不僅使析取統(tǒng)一約束,但它也允許析取短語結(jié)構(gòu)規(guī)則。
然而應(yīng)注意的是,由于開放的大括號({)對短語結(jié)構(gòu)規(guī)則和統(tǒng)一的限制,當(dāng)PC-PATR加載語法文件時必須注意避免混淆。最后的短語結(jié)構(gòu)規(guī)則由第一個約束開始,并開始統(tǒng)一約束,如果第一個約束部分分離,則短語結(jié)構(gòu)規(guī)則必須結(jié)束。否則,PC-PATR對待統(tǒng)一約束的一部分的短語結(jié)構(gòu)規(guī)則,而且不久就會產(chǎn)生語法錯誤的語法文件。應(yīng)該指出的是,語法文件讀取工程中,間斷分布或統(tǒng)一在短語結(jié)構(gòu)規(guī)則中擴(kuò)大時,它們只能作為一個簡單的人寫的規(guī)則。
示例3:
通過默認(rèn)設(shè)置,結(jié)果顯示為滿樹解析器。一個短句子應(yīng)該是這樣的:
也可以將顯示的結(jié)果作為一個單位的解析樹結(jié)構(gòu)的形式,一個括號內(nèi)的字符串。同一個短的句子應(yīng)該是這樣的:
(Sentence(Declarative(NP
(N cows))(VP(V eat)(COMP
(NP(N grass))))))
甚至可以將顯示的結(jié)果,分析在一個縮進(jìn)格式,這種格式有時稱為西北樹。同樣的短句子看起來像這樣:
本文提出了一個能夠發(fā)現(xiàn)一個句子語義依存關(guān)系的語義解析器,依賴輸出的鏈接語法解析器與Stanford Parser相似,雖然它的性能相當(dāng)于斯坦福PC FG句法分析模型,但比斯坦?!霸~匯化”(分解)模型快了3倍。通過比較它們的優(yōu)缺點,最終得到結(jié)論:對于生物文本的分析而言,Stanford Parser無疑是適合的,所以選擇斯坦福解析器來進(jìn)行生物文本分析工作。
[1]Sleator D,Temperley D.Parsing English with a Linking Grammar[EB/OL]. http://arxiv.org/pdf/cmp-lg/9508004.pdf,1991-10-30.
[2]Charniak Eugene.Statistical parsing with a context-free grammar and word statistics[C]//AAAI’97.1997:598-603.
[3]Collins Michael.Three generative,lexicalised models for statistical parsing[C]//Proceedings of the 35th Annual Meeting of the ACL.1997:16-23.
[4]Fillmore Charles J,Collin F Baker.FrameNet:Frame semantics meets the corpus[C]//Poster Presentation,74th Annual Meeting of the Linguistics Society of America.2000.
[5]McCarthy Diana.Using semantic preferences to identify verbal participation in role switching alternations[C]//Proceedings of the First Annual Meeting of the North American Chapter of the ACL(NAACL).2000:256-263.
[6]Miller Scott,Heidi Fox,Lance Ramshaw,et al.A novel use of statistical parsing to extract information from text[C]//Proceedings of the First Annual Meeting of the North American Chapter of the ACL(NAACL).2000:226-233.
[7]Collins Michael.Head-Driven Statistical Models for Natural Language Parsing[D].Ph.D.Dissertation,University of Pennsylvania,Philadelphia,1999.
[8]Hofmann Thomas,Jan Puzicha.Statistical Models for Cooccurrence Data[R].Massachussetts Institute of Technology Artificial Intelligence Laboratory,Cambridge,Massachusetts,1998.
[9]Che Wanxiang,Zhang Min,Liu Ting,et al.A hybrid convolution tree kernel for semantic role labeling[C]//Proceedings of the 21st International Conference on Computational Linguistics.Sydney,2006:73-80.
[10]Moschitti A.A study on convolution kernels for shallow semantic parsing[C]//Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics.2004:335-342.
[11]Xue N,Palmer M.Calibrating features for semantic role labeling[C]//EMNLP 2004.2004:88-94.
[12]Hacioglu K,Pradhan S,Ward W,et al.Semantic role labeling by tagging syntactic chunks[C]//Proceedings of CoNLL’04 Shared Task.2004:110-113.
[13]Fillmore C J.Frames and the semantics of understanding[J].Quaderni di Semantica,1985,6(2):222-254.
[14]Punyakanok V,Roth D,Yih W.The necessity of syntactic parsing for semantic role labeling[C]//Proceedings of IJCAI’05.2005:1117-1123.
[15]Trevor Cohn,Philip Blunsom.Semantic role labeling with three conditional random fields[C]//Proceedings of CoNLL’05.2005:169-172.
[16]Giuglea A,Mosehitti A.Semantic role labeling via frameNet[C]//Proceedings of the 21st International Conference on Computational Linguistics.2006:929-936.