Skip to content

Instantly share code, notes, and snippets.

@Koziev
Created December 8, 2017 12:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Koziev/50a1950c9e2bb0ac7ddb6b3d62bcf4b4 to your computer and use it in GitHub Desktop.
Save Koziev/50a1950c9e2bb0ac7ddb6b3d62bcf4b4 to your computer and use it in GitHub Desktop.
согласование глагола и подлежащего что/кто
... код поскипан ...
static string RebuildVerb2(SolarixGrammarEngineNET.GrammarEngine2 gren, SolarixGrammarEngineNET.SyntaxTreeNode v_node, string qword)
{
if( string.IsNullOrEmpty(qword))
{
return null;
}
List<int> coords = new List<int>();
List<int> states = new List<int>();
coords.Add(SolarixGrammarEngineNET.GrammarEngineAPI.NUMBER_ru);
states.Add(SolarixGrammarEngineNET.GrammarEngineAPI.SINGULAR_NUMBER_ru);
if (v_node.GetCoordState(SolarixGrammarEngineNET.GrammarEngineAPI.TENSE_ru) == SolarixGrammarEngineNET.GrammarEngineAPI.PAST_ru)
{
// Для глагола в прошедшем времени надо указать род подлежащего - средний или мужской
coords.Add(SolarixGrammarEngineNET.GrammarEngineAPI.GENDER_ru);
if (qword.StartsWith("ч"))
{
states.Add(SolarixGrammarEngineNET.GrammarEngineAPI.NEUTRAL_GENDER_ru);
}
else
{
states.Add(SolarixGrammarEngineNET.GrammarEngineAPI.MASCULINE_GENDER_ru);
}
}
foreach (var p in v_node.GetPairs())
{
if (p.CoordID == SolarixGrammarEngineNET.GrammarEngineAPI.TENSE_ru ||
p.CoordID == SolarixGrammarEngineNET.GrammarEngineAPI.VERB_FORM_ru ||
p.CoordID == SolarixGrammarEngineNET.GrammarEngineAPI.PERSON_ru)
{
coords.Add(p.CoordID);
states.Add(p.StateID);
}
}
string v2 = "";
List<string> fx = SolarixGrammarEngineNET.GrammarEngine.sol_GenerateWordformsFX(gren.GetEngineHandle(), v_node.GetEntryID(), coords, states);
if (fx!=null && fx.Count > 0)
{
v2 = fx[0].ToLower();
}
else
{
v2 = null;
}
return v2;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment