Magánhangzó azonosítás Sukhotin algoritmussal
Az 1970-es évek elején, Borisz Viktorovics Sukhotin, kidolgozott egy algoritmust, amivel egy szövegrészletben azonosítani lehet a magánhangzókat.
Ezt fogjuk most áttekinteni egy példán keresztül. Az érdekessége az, hogy „papír-ceruza” módszerrel is remekül működik
Vegyük példának a ’KIVITTE’ szót. Most tekintsünk el attól, hogy nyílt szöveget nézünk. Az eljárás működik minden olyan nyelvre, írásmódra ahol mássalhangzók, illetve magánhangzók fordulnak elő. Mindegy, hogy balról jobbra, vagy jobbról balra írnak vele. Szóval vesszük azt a szót, vagy szöveg töredéket, amiben azonosítani kívánjuk a hangzókat, és
- lépés: Számláljuk le, hogy melyik karakter hányszor fordul elő a többi karakter mellett. Az K mellett található az I (illetve I mellett az K) és a E (illetve E mellett az K). Azért számoljuk bele az első és utolsó betűt egymás mellett levőnek, hogy az írás irányából eső tévedést kizárhassuk, illetve ha csak egy szöveg töredéket vizsgálunk, nem minden esetben tudhatjuk hol kezdődik a szó. Ha leszámlálunk mindent, ezt a szimmetrikus mátrixot kapjuk.
- lépés: Töltsük fel a bal felső sarokból a jobb alsóba irányuló átlót nullákkal. Ha ebben az átlóban nullától eltérő érték szerepelne, az azt mutatja, hogy valamelyik betű önmaga mellett áll. Szóval töltsük fel nullákkal.
- lépés: Adjuk össze a sorokban lévő számokat, és jelöljük meg mindet mássalhangzónak
- lépés: Keressük meg azt a sort, ahol a legmagasabb az előfordulások összege. Ez a mássalhangzó valójában magánhangzó. Jelöljük meg.
- lépés: Annak a sornak az összegéből vonjuk ki kétszer a magánhangzó előfordulását, amelyik betű mellett megtalálható. Például: Az K mellett egyszer fordul elő, tehát a K sorának az összege így alakul: 2-(2*1)=0; A V sorának az összege: 2-(2*2)=-2 és így tovább
Ismételjük a 4. lépést, amíg van nullánál nagyobb érték.
4. lépés (másodszor) Kiválasztjuk azt a mássalhangzót, amelyiknek legmagasabb a Sum értéke, és magánhangzónak jelöljük.
5. lépés (másodszor) Kivonjuk az előfordulásának a kétszeresét abból a sorból amelyet a szomszédos betűje jelöl.
Mivel nincs több nullánál nagyobb összeg, így meghatározhatjuk, hogy az I és az E magánhangzó. Mivel nyílt szöveggel teszteltük ez ugye nyilvánvaló is volt J
Előfordulhatnak olyan esetek, amikor több azonos érték is előfordul az összeg oszlopban és emiatt nem ad pontos eredményt az algoritmus. Ha leprogramozzuk az algoritmust, célszerű minél hosszabb szövegrészletet elemezni, hogy a tévesztések lehetőségét kiiktassuk.
Mivel a trilaterális elemzés végén, gyakorlási szándékkal feladott házi feladat megoldásával mindenki tojt a fejemre, ezért ettől most eltekintünk.