public override bool Equals(object obj) { WordformKEY k = (WordformKEY)obj; return(id_entry == k.id_entry && wordform == k.wordform); }
public bool ProcessSample_Complete(SampleData sample) { int c = 0; if (sample2count.TryGetValue(sample.sample, out c)) { sample2count[sample.sample] = c + 1; } else { sample2count.Add(sample.sample, 1); } // Морфологический разбор if (sample.morphology == null) { sample.morphology = gren.AnalyzeMorphology(sample.sample, LanguageID, SolarixGrammarEngineNET.GrammarEngine.MorphologyFlags.SOL_GREN_COMPLETE_ONLY); } for (int iword = 1; iword < sample.morphology.Count - 1; ++iword) { word_count++; SolarixGrammarEngineNET.SyntaxTreeNode token = sample.morphology[iword]; string word = token.GetWord().ToLower(); WordformKEY k = new WordformKEY(); k.wordform = word; k.id_entry = token.GetEntryID(); int f = 0; if (wordform_stat.TryGetValue(k, out f)) { wordform_stat[k] = f + 1; } else { wordform_stat.Add(k, 1); } int id_entry = token.GetEntryID(); if (wordentry_stat.TryGetValue(id_entry, out f)) { wordentry_stat[id_entry] = f + 1; } else { wordentry_stat.Add(id_entry, 1); } } if (sample.syntax_tree == null) { sample.syntax_tree = gren.AnalyzeSyntax(sample.sample, LanguageID, SolarixGrammarEngineNET.GrammarEngine.MorphologyFlags.SOL_GREN_COMPLETE_ONLY, 0); } for (int i = 1; i < sample.syntax_tree.Count - 1; ++i) { SolarixGrammarEngineNET.SyntaxTreeNode token = sample.syntax_tree[i]; TraverseEdges(token); } return(true); }