private void FillStems(ParseTree parsetree, ParseNode node, ref List <string> stemsArr) { if (node.Children != null) { for (int i = 0; i < node.Children.Count; i++) { ParseNode pn = (ParseNode)node.Children[i]; FillStems(parsetree, pn, ref stemsArr); } } else { string str = node.Goal; if (str == "N" || str.Contains("NPP") || str.Contains("PPJ") || (str == "V") || str.Contains("ADJ") || str.Contains("PADV") || str.Contains("ADV")) { ///ta3deelat 5/7///////// if (node.Senses != null) { Type T = node.Senses[0].GetType(); VerbSense VS = (VerbSense)node.Senses[0]; string[] spltstr = VS.Sense.ToString().Split('#'); stemsArr.Add(spltstr[0]); } } } }
private void FillSenses(ParseTree parsetree, ParseNode node, ref ArrayList wordinfoArr, ref int j) { if (node.Children != null) { for (int i = 0; i < node.Children.Count; i++) { ParseNode pn = (ParseNode)node.Children[i]; FillSenses(parsetree, pn, ref wordinfoArr, ref j); } } else { string str = node.Goal; if (str == "N" || str.Contains("NPP") || str.Contains("PPJ") || (str == "V") || str.Contains("CPADJ") || str.Contains("ADJ") || str.Contains("PADV") || str.Contains("ADV")) { ///ta3deelat 5/7///////// string [] spltstr = DisambRes[j].ToString().Split(':'); VerbSense VS = new VerbSense(); string[] spltstr2 = new string[10]; string[] spltstr3 = new string[10]; if (node.Senses != null && node.Goal.Contains("V")) { VS = (VerbSense)node.Senses[0]; spltstr2 = VS.Sense.ToString().Split('#'); spltstr3 = spltstr[0].Split(' '); if (spltstr3[0] == spltstr2[0]) { if (NodesSenses.Count > 0) { node.Sense = (string)NodesSenses[0]; node.SenseNo = (int)SensesNos[0]; SensesNos.RemoveAt(0); NodesSenses.RemoveAt(0); j++; } } } else { string NodeWord = SyntacticAnalyzer.SentenceParser.GetWordString(parsetree, node); spltstr3 = spltstr[0].Split(' '); if (spltstr3[0] == NodeWord.ToLower()) { if (NodesSenses.Count > 0) { node.Sense = (string)NodesSenses[0]; node.SenseNo = (int)SensesNos[0]; SensesNos.RemoveAt(0); NodesSenses.RemoveAt(0); j++; } } } } } }
private void FillSenses(ParseTree parsetree, ParseNode node, ref ArrayList wordinfoArr, ref int j) { if (node.Children != null) { for (int i = 0; i < node.Children.Count; i++) { ParseNode pn = (ParseNode)node.Children[i]; FillSenses(parsetree, pn, ref wordinfoArr, ref j); } } else { SentenceParser dummysp = new SentenceParser(); string str = node.Goal; if (str == "PPN") { WordSenseDisambiguator wsd = new WordSenseDisambiguator(); double score; double num; if (double.TryParse(node.Text, out num)) { MyWordInfo[] ret = wsd.MMG_Disambiguate(new MyWordInfo[] { new MyWordInfo("Number", PartsOfSpeech.Noun) }, out score); PartOfSpeech pos = PartOfSpeech.of(PartsOfSpeech.Noun); Index index = Wnlib.Index.lookup(ret[0].Word.ToLower(), pos); SynSet sense = new SynSet(index, ret[0].Sense, null); node.Sense = sense.defn; node.SenseNo = ret[0].Sense; } else { MyWordInfo[] ret = wsd.MMG_Disambiguate(new MyWordInfo[] { new MyWordInfo("proper_name", PartsOfSpeech.Noun) }, out score); PartOfSpeech pos = PartOfSpeech.of(PartsOfSpeech.Noun); Index index = Wnlib.Index.lookup(ret[0].Word.ToLower(), pos); SynSet sense = new SynSet(index, ret[0].Sense, null); node.Sense = sense.defn; node.SenseNo = ret[0].Sense; } } else if (str == "N" || str.Contains("NPP") || (str == "VING") || str.Contains("PPJ") || (str == "VPSP") || (str == "BE1") || (str == "BE2") || (str == "V") || str.Contains("CPADJ") || str.Contains("ADJ") || str.Contains("PADV") || str.Contains("ADV") || str == "VINF") { ///ta3deelat 5/7///////// string [] spltstr = DisambRes[j].ToString().Split(':'); VerbSense VS = new VerbSense(); string[] spltstr2 = new string[10]; string[] spltstr3 = new string[10]; if (node.Senses != null && node.Goal.Contains("V")) { VS = (VerbSense)node.Senses[0]; spltstr2 = VS.Sense.ToString().Split('#'); spltstr3 = spltstr[0].Split(' '); ArrayList results = dummysp.GetINFOfVerb(spltstr2[0]); if (results.Count > 0) { spltstr2[0] = (string)results[0]; } if (spltstr3[0] == spltstr2[0]) { if (NodesSenses.Count > 0) { node.Sense = (string)NodesSenses[0]; node.SenseNo = (int)SensesNos[0]; SensesNos.RemoveAt(0); NodesSenses.RemoveAt(0); j++; } } } if (str == "N") { node.Sense = (string)NodesSenses[0]; node.SenseNo = (int)SensesNos[0]; SensesNos.RemoveAt(0); NodesSenses.RemoveAt(0); j++; } else { string NodeWord = SyntacticAnalyzer.SentenceParser.GetWordString(parsetree, node); spltstr3 = spltstr[0].Split(' '); string nodeWord = NodeWord.ToLower(); if (node.Goal == "V" || node.Goal == "BE1" || node.Goal == "VINF" || node.Goal == "VPSP" || node.Goal == "VING") { ArrayList results = dummysp.GetINFOfVerb(nodeWord); if (results.Count > 0) { nodeWord = (string)results[0]; } } string dummy = spltstr3[0]; dummy = dummy.Remove(dummy.Length - 1); dummy = dummy + "ies"; string dummy2 = nodeWord + "ing"; string dummy3 = dummy2 + "s"; string dummy4 = nodeWord.Remove(nodeWord.Length - 1); dummy4 = dummy4 + "ing"; if (spltstr3[0] == nodeWord || spltstr3[0] + 's' == nodeWord || spltstr3[0] + "es" == nodeWord || dummy == nodeWord || spltstr3[0] == dummy2 || spltstr3[0] == dummy3 || spltstr3[0] == dummy4 || spltstr3[0] == dummy4 + 's') { if (NodesSenses.Count > 0) { node.Sense = (string)NodesSenses[0]; node.SenseNo = (int)SensesNos[0]; SensesNos.RemoveAt(0); NodesSenses.RemoveAt(0); j++; } } } } } }