private string ProcessStructureRow(Sentence sentence) { StringBuilder sb = new StringBuilder(); sb.Append("<tr>"); SubjectProcessor sp = new SubjectProcessor(); foreach (Subject subject in sp.SplitIntoSubjects(sentence.Text)) { sb.Append("<td colspan='"); sb.Append(subject.Words.Length); sb.Append("'>"); sb.Append("Subject<br/>("); sb.Append(subject.Text); sb.Append(")"); sb.Append("</td>"); } VerbPhraseProcessor vpp = new VerbPhraseProcessor(); foreach (VerbPhrase verbPhrase in vpp.SplitIntoVerbPhrases(sentence.Text)) { sb.Append("<td colspan='"); sb.Append(verbPhrase.Words.Length); sb.Append("'>"); sb.Append("VP<br/>("); sb.Append(verbPhrase.Text); sb.Append(")"); sb.Append("</td>"); } sb.Append("</tr>"); return(sb.ToString()); }
public void SplitVerbPhrasesIndentifyTransitives() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"soweli en waso li pilin pona li moku e moku."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual(VerbPhraseType.Transitive, subjects[1].Type); }
public void SplitVerbPhrasesCountSingleThenPhrase() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"soweli pi lawa sewi li soweli li lon ma Apika."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual(2, subjects.Count); }
public void SplitVerbPhrasesCount4() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"mije pi lawa sewi suli li moku e telo pimeja li kama anpa e mije ante li kama unpa e meli mute li kama pana e soweli lili mute."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual(4, subjects.Count); }
public void SplitVerbPhrasesCount2() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"soweli en waso li pilin pona li moku e moku."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual(2, subjects.Count); }
public void SplitVerbPhrasesIndentifyTwoParts() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"soweli en waso li pilin pona li moku e moku."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual("pilin pona", subjects[0].Text); Assert.AreEqual("moku e moku", subjects[1].Text); }
public void SplitVerbPhrasesIdentitySingleThenPhrase() { VerbPhraseProcessor sp = new VerbPhraseProcessor(); string test = @"soweli pi lawa sewi li soweli li lon ma Apika."; Collection <VerbPhrase> subjects = sp.SplitIntoVerbPhrases(test); Assert.AreEqual("soweli", subjects[0].Text); Assert.AreEqual("lon ma Apika", subjects[1].Text); }
private string GlossASentence(Sentence sentence) { StringBuilder sb = new StringBuilder(sentence.Text.Length); sb.Append("<table border='1'><tr>"); sb.Append("<td colspan='"); sb.Append(sentence.Words.Length); sb.Append("'>"); sb.Append(sentence.Type.ToString()); sb.Append("</td>"); //Splits into SP/SP/SP/VP/VP/VP (large VP's with e's and PP's) sb.Append(ProcessStructureRow(sentence)); sb.Append("<tr>"); VerbPhraseProcessor vpp = new VerbPhraseProcessor(); SubjectProcessor sp = new SubjectProcessor(); NounPhraseProcessor npp = new NounPhraseProcessor(); Lexicon tp = new Lexicon(); int wordsGlossed = 0; foreach (Subject subject in sp.SplitIntoSubjects(sentence.Text)) { foreach (NounPhrase np in npp.SplitIntoNounPhrases(subject.Text)) { sb.Append("<td>"); Noun n = new Noun(tp, np.HeadNoun()); sb.Append(n.Translate()); sb.Append("</td>"); foreach (string modifier in np.Modifiers()) { sb.Append("<td>"); Modifier m = new Modifier(tp, modifier); sb.Append(m.Translate()); sb.Append("</td>"); } if (np.Type == NpType.Pi) { sb.Append("<td>PI</td>"); } wordsGlossed += np.Words.Length; } if (subject.Type != SubjectType.None) { sb.Append("<td>"); sb.Append(subject.Type); sb.Append("</td>"); wordsGlossed += 1; } } ModalProcessor mp = new ModalProcessor(tp); PrepositionalPhraseProcessor ppp = new PrepositionalPhraseProcessor(); DirectObjectProcessor dop = new DirectObjectProcessor(); foreach (VerbPhrase verbPhrase in vpp.SplitIntoVerbPhrases(sentence.Text)) { foreach (Modal modal in mp.SplitIntoModals(verbPhrase.Text)) { sb.Append("<td>"); sb.Append(modal.Translate()); sb.Append("</td>"); wordsGlossed += 1; } //The core verb //The verbal compounds or adverbs. sb.Append("<td>"); sb.Append("V/Adv");//place holder sb.Append("</td>"); wordsGlossed += 1; foreach (DirectObject directObject in dop.SplitIntoDirectObjects(verbPhrase.Text)) { sb.Append("<td colspan='"); sb.Append(directObject.Words.Length); sb.Append("'>"); sb.Append(directObject.Text + " DO");//place holder sb.Append("</td>"); wordsGlossed += directObject.Words.Length + 1; } foreach (PrepositionalPhrase prep in ppp.SplitIntoPrepPhrases(verbPhrase.Text)) { sb.Append("<td colspan='"); sb.Append(prep.Words.Length); sb.Append("'>"); sb.Append(prep.Text + " PP");//place holder sb.Append("</td>"); wordsGlossed += prep.Words.Length; } } //Gap if (sentence.Words.Length - wordsGlossed > 0) { sb.Append("<td colspan='"); sb.Append(sentence.Words.Length - wordsGlossed); sb.Append("'>"); sb.Append(sentence.Words.Length - wordsGlossed); sb.Append("</td>"); } sb.Append("</tr>"); sb.Append("</table>"); return(sb.ToString()); }