Bir Earley Parser, DFA için Levenshtein Automata Algo'ya benzer bir bulanık ayrıştırıcıya dönüştürülebilir mi?


10

Giriş kelimesinin DFA'sı ve çalışma zamanı tarafından oluşturulmuş Levenshtein Automata ile bulanık ayrıştırma yapmanın bir yolu vardır (belirli bir düzenleme mesafesine yazım hatalarıyla bile dizeleri kabul eder). Bir Earley ayrıştırıcıyla benzer bir şey yapılabilir mi? Bu soruyu cevaplamak yerine algoritmayı anlamakta zorlanıyorum.


1
PDA, NFA ile birçok operasyona karşı kapalıdır, bu nedenle bu prensipte mümkün olmalıdır. Earley'i uyarlamak, öğelerde bir sayaç kullanmamıza izin verildiğinden, çürük bir egzersiz gibi görünüyor. Bir şey mi kaçırıyorum?
Raphael

@Raphael Evet Bu genel bir fikir. Yanıtım daha uzun, çünkü kullanıcıların bildiklerini veya bilmediklerini değerlendirmek zor.
babou

plz, "Levenshtein Automata" için bir ref / sketch defn. yeterlik kazanabilecek birini biliyorsunuz ama hangisine atıfta bulunuyorsunuz?
vzn

Yanıtlar:


8

Cevap Evet. Ancak bunu bir Earley ayrıştırıcıyla yapmam çünkü aynı özelliklere sahip daha basit olanlar var.

Temel olarak, Earley ayrıştırıcısı, dilbilgisi belirsiz olduğunda belirli bir dize için olası tüm ayrıştırmaları üreten genel bağlamsız ayrıştırıcılar ailesine aittir.

Bu ayrıştırıcıları anlamanın iki yolu vardır (en azından):

  • giriş dizesindeki dilbilgisine karşılık gelen bir aşağı itme otomatının dinamik programlama yorumu olarak;

  • sonlu durum otomasyonu ile dilbilgisinin kesişiminin oluşturulması olarak.

Tek bir dize ayrıştırılırken, dikkate alınacak sonlu durum otomatı , her seferinde bir sembol olmak üzere yalnızca ayrıştırılacak dizesini tanıyan doğrusal bir otomattır (durum sayısı | w | + 1'dir ). Bir FA A ve bir CF garmer G'nin (Bar Hillel, Perlis, Shamir 1961) çapraz ürün yapısını uygularsanız, L ( A ) L ( G ) üreten yeni bir dilbilgisi F olan yeni bir CF gramer elde edersiniz. . Genellikle göz ardı edilen ilginç nokta, F'nin G tarafından kullanılan parse ağaçlarını koruduğuw|w|+1AGFL(A)L(G)FG, terminal dışı yeniden adlandırma (çapraz ürün nedeniyle).

AFL(G)G üretmek için kullanabileceği üretir.

F ve tüm genel CF ayrıştırma algoritmaları, CYK, Earley, genelleştirilmiş LR veya LL veya diğerleri olsun, çapraz ürün yapısının az çok optimize edilmiş bir versiyonudur. Yani tüm söylediğim onlar için de geçerli.

Ancak, gördüğünüz gibi, eğer herkes bunu yapmakla ilgileniyorsa, tüm düzenli bir seti ayrıştırmayı genelleştirir.

ww

GF

İstenirse, bu sadece minimum mesafeye sahip telleri tutmak için kullanılabilir.

Bununla birlikte, sonlu durum makineleri ile kompozisyon ilişkisel olduğu için bu biraz geliştirilebilir.

GwΣ

Yapımın öncekiyle aynı sonucu elde etmek için budamak kolay olurdu, ancak en iyi yol, Earley de dahil olmak üzere literatürdeki çoğu ayrıştırıcı tarafından kullanılan dinamik programlama organizasyonu gibi daha kontrollü bir kavşak yapısıdır ve bunu oluşturmaktan kaçınmak için kullanmaktır. mesafeleri hesaplayarak ve istenen eşiği aştığında herhangi bir hesaplama yolunu iptal ederek işe yaramaz kural. Dinamik programlama, girdiye en kısa mesafedeki dize için doğrudan ayrıştırma ormanını (veya ayrıştırma ağacını) hesaplamak için de kullanılabilir.


bunun yararlı olduğunu düşünün ama belki de "çok fazla okumak" sorusuna bu yüzden "bu tam olarak sizin sorunuz" gibi bir şey söylemek gerçekten doğru olamaz. kesin olarak resmileştirilmemiş oldukça belirsiz bir soru aldınız ve bunu kendiniz resmileştirdiniz. muhtemelen orijinali biraz belirsiz bir fikri resmileştirmenin birden fazla yolu vardır. Levenshtein DFA yapılarının ne yaptığını dikkatli bir şekilde tanımlamanın yararlı olabileceğini düşünün (bazıları biliniyor / araştırılıyor, ama hangilerinden bahsediyoruz?) ve sonra bu kavramın CFL'lere nasıl genelleştirilebileceğini açıklayın.
vzn

1
Aslında birbirini tamamlayan farklı şekillendirmeler veriyorum. İşlemde ağırlıkların tam olarak kullanılması gibi girmediğim incelikler var, bu da almak istediğiniz kesin sonuca bağlı. Amacım sadece kendi düşüncemle çok az ilgisi olan bir cevap vermek değil, aynı zamanda sorunun daha geniş bir şekilde anlaşılmasını sağlamaktır. Kullanılan düzenleme mesafesinin seçimi önemsizdir, ağırlıklı sonlu durum dönüştürücü ile ifade edilebilecek herhangi bir şey için çalışır.
babou
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.