private bool TestPhrasalVerb(IDictionary <string, Word> result, Word w) { foreach (var v in _verbs.FindConjugatedVerb(w.Text)) { foreach (var pv in _phrasalVerbs.FindPhrasalVerb(_tokenizer, v.Infinitive)) { var newWord = new Word(); newWord.Text = pv.Presentation; newWord.AddPhrase(w.Phrases.First()); AddToList(result, newWord); return(true); } } return(false); }
public IEnumerable <Word> Interprete() { var result = new Dictionary <string, Word>(); var currentPhrase = new Phrase(); var t = _tokenizer.CurrentToken(); var wasSpace = false; while (t != null) { if ((t.IsSpace()) && (!wasSpace)) { currentPhrase.Text += " "; } if (!t.IsSpace()) { currentPhrase.Text += t.Text; } wasSpace = t.IsSpace(); if (t.IsWord() && !t.Ignore) { var w = new Word(); w.Text = t.Text; w.AddPhrase(currentPhrase); if (!TestPhrasalVerb(result, w)) { AddToList(result, w); } } if ((t.Text.Length == 1) && (PhraseEndings.Contains(t.Text))) { currentPhrase = new Phrase(); } t = _tokenizer.NextToken(); } return(result.Values); }