package hu.u_szeged.nlp.pos.guesser; /** * Developed by: * Research Group on Artificial Intelligence of the Hungarian Academy of Sciences * http://www.inf.u-szeged.hu/rgai/ * * Contact: * János Zsibrita * zsibrita@inf.u-szeged.hu * * Licensed by Creative Commons Attribution Share Alike * * http://creativecommons.org/licenses/by-sa/3.0/legalcode */ import hu.u_szeged.nlp.pos.MagyarlancResourceHolder; import hu.u_szeged.nlp.pos.MorAna; import java.util.Set; import java.util.TreeSet; /** * A HyphenicGuesser osztály kötőjelet tartalmazó tokenek elemzésére szolgál. Feltételezzük, hogy főnevekhez * kapcsolt toldalékok kerülnek elemzésre. A kötőjeles szavak két fajtáját kü-lönböztetjük meg. A guesselés első * fázisában a kötőjel utáni részt egy toldaláknak (pl.: -nak) tekintve, a MorPhonGuesser segítségével elemezzzük. * Például a Bush-hoz szóalak esetén, csak hoz-t használjuk, és illesztjük a talány szótári elem-hez, és kapjuk a * Bush@Nc-st elemzést. A második fázisban, a kötőjel utáni részt egy önálló, teljes szóalaknak tekintjük, és * önmagá-ban elemezzük. Például Bush-kormányhoz szólak esetében csak a kormányhoz kerül elemzésre, és így kapjuk a * Bush-kormány@Nc-sd és Bush-kormány@Nc-sg elemzéseket. * * @author zsjanos */ public class HyphenicGuesser { public static Set<MorAna> guess(String root, String suffix) { Set<MorAna> morAnas = null; morAnas = new TreeSet<MorAna>(); // kötőleles suffix (pl.: Bush-hoz) morAnas.addAll(MorPhonGuesser.guess(root, suffix)); // suffix főnév (pl.: Bush-kormánnyal) for (String kr : MagyarlancResourceHolder.getRFSA().analyse(suffix)) { for (MorAna morAna : MagyarlancResourceHolder.getKRToMSD().getMSD(kr)) { // csak fonevi elemzesek if (morAna.getMsd().startsWith("N")) { morAnas.add(new MorAna(root + "-" + morAna.getLemma(), morAna.getMsd())); } } } return morAnas; } public static void main(String[] args) { System.out.println(HyphenicGuesser.guess("Bush", "hoz")); System.out.println(HyphenicGuesser.guess("Bush", "kormánynak")); } }