Kısıtlama dilbilgisi - Constraint grammar

Kısıtlama dilbilgisi ( CG ), doğal dil işleme (NLP) için metodolojik bir paradigmadır . Dilbilimci tarafından yazılmış, bağlama bağlı kurallar, çalışan metindeki kelimelere veya diğer belirteçlere dilbilgisi etiketleri ("okumalar") atayan bir dilbilgisinde derlenir. Tipik etiketler adres lemmatisation ( lexemenin veya baz biçimi ), bükülme , türetme , sentaktik fonksiyonu , bağımlılık, değerliği , durum rolleri , semantik vb Her kural türü ekler kaldırır, seçer veya bir etiket ya da belirli bir gramer etiket grubu yerine geçer, ya cümle bağlamı. Bağlam koşulları, yerel olarak (tanımlanmış mesafeler) veya genel olarak (tanımlanmamış mesafeler) cümlenin herhangi bir yerindeki herhangi bir kelimenin herhangi bir etiketine veya etiket kümesine bağlanabilir. Aynı kuraldaki bağlam koşulları bağlantılı olabilir, yani birbirine bağlı olabilir, olumsuzlanabilir veya araya giren kelimeler veya etiketler tarafından engellenebilir. Tipik CG'ler, her zamankinden daha gelişmiş analiz seviyelerini kapsayan, aşamalı adımlarda set bazında uygulanan binlerce kuraldan oluşur. Her seviyede güvenli kurallar, buluşsal kurallardan önce kullanılır ve hiçbir kuralın belirli bir türün son okumasını kaldırmasına izin verilmez, böylece yüksek derecede sağlamlık sağlanır.

CG kavramı, Fred Karlsson tarafından 1990'da başlatıldı (Karlsson 1990; Karlsson ve diğerleri, eds, 1995) ve CG etiketleyicileri ve ayrıştırıcıları o zamandan beri çok çeşitli diller için yazılmıştır ve rutin olarak konuşmanın bir kısmı için doğruluk F puanları elde etmektedir . (kelime sınıfı) %99'un üzerinde. Bir dizi sözdizimsel CG sistemi, sözdizimsel işlev etiketleri için yaklaşık %95'lik F puanları bildirmiştir. CG sistemleri, küçük, terminal tabanlı olmayan tümce yapısı gramerleri veya bağımlılık gramerleri ekleyerek diğer formalizmlerde tam sözdizimsel ağaçlar oluşturmak için kullanılabilir ve bir dizi Treebank projesi otomatik açıklama için CG kullanmıştır. CG metodolojisi, yazım denetleyicileri ve makine çeviri sistemleri gibi bir dizi dil teknolojisi uygulamasında da kullanılmıştır .

Kural sözdizimi ve biçimi

Bir kısıtlama dilbilgisi girdi olarak ayrıştırıcı beklediği tipik olarak üretilen morfolojik analiz simgelerin bir akış, sonlu hal dönüştürücü merkezli analizörü (yaygın olanları Xerox araçları twolc / lexc / xfst vardır HFST veya apertium 'in lttoolbox). Her belirteç belirsiz olabilir ve birçok okumaya sahip olabilir , tüm okumalarıyla birlikte yüzey formuna kohort denir . Aşağıda, " ve X'in VISL CG-3 tarafından beklenen giriş biçiminde "" gibi olası bir örnek analizi verilmiştir:

"<,>"
	"," cm
"<and>"
	"and" conj
"<X>"
	"X" num pl
	"X" noun prop
"<was>"
	"be" verb past p1 sg
	"be" verb past p3 sg
"<like>"
	"like" adj
	"like" subj
	"like" pr
	"like" verb inf
	"like" verb pres
	"like" verb imp
"<“>"
	"“" lquot

Bu snippet, her biri bir veya daha fazla okumaya sahip 5 kohort gösterir. Öngörüler "<anglequotes>"/temel biçimler düzenliyken yüzey sözcük biçimleri içeridedir ve "quotes"ardından bir dizi alıntı yapılmamış etiketler vardır ve bazı kohortların birkaç okuması olduğunu görüyoruz, yani. belirsizdir ( "<like>"6 okuma arasında belirsizdir). CG ayrıştırıcısının işi şimdi 1) bağlam göz önüne alındığında güvenli olduğu kadar çok yanlış okumayı kaldırmak, 2) isteğe bağlı olarak her kohorta (veya hatta bağımlılık ilişkilerine) bir veya daha fazla sözdizimsel işlev etiketi uygulamak ve 3) belirsizliği ortadan kaldırmaktır. uygulanan etiketler/ilişkiler.

