本文整理汇总了C#中Sentence.AbsorbPrevious方法的典型用法代码示例。如果您正苦于以下问题:C# Sentence.AbsorbPrevious方法的具体用法?C# Sentence.AbsorbPrevious怎么用?C# Sentence.AbsorbPrevious使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sentence
的用法示例。
在下文中一共展示了Sentence.AbsorbPrevious方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Transform
public override bool Transform(Sentence sentence)
{
KeyValuePair<string, string> nks = NeighborKinds(sentence);
if (nks.Value == "ADJP") {
sentence.MergeNext(this);
return true;
}
if (nks.Key == "ADVP") {
sentence.AbsorbPrevious(this);
return true;
}
return false;
}
示例2: Transform
public override bool Transform(Sentence sentence)
{
if (!sentence.phrases.Contains(this))
return false;
bool success = false;
bool lastFound = true;
while (lastFound) {
KeyValuePair<string, string> nks = NeighborKinds(sentence);
if (nks.Value == "." && constituents[constituents.Count - 1].Text.Length == 1)
sentence.MergeNext(this); // eat the period
else if (nks.Key == "" && nks.Value == "NP")
sentence.MergeNext(this);
else if (nks.Key == "NP" && nks.Value == "NP")
sentence.MergeNext(this);
else if (nks.Key == "NP" && (nks.Value == "" || nks.Value == "." || nks.Value == "!"))
sentence.MergePrevious(this);
else
lastFound = false;
if (lastFound == true)
success = true;
}
if (NeighborKinds(sentence).Key == "DT" || NeighborKinds(sentence).Key == "PRP$") {
sentence.AbsorbPrevious(this);
success = true;
}
if (NeighborKinds(sentence).Key == "ADJP") {
List<Phrase> phrases = new List<Phrase>();
phrases.Add(sentence.PhraseBefore(this));
phrases.Add(this);
sentence.Combine(phrases, new NounPhrase());
success = true;
}
if (NeighborKinds(sentence).Value == "PP")
{
Phrase after = sentence.PhraseAfter(this);
if (after.Constituents.Count > 1 && after.Constituents[0].Text.ToLower() == "of")
{
sentence.AbsorbNext(this);
return true;
}
}
return success;
}
示例3: Transform
public override bool Transform(Sentence sentence)
{
if (!sentence.phrases.Contains(this))
return false;
bool success = false;
KeyValuePair<string, string> nks = NeighborKinds(sentence);
Phrase verbphr = FindConsituent<Verb>();
string verb = (verbphr == null ? "" : verbphr.Text);
if (nks.Key == "ADVP") {
sentence.AbsorbPrevious(this);
success = true;
}
else if (nks.Value == "VBN")
{ // is considered
sentence.AbsorbNext(this);
success = true;
}
else if (nks.Value == "ADVP")
{
sentence.AbsorbNext(this);
success = true;
}
else if (nks.Value == "NP")
{
sentence.AbsorbNext(this);
success = true;
}
else if (nks.Value == "ADJP" && Verbs.IsToBe(verb))
{
sentence.AbsorbNext(this);
success = true;
}
else if (nks.Value == "PP")
{
sentence.AbsorbNext(this);
success = true;
}
else if (nks.Key == "TO")
{
List<Phrase> us = new List<Phrase>();
us.Add(sentence.PhraseBefore(this));
us.Add(this);
sentence.Combine(us, new PrepositionalPhrase());
success = true;
}
else if (nks.Key == "WHNP" || nks.Key == "WRB")
{
string trial = sentence.PhraseBefore(this).ToString() + ";" + ToString() + ";SBARQ";
if (!triedBefore.ContainsKey(trial))
{
List<Phrase> phrases = new List<Phrase>();
phrases.Add(sentence.PhraseBefore(this));
phrases.Add(this);
sentence.Combine(phrases, new SimpleQuestion());
triedBefore.Add(trial, true);
success = true;
}
}
else if (nks.Key == "NP" || nks.Key == "EX")
{
string trial = sentence.PhraseBefore(this).ToString() + ";" + ToString() + ";S";
if (!triedBefore.ContainsKey(trial))
{
List<Phrase> phrases = new List<Phrase>();
phrases.Add(sentence.PhraseBefore(this));
phrases.Add(this);
sentence.Combine(phrases, new SimpleDeclarativePhrase());
triedBefore.Add(trial, true);
success = true;
}
}
return success;
}