public NotenizerAdvancedTextBox(NotenizerNote note) { this._note = note; Init(); this._advancedTextBox.TextBox.Text = note.Text; }
public FormEditNote(NotenizerNote note) { this._note = note; this._andParserEnabled = false; InitializeComponent(); Init(); InitUniversalControls(); InitControlsForNoteEdit(); DisableTabPage(this.tabPage2); }
public FormEditNote(NotenizerNote note, NotenizerNote andParserNote, List<NotePart> noteParts, int andSetsPosition) { this._note = note; this._andParserNote = andParserNote; this._parsedAndSets = noteParts; this._andSetsPosition = andSetsPosition; this._andParserEnabled = true; InitializeComponent(); Init(); InitUniversalControls(); InitControlsForNoteEdit(); InitControlsForAndParser(); }
/// <summary> /// Parses sentence. /// </summary> /// <param name="sentence"></param> /// <returns></returns> public override NotenizerNote Parse(NotenizerSentence sentence) { NotenizerNote note = new NotenizerNote(sentence); foreach (NotenizerDependency dependencyLoop in sentence.Structure.Dependencies) { if (dependencyLoop.Relation.IsNominalSubject() && !((note.Structure.CompressedDependencies.ContainsKey(GrammaticalConstants.NominalSubject) && note.Structure.CompressedDependencies[GrammaticalConstants.NominalSubject].Any(x => x.Key == dependencyLoop.Key)) || (note.Structure.CompressedDependencies.ContainsKey(GrammaticalConstants.NominalSubjectPassive) && note.Structure.CompressedDependencies[GrammaticalConstants.NominalSubjectPassive].Any(x => x.Key == dependencyLoop.Key)))) { NotePart notePart = new NotePart(sentence); NoteParticle nsubj = new NoteParticle(dependencyLoop, TokenType.Dependent); notePart.Add(nsubj); String pos = dependencyLoop.Governor.POS.Tag; if (POSConstants.NounLikePOS.Contains(pos)) { NotenizerDependency compound = sentence.Structure.GetDependencyByShortName( dependencyLoop, ComparisonType.DependentToGovernor, GrammaticalConstants.CompoudModifier); if (compound != null) { NoteParticle compoundObj = new NoteParticle(compound, TokenType.Dependent); notePart.Add(compoundObj); } NotenizerDependency aux = sentence.Structure.GetDependencyByShortName( dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.AuxModifier, GrammaticalConstants.AuxModifierPassive); if (aux != null) { NoteParticle auxObj = new NoteParticle(aux, TokenType.Dependent); notePart.Add(auxObj); } NotenizerDependency cop = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.Copula); if (cop != null) { NoteParticle copObj = new NoteParticle(cop, TokenType.Dependent); notePart.Add(copObj); } List<NotenizerDependency> conjuctions = sentence.Structure.GetDependenciesByShortName( dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.Conjuction); String specific = String.Empty; if (conjuctions != null && conjuctions.Count > 0) { List<NotenizerDependency> filteredConjs = FilterByPOS(conjuctions, POSConstants.ConjustionPOS); foreach (NotenizerDependency filteredConjLoop in filteredConjs) { NotenizerDependency cc = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.CoordinatingConjuction); if (cc.Dependent.Word == filteredConjLoop.Relation.Specific && sentence.Structure.DependencyIndex(filteredConjLoop) > sentence.Structure.DependencyIndex(cc)) { NoteParticle ccObj = new NoteParticle(cc, TokenType.Dependent); NoteParticle filteredConjObj = new NoteParticle(filteredConjLoop, TokenType.Dependent); notePart.Add(ccObj); notePart.Add(filteredConjObj); } } } // <== NMODS ==> List<NotenizerDependency> nmodsList = sentence.Structure.GetDependenciesByShortName( dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.NominalModifier); if (nmodsList != null && nmodsList.Count > 0) { NotenizerDependency first = nmodsList.First(); NotenizerDependency neg = sentence.Structure.GetDependencyByShortName( first, ComparisonType.DependentToGovernor, GrammaticalConstants.NegationModifier); if (neg == null) { NoteParticle firstObj = new NoteParticle(first.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + first.Dependent.Word, first, TokenType.Dependent); notePart.Add(firstObj); } else { NoteParticle negObj = new NoteParticle(neg, TokenType.Dependent); NoteParticle firstObj = new NoteParticle(first.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + first.Dependent.Word, first, TokenType.Dependent); notePart.Add(negObj); notePart.Add(firstObj); } // second nmod depending on first one NotenizerDependency nmodSecond = sentence.Structure.GetDependencyByShortName( first, ComparisonType.DependentToGovernor, GrammaticalConstants.NominalModifier); if (nmodSecond != null) { neg = sentence.Structure.GetDependencyByShortName( first, ComparisonType.GovernorToGovernor, GrammaticalConstants.NegationModifier); if (neg == null) { NoteParticle secondObj = new NoteParticle(nmodSecond.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + nmodSecond.Dependent.Word, nmodSecond, TokenType.Dependent); notePart.Add(secondObj); } else { NoteParticle negObj = new NoteParticle(neg, TokenType.Dependent); NoteParticle secondObj = new NoteParticle(nmodSecond.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + nmodSecond.Dependent.Word, nmodSecond, TokenType.Dependent); notePart.Add(negObj); notePart.Add(secondObj); } } } else { // <== AMODS ==> NotenizerDependency amod1 = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.DependentToGovernor, GrammaticalConstants.AdjectivalModifier); // <== AMODS ==> NotenizerDependency amod2 = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.AdjectivalModifier); if (amod1 != null || amod2 != null) { if (amod1 != null) { NoteParticle amod1Obj = new NoteParticle(amod1, TokenType.Dependent); notePart.Add(amod1Obj); } if (amod2 != null) { NoteParticle amod2Obj = new NoteParticle(amod2, TokenType.Dependent); notePart.Add(amod2Obj); } } else { // <== NUMMODS ==> NotenizerDependency nummod1 = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.DependentToGovernor, GrammaticalConstants.NumericModifier); // <== NUMMODS ==> NotenizerDependency nummod2 = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.NumericModifier); if (nummod1 != null) { NoteParticle nummod1Obj = new NoteParticle(nummod1, TokenType.Dependent); notePart.Add(nummod1Obj); } if (nummod2 != null) { NoteParticle nummod2Obj = new NoteParticle(nummod2, TokenType.Dependent); notePart.Add(nummod2Obj); } } } NoteParticle governorObj = new NoteParticle(dependencyLoop, TokenType.Governor); notePart.Add(governorObj); } else if (POSConstants.VerbLikePOS.Contains(pos)) { NoteParticle gov = new NoteParticle(dependencyLoop, TokenType.Governor); notePart.Add(gov); NotenizerDependency dobj = sentence.Structure.GetDependencyByShortName(dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.DirectObject); if (dobj != null) { NoteParticle dobjObj = new NoteParticle(dobj, TokenType.Dependent); notePart.Add(dobjObj); NotenizerDependency neg = sentence.Structure.GetDependencyByShortName(dobj, ComparisonType.DependentToGovernor, GrammaticalConstants.NegationModifier); if (neg != null) { NoteParticle negObj = new NoteParticle(neg, TokenType.Dependent); notePart.Add(negObj); } } NotenizerDependency aux = sentence.Structure.GetDependencyByShortName( dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.AuxModifier, GrammaticalConstants.AuxModifierPassive); if (aux != null) { NoteParticle auxObj = new NoteParticle(aux, TokenType.Dependent); notePart.Add(auxObj); } // <== NMODS ==> List<NotenizerDependency> nmodsList = sentence.Structure.GetDependenciesByShortName( dependencyLoop, ComparisonType.GovernorToGovernor, GrammaticalConstants.NominalModifier); if (nmodsList != null && nmodsList.Count > 0) { NotenizerDependency first = nmodsList.First(); NotenizerDependency neg = sentence.Structure.GetDependencyByShortName(first, ComparisonType.DependentToGovernor, GrammaticalConstants.NegationModifier); if (neg == null) { NoteParticle firstObj = new NoteParticle(first.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + first.Dependent.Word, first, TokenType.Dependent); notePart.Add(firstObj); } else { NoteParticle negObj = new NoteParticle(neg, TokenType.Dependent); NoteParticle firstObj = new NoteParticle(first.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + first.Dependent.Word, first, TokenType.Dependent); notePart.Add(firstObj); notePart.Add(negObj); } // second nmod depending on first one NotenizerDependency nmodSecond = sentence.Structure.GetDependencyByShortName(first, ComparisonType.DependentToGovernor, GrammaticalConstants.NominalModifier); if (nmodSecond != null) { neg = sentence.Structure.GetDependencyByShortName(first, ComparisonType.GovernorToGovernor, GrammaticalConstants.NegationModifier); if (neg == null) { NoteParticle secondObj = new NoteParticle(nmodSecond.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + nmodSecond.Dependent.Word, nmodSecond, TokenType.Dependent); notePart.Add(secondObj); } else { NoteParticle negObj = new NoteParticle(neg, TokenType.Dependent); NoteParticle secondObj = new NoteParticle(nmodSecond.Relation.AdjustedSpecific + NotenizerConstants.WordDelimeter + nmodSecond.Dependent.Word, nmodSecond, TokenType.Dependent); notePart.Add(secondObj); notePart.Add(negObj); } } } } note.Add(notePart); } } return note; }
/// <summary> /// Applies rule. /// </summary> /// <param name="note"></param> /// <param name="andParserRule"></param> private void ApplyRule(NotenizerNote note, NotenizerAndRule andParserRule) { note.SplitToSentences(andParserRule.SentenceTerminator); note.AndRule = andParserRule; }
/// <summary> /// Aplies rule. /// </summary> /// <param name="note"></param> /// <param name="noteRule"></param> private void ApplyRule(NotenizerNote note, NotenizerNoteRule noteRule) { note.SplitToSentences(noteRule.SentencesTerminators); note.Rule = noteRule; }
/// <summary> /// Applies rule. /// Parses sentence by applied rule. /// </summary> /// <param name="sentence">Sentence to apply rule to</param> /// <param name="rule">Rule for parsing to apply</param> /// <returns></returns> public NotenizerNote ApplyRule(NotenizerSentence sentence, NotenizerRule rule) { NotenizerNote note = new NotenizerNote(sentence); NotePart notePart = new NotePart(sentence); foreach (NotenizerDependency ruleLoop in rule.Structure.Dependencies) { ApplyRule(sentence, ruleLoop, notePart); } note.Add(notePart); if (rule is NotenizerNoteRule) ApplyRule(note, rule as NotenizerNoteRule); else if (rule is NotenizerAndRule) ApplyRule(note, rule as NotenizerAndRule); //note.Note = rule.Note; note.Structure = rule.Structure; return note; }