Solda birinci tekil şahıs zamiri olmadığı için, "was"ın üçüncü şahıs okumasını (birinci şahıs okumasını kaldırarak) seçmek için (yine VISL CG-3 formatında) bir örnek kural aşağıdadır:

REMOVE (verb p1) IF 
  (0C (verb))
  (NEGATE *-1 (prn p1)) ;

Burada (verb p1), kaldırdığımız okumayla eşleşmesi gereken bir dizi etiket (sıralama önemli değil). IFSıfır veya daha fazla kısıtlama listesini izledikten sonra , ilki bu kohortta (konum 0), tüm okumaların ( CDikkatli için niteleyici ) etiketine sahip olduğunu söyler verb. İkinci kısıt, en az bir kelime sola doğru olan bir grup varsa (konum *-1, *bir kelimeden daha ileri gidebileceğimiz -anlam ve sol anlam) ve bu grup birinci şahıs zamir ise, o zaman kısıtlamanın *olmadığını söyler. * maç ( NEGATE).

CG-3'te, kurallara SELECT:somename (…) IFiz çıktısında görünen adlar da verilebilir .

Kısıtlamalar göz önüne alındığında diğer tüm okumaların yanlış olması gerektiğinden eminsek, bir kural da tek bir okuma seçebilir:

SELECT:quoting ("like" subj) IF 
  (-1 ("<was>"))
  (1 (lquot) OR (":"))  ;

Bu kuralda, etiket kümelerinde hem sözcük biçimlerine hem de temel biçimlere başvurabileceğimizi görüyoruz (tıpkı diğer etiketler gibi ele alınırlar ve bir okuma her zaman sözcük biçimiyle eşleşir). Burada ikinci kısıtlama, ORiki etiket kümesini birleştirmek için kullanılır. Bu küme yaygın olarak kullanılıyorsa, ona bir ad verebilir ve adını parantez olmadan şu şekilde kullanabiliriz:

LIST prequote = lquot ":" ; 
SELECT:quoting ("like" subj) IF 
  (-1 ("<was>"))
  (1 prequote) ;

Eşdeğer bir tanım olacaktır SET prequote = (lquot) OR (":") ; .

Yukarıdaki kuralları çalıştırdıktan sonra, şununla bitirmeliyiz:

"<,>"
	"," cm
"<and>"
	"and" conj
"<X>"
	"X" num pl
	"X" noun prop
"<was>"
	"be" verb past p3 sg
"<like>"
	"like" subj
"<“>"
	"“" lquot

Kullandığımız takdirde --trace, önce bir başlangıç ile kaldırılan okumalar görecekti ;ve bir okuma uygulanan yerde kuralın adı ve satır numarası.


Sözdizimsel işlev etiketleri eklemek için kural sözdizimi, benzer bir "x, y ve z ise bunu yapın" şemasını izler:

LIST nominal = noun prn ;
ADD (@SUBJ) IF 
  (NEGATE *-1 nominal)
  (0C (prop))
  (1C finiteverb) ;

Buna "eşleme kuralı" denir ve her kohort için bu tür birden çok eşleme etiketi elde edebiliriz, bu durumda aynı SELECT/REMOVE kurallarını kullanarak belirsizliği giderebiliriz.

Uygulamalar

CG-1

İlk CG uygulaması, 1990'ların başında Fred Karlsson tarafından CGP idi. Tamamen LISP tabanlıydı ve sözdizimi LISP s-ifadelerine dayanıyordu (Karlsson 1990).

CG-2

Pasi Tapanainen'in CG-2 uygulaması mdis , dilbilgisi biçimindeki bazı parantezleri kaldırdı ve C++'da uygulandı ve dilbilgisi hız için bir Sonlu Durum Dönüştürücüsü olarak yorumlandı .

CG-2 daha sonra (FST olmayan bir yöntemle) Syddansk Universitet'teki VISL grubu tarafından açık kaynak VISL CG [1] olarak yeniden uygulandı ve Tapanainen'in kapalı kaynaklı mdis'iyle aynı formatı korudu .


CG-3

VISL'nin cg3ide'sinin ekran görüntüsü
Emacs cg.el'de bir CG-3 dosyasını düzenleme ve çalıştırma

VISL projesi daha sonra VISL CG-3'e dönüştü ve bu da dilbilgisi formatına ilave değişiklikler ve eklemeler getirdi, örneğin:

  • Unicode için Uluslararası Bileşenler aracılığıyla tam Unicode desteği
  • olumsuzlamanın farklı yorumu (DEĞİL)
  • düz bağımlılık ilişkilerine ek olarak adlandırılmış ilişkiler
  • değişken ayar
  • tam regex eşleşmesi
  • etiket/küme birleştirme - LIST gen = m f; SELECT (det) + $$gen IF (1 noun) (1 $$gen);aşağıdaki isim ile aynı cinsiyete sahip olan belirleyiciyi seçecektir
  • okuma / yazma sarmalayıcıları apertium ve HFST formatları
  • alt okumalar için destek (bir okumanın birden fazla "parçası" olduğu, çok kelimeli ifadeler ve bileşikler için kullanılır)
  • geçmiş başlangıç ​​noktasını ve hatta pencere sınırlarını taramak
  • kütüphane olarak kullanmak ve harici süreçlerle entegrasyon için destek

Ayrıca, VISL [2] tarafından geliştirilen , sözdizimi vurgulama sağlayan ve dilbilginizi yazarken girdi ve çıktıları ve olası hataları görmenizi sağlayan basit CG-3 için IDE vardır . Benzer özelliklere ve basit kod navigasyonuna sahip bir Emacs modu cg.el[3] da vardır.

Tapanainen uygulamasının aksine, VISL uygulamaları sonlu durum dönüştürücülerini kullanmaz. Kurallar, dilbilgisi yazarken daha fazla öngörülebilirlik sağlayan, ancak daha yavaş ayrıştırma ve sonsuz döngü olasılığı pahasına bölümler içinde sıralanır.

Değilse küçük gramerler için, VISL CG-3 hızını ulaşmasını CG-2'nin deneysel açık kaynak FST tabanlı reimplementations olmuştur MDI'lara .

Sistem listesi

Ücretsiz yazılım
Özgür olmayan yazılım

Referanslar

  1. ^ İngilizce için, örneğin Tapanainen ve Voutilainen 1994'e bakınız.
  2. ^ Tapanainen, Pasi 1996: Kısıtlama Dilbilgisi Ayrıştırıcı CG-2. Helsinki Üniversitesi Yayınları No. 27.
  3. ^ Nemeskey, DM, Tyers, FM ve Hulden, M. (2014) "Neden Uygulama Önemlidir: Bir Açık Kaynak Kısıtlama Dilbilgisi Ayrıştırıcısının Değerlendirilmesi". 25. Uluslararası Hesaplamalı Dilbilim Konferansı Tutanakları (COLING 2014) (gösterilecek)
  • Bick, Eckhard. 2000. Ayrıştırma Sistemi "Palavras": Kısıtlı Dilbilgisi Çerçevesinde Portekizce'nin Otomatik Dilbilgisel Analizi . Aarhus: Aarhus University Press. ISBN  87-7288-910-1 .
  • Karlsson, Fred. 1990. Kısıtlanmamış Metin Ayrıştırma Çerçevesi Olarak Kısıtlama Dilbilgisi. H. Karlgren, ed., 13. Uluslararası Hesaplamalı Dilbilim Konferansı Bildiriler Kitabı , Cilt. 3. Helsinki 1990, 168-173.
  • Karlsson, Fred, Atro Voutilainen, Juha Heikkilä ve Arto Anttila, editörler. 1995. Kısıtlama Dilbilgisi: Kısıtlanmamış Metin Ayrıştırma için Dilden Bağımsız Bir Sistem . Doğal Dil İşleme, No 4. Mouton de Gruyter, Berlin ve New York. ISBN  3-11-014179-5 .
  • Tapanainen, Pasi ve Atro Voutilainen 1994: Doğru etiketleme: biliyorsan tahmin etme . ANLC '94 Uygulamalı doğal dil işleme konulu dördüncü konferansın bildirileri.

Dış bağlantılar