Jäsentäminen

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25. joulukuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Kielitieteen ja tietojenkäsittelytieteen syntaktinen analyysi (tai jäsentäminen , slangin  jäsentäminen ← Englanninkielinen  jäsennys )  on prosessi, jossa verrataan luonnollisen tai muodollisen kielen lineaarista lekseemisarjaa (sanoja, merkkejä) sen muodolliseen kielioppiin . Tuloksena on yleensä jäsennyspuu (syntaksipuu). Yleensä käytetään leksikaalisen analyysin yhteydessä .

Jäsenin ( slangi  parser ← englanniksi  parser ) on ohjelma tai ohjelman osa, joka suorittaa jäsennyksen.

Jäsennyksen aikana lähdeteksti muunnetaan tietorakenteeksi , yleensä puuksi, joka kuvastaa syöttösekvenssin syntaktista rakennetta ja sopii hyvin jatkokäsittelyyn.

Pääsääntöisesti syntaktisen analyysin tulos on lauseen syntaktinen rakenne, joka esitetään joko riippuvuuspuun muodossa tai komponenttipuun muodossa tai jonkin ensimmäisen ja toisen esitystavan yhdistelmänä .

Laajuus

Kaikki, jolla on " syntaksi ", sopii automaattiseen jäsennykseen.

Algoritmien tyypit

Toipuminen virheistä

Yksinkertaisin tapa vastata virheelliseen syöttömerkkijonoon on lopettaa jäsentäminen ja näyttää virheilmoitus. Usein on kuitenkin hyödyllistä löytää mahdollisimman monta virhettä yhdellä jäsennysyrityksellä. Näin käyttäytyvät yleisimpien ohjelmointikielten kääntäjät.

Jäsentimen virhekäsittelijällä on siis seuraavat tehtävät:

Tunnetuimmat virheenpalautusstrategiat kuvataan alla.

Palautuminen paniikkitilassa

Kun virhe havaitaan, jäsentäjä ohittaa syöttötunnisteet yksi kerrallaan, kunnes löydetään yksi erityisesti määritellyistä synkronointivalteista . Yleensä tällaiset merkit ovat erottimia, esimerkiksi: ; , ) tai } . Analysoitavan kielen kehittäjän on määritettävä synkronointitunnisteiden joukko. Tällä palautusstrategialla saattaa olla, että huomattava määrä merkkejä ohitetaan tarkistamatta lisävirheitä. Tämä palautusstrategia on helpoin toteuttaa.

Fraasitason palautus

Joskus, kun virhe havaitaan, jäsentäjä voi suorittaa paikallisen korjauksen tulovirralle, jotta se voi jatkua. Esimerkiksi ennen puolipistettä, joka erottaa eri käskyt ohjelmointikielessä, jäsentäjä voi sulkea sulut, joita ei ole vielä suljettu. Tämä on monimutkaisempi suunnitella ja toteuttaa, mutta joissain tilanteissa se voi toimia huomattavasti paremmin kuin paniikkipalautuminen. Luonnollisesti tämä strategia on tehoton, jos todellinen virhe tapahtui ennen kuin jäsentäjä havaitsi virheen.

Bugituotannot

Yleisimpien virheiden tunteminen mahdollistaa kielen kieliopin laajentamisen virheellisiä konstruktioita luovilla tuotannoilla. Kun tällaiset tuotannot käynnistyvät, virhe kirjataan, mutta jäsentäjä jatkaa toimintaansa normaalisti.

Analyzer kehitystyökalut

Kääntäjien erilliset kehitys- ja rakentamisvaiheet voidaan automatisoida ja suorittaa tietokoneella.

Tässä on joitain tunnetuimmista analysaattoreiden kehitystyökaluista [2] :

Katso myös jäsennysgeneraattoreiden vertailu .

Katso myös

Muistiinpanot

  1. Tim Jones M. Tietojen poimiminen Internetistä Ruby-kielellä. (22. toukokuuta 2014). Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 13. joulukuuta 2019.
  2. Ela Kumar. luonnollisen kielen käsittely. - IK International Pvt Ltd, 2011. - s. 100. - ISBN 978-93-80578-77-4 .

Kirjallisuus

Linkit