package com.cognitionis.nlp_files.parentical_parsers; import java.util.TreeSet; /** * * @author Héctor Llorens * @since 2011 */ public class SRLColParser { private String verb; private String role; private TreeSet<String> roleconf; // csv private int size; private boolean close; public SRLColParser(){ verb="-"; role="*"; size=0; close=false; roleconf=new TreeSet<String>(); } public SRLColParser(String v, String r, int s) { verb = v; role = r; size = s; close = false; roleconf=new TreeSet<String>(); } public String getVerb() { return verb; } public String getRole() { return role; } public String getRoleconf() { String sroleconf=""; for(String tmprole : roleconf){ if(sroleconf.length()>0){ sroleconf+=","; } sroleconf+=tmprole; } if(sroleconf.equals("")){ sroleconf="-"; } return sroleconf; } public void setRole(String r) { role = r; } public int getSize() { if(role.equals("*")){ return 0; } if(close){ return size; }else{ return size+1; // for heuristics } } public void parse(String s) { s = s.trim(); boolean just_open = false; if (close) { close = false; role = "*"; size = 0; } if (s.matches("\\*")) { if (!role.equals("*")) { size++; } } else { if (s.matches("\\(.*")) { role = s.substring(1, s.indexOf('*')); roleconf.add(role); size = 1; just_open = true; } if (s.matches(".*\\)")) { if (!just_open) { size++; } close = true; } } } }