public void readRulesFromXML() { XmlDocument doc = new XmlDocument(); try{ doc.Load(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SavoyStemmerRules.xml")); }catch (Exception e) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file.", e); } XmlElement root = doc.DocumentElement; XmlAttribute val, val2, val3; foreach (XmlNode step in root.ChildNodes) { val = step.Attributes["name"]; if (val == null) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Invalid step."); } String stepName = val.Value; SuffixTree <SavoyRule> suffixes = new SuffixTree <SavoyRule>(); setProperty(suffixes, "size", 0, step); foreach (XmlNode rule in step.ChildNodes) { val = rule.Attributes["suffix"]; val2 = rule.Attributes["replacement"]; val3 = rule.Attributes["size"]; if (val == null || val2 == null || val3 == null) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Invalid rule in " + stepName + "."); } String suffix = val.Value; String replacement = val2.Value; int size = 0; try{ size = Convert.ToInt32(val3.Value); }catch (Exception e) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Missing or invalid rules properties on step " + stepName + ".", e); } SavoyRule r = new SavoyRule(size, replacement); suffixes.addSuffix(suffix, r); } if (stepName.Equals("pluralreduction")) { pluralreductionrules = suffixes; } else if (stepName.Equals("femininereduction")) { femininereductionrules = suffixes; } else if (stepName.Equals("finalvowel")) { finalvowel = suffixes; } } if (pluralreductionrules == null || femininereductionrules == null || finalvowel == null) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Missing steps."); } }
public void readRulesFromXML() { XmlDocument doc = new XmlDocument(); try{ doc.Load(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SavoyStemmerRules.xml")); }catch(Exception e) { throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file.",e);} XmlElement root = doc.DocumentElement; XmlAttribute val,val2,val3; foreach (XmlNode step in root.ChildNodes) { val = step.Attributes["name"]; if(val == null) throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Invalid step."); String stepName = val.Value; SuffixTree<SavoyRule> suffixes = new SuffixTree<SavoyRule>(); setProperty(suffixes,"size",0,step); foreach (XmlNode rule in step.ChildNodes) { val = rule.Attributes["suffix"]; val2 = rule.Attributes["replacement"]; val3 = rule.Attributes["size"]; if(val == null || val2 == null || val3 == null) throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Invalid rule in "+stepName+"."); String suffix = val.Value; String replacement = val2.Value; int size = 0; try{ size = Convert.ToInt32(val3.Value); }catch(Exception e) {throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Missing or invalid rules properties on step "+stepName+".", e);} SavoyRule r = new SavoyRule(size,replacement); suffixes.addSuffix(suffix,r); } if(stepName.Equals("pluralreduction")) pluralreductionrules = suffixes; else if(stepName.Equals("femininereduction")) femininereductionrules = suffixes; else if(stepName.Equals("finalvowel")) finalvowel = suffixes; } if(pluralreductionrules == null || femininereductionrules == null || finalvowel == null) throw new PTStemmerException("Problem while parsing Savoy's XML stemming rules file: Missing steps."); }
public void readRulesFromXML() { XmlDocument doc = new XmlDocument(); try{ doc.Load(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("OrengoStemmerRules.xml")); }catch (Exception e) { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file.", e); } XmlElement root = doc.DocumentElement; XmlAttribute val, val2, val3; foreach (XmlNode step in root.ChildNodes) { val = step.Attributes["name"]; if (val == null) { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file: Invalid step."); } String stepName = val.Value; SuffixTree <Rule> suffixes = new SuffixTree <Rule>(); setProperty(suffixes, "size", 0, step); setProperty(suffixes, "exceptions", 0, step); foreach (XmlNode rule in step.ChildNodes) { val = rule.Attributes["suffix"]; val2 = rule.Attributes["replacement"]; val3 = rule.Attributes["size"]; if (val == null || val2 == null || val3 == null) { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file: Invalid rule in " + stepName + "."); } String suffix = val.Value; String replacement = val2.Value; int size = 0; try{ size = Convert.ToInt32(val3.Value); }catch (Exception e) { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file: Missing or invalid rules properties on step " + stepName + ".", e); } List <String> exceptions = new List <String>(); foreach (XmlNode exception in rule.ChildNodes) { if (exception.LocalName.Equals("exception") && exception.HasChildNodes) { exceptions.Add(exception.FirstChild.Value); } else { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file: Invalid exception in step " + stepName + ", rule " + suffix + "."); } } Rule r = new Rule(size, replacement, exceptions.ToArray()); suffixes.addSuffix(suffix, r); } if (stepName.Equals("pluralreduction")) { pluralreductionrules = suffixes; } else if (stepName.Equals("femininereduction")) { femininereductionrules = suffixes; } else if (stepName.Equals("adverbreduction")) { adverbreductionrules = suffixes; } else if (stepName.Equals("augmentativediminutivereduction")) { augmentativediminutivereductionrules = suffixes; } else if (stepName.Equals("nounreduction")) { nounreductionrules = suffixes; } else if (stepName.Equals("verbreduction")) { verbreductionrules = suffixes; } else if (stepName.Equals("vowelremoval")) { vowelremovalrules = suffixes; } } if (pluralreductionrules == null || femininereductionrules == null || adverbreductionrules == null || augmentativediminutivereductionrules == null || nounreductionrules == null || verbreductionrules == null || vowelremovalrules == null) { throw new PTStemmerException("Problem while parsing Orengo's XML stemming rules file: Missing steps."); } }