Asla CNF'ye ihtiyacın yok. Dilbilgisi yapısını değiştirmenin sakıncaları vardır. Ancak, ara terminalleri tanıtmanız gerekir, böylece RHS uzunluğu karmaşıklığı belirlediğinden sağ taraf 2'den (2-form) daha uzun olmaz. Sezgisel bir şekilde açıklamaya çalışmanın en iyi yolu, bellek hizmet ederse, 1976'da bilgisayarlı bir dilbilim konferansında yayınlanan "Bağlamsız Ayrıştırma Üzerine Gözlemler" adlı Beau Shiel'in bir makalesidir. Earley'in algoritması örtük olarak 2-formunu kullanır. Sadece algoritmada gizlenir. Ayrıştırma ormanının kurtarılması ve ele alınmasıyla ilgili olarak, web'i "ayrıştırma ormanını ayrıştırma" bölümüne bakmalısınız. Aslında çok basittir. Pek çok makale web’de, eğer direk olarak arama yapacak başlıkları veya yazarları (alıntı veya içerik tablosundan) alırsanız.
Aslında, CF'den çok daha fazlasını yapabilir ve polinom zamanında hala ayrıştırma ormanları alabilirsiniz. Soru şu ki, bazen: bir kere elinizde ne yaparsınız?
Bahsettiğiniz son makalenin bir amacı, karmaşık algoritmaların (GLR gibi) zaman içinde veya uzayda bir şey satın almadığını ve ayrıştırma ormanınızı değiştirebileceğini göstermektir.
Öğretim hakkında bir yorum. Bence seminal olan Earley, öğretmek için çok karmaşık ve esasen aynı eğitim içeriğine sahip basit algoritmalar ile değiştirilebilir. Öğretim, kavramlar veya teknoloji ile ilgilidir. Earley'in algoritmasında, temel kavramlar ayrıntıların karmaşıklığında gizlidir ve teknoloji açısından modası geçmiş. Harika bir bildiriydi, ancak en iyi pedagojik yaklaşım olduğu anlamına gelmiyor.
Hesaplamalı dilbilim literatüründe normal bilgisayar bilimleri kanallarından daha fazla bilgi olabilir. Ceriel-Grune-Jacobs kitabım yok, ancak tüm uygun referanslara sahip olmasalardı şaşırırdım (seçim kriterleri hakkında emin olmasam da).
Bir yorumdaki isteğin ardından tamamlayıcı (7 Temmuz 2013)
Bu tamamlayıcı, Earley’den daha basit algoritmaların varlığını önemser.
Söylediğim gibi, web’de "kavşak ormanı ayrıştırma" olarak arama yapmak, daha hızlı kazabileceğiniz referansları size sağlamalıdır.
Temel fikir, ortak bir ormanın inşasına ayrılan tüm yolların, sınırlı bir otomat ve bağlamsız bir dilbilgisi kullanarak düzenli bir dil ve bağlamsız bir dil için Bar Hillel'in, Perles ve Shamir'in eski kesişim yapısından başka bir şey olmadığıdır. CF gramerine bakıldığında, yapıyı sadece giriş dizginizi tanıyan önemsiz bir otomatize uygularsınız. Hepsi bu. Ortak orman kesişme için sadece gramer Bir homomorfizm yoluyla orijinal dilbilgisi ile ilgilidir, sadece verilen dizgiyi tanır, ancak orijinal dilbilgisinin tüm ayrıştırma ağaçları ile bu homomorfizme kadar (yani terminal olmayanların basit bir şekilde yeniden adlandırılması) elde edilir.
Sonuçta ortaya çıkan dilbilgisi, aksiyomdan erişilemeyen (ilk sembolden türetilmiş bir dizgede bulunmayan) veya üretken olmayan (terminalden türetilemeyen) çok sayıda işe yaramaz şeyler, terminaller ve kurallar içerir. dize).
Sonra, ya sonunda iyi bir fırça ile temizlemelisiniz (muhtemelen uzun fakat algoritmik olarak basit) ya da yapıyı iyileştirmeyi deneyebilirsiniz, böylece sonunda fırçalanacak daha az işe yaramaz tüyler elde edilir.
Örneğin, CYK inşası tam olarak budur, ancak oluşturulan tüm kurallar ve terminal olmayanların üretken olması için düzenlenmiştir, ancak çoğu erişilemez. Bu aşağıdan yukarıya bir teknikten beklenir.
Yukarıdan aşağıya teknikleri (LR (k) temelli olanlar gibi) ulaşılamaz kurallardan ve terminal olmayanlardan kaçınır, ancak verimsiz olanları oluşturur.
Fırçalamanın birçoğuna gerçekte yeterli miktarda işaretçi kullanılarak ulaşılabilir, sanırım ama buna uzun süredir bakmadım.
Mevcut tüm algoritmalar aslında bu modeli izler. Yani bu gerçekten maddenin kalbidir ve çok basittir. Öyleyse neden karmaşıklığa gömelim?
Mutabakat alanında çoğu zaman "optimizasyonlar" genellikle LR (k), LL (k) ayrıştırıcı yapı ailesine dayanarak önerilmektedir, muhtemelen bu yapıların bazı statik faktörleri vardır (Earley'de statik faktoring yoktur). Eski öncelik önceliği dahil olmak üzere bilinen tüm tekniklere uygulanabilir. Tekliflerin arasına "optimizasyon" koydum, çünkü genellikle neyi optimize ettiğinizi, hatta gerçekten optimize edip etmediğinizi veya iyileştirmenin yararının ayrıştırıcınızın karmaşıklığına değip değmeyeceği belli değil. Bunun hakkında resmi ya da deneysel küçük objektif veriler bulacaksınız (bazıları var), ama daha birçok iddia. İlgilenecek bir şey olmadığını söylemiyorum. Bazı akıllı fikirler var.
Şimdi, temel fikri öğrendikten sonra, "optimizasyonlar" veya iyileştirme, ilgilendiğiniz ayrıştırıcı yapım tekniğinin ardından ve dilbilgisi üzerinden aşağı açılır bir otomat oluşturmak suretiyle, genellikle statik olarak (muhtemelen artan şekilde) uygulanabilir. o otomatla (neredeyse gramerle aynı şekilde) veya o otomatdan elde edilen bir gramerle kesişmek için çapraz ürün yapısı.
O zaman zilleri ve ıslıkları tanıtabilirsiniz, ancak bu çoğunlukla teknolojik detaylardır.
Isaac Newton'dan Philosophiæ Naturalis Principia Mathematica'nın bildirildiği gibi harika bir fizik ve matematik parçası. Pek çok öğrencinin okuma listesinde olduğunu sanmıyorum. Diğer tüm şeylerin eşit olması, Earley'in algoritmasını öğretmenin çok önemli bir tarihsel eser olmasına rağmen, çok faydalı olduğunu düşünmüyorum. Öğrencilerin olduğu gibi öğrenecekleri yeterlidir. Birçok kişi tarafından vurulma tehlikesi altında, Knuth LR (k) kağıdı için aynı olduğunu düşünüyorum. Teorik bir analizin mükemmel bir parçasıdır ve muhtemelen bir teorisyen için önemli bir okumadır. Hem donanım hem de yazılım olarak teknolojinin şu anki durumu göz önüne alındığında, ortakların inşası için çok önemli olduğuna kesinlikle kuşku duymuyorum. Ayrıştırma derleme zamanının önemli bir parçası iken zamanlar geçmiş, veya derleyicilerin hızı kritik bir mesele olduğunda (30 yıl önce derleme masraflarından ölen bir şirketin olduğunu biliyordum). Ayrıştırma uzmanı bir noktada uzmanlık bilgisinin olduğunu bilmek isteyebilir, ancak bilgisayar bilimi, programlama veya mühendislikteki ortalama bir öğrencinin buna ihtiyacı yoktur.
Öğrencilerin ayrıştırma konusunda daha fazla zaman harcaması gerekiyorsa, hesaplama dilbiliminde kullanılanlar gibi daha kullanışlı ve daha biçimlendirici olabilecek başka uzantılar da vardır. Öğretimin ilk rolü, bilimsel bilgiyi yapılandıran basit fikirleri ortaya çıkarmak, öğrencileri araştırma bilim adamlarının çekecekleri acı çekmeye zorlamamaktır (doktora öğrencileri hariç: bu bir geçiş ayinidir :-).
Yazardan lisans CC BY-SA 3.0