/// <summary> /// Поиск наименования объекта действия (актора) /// </summary> /// <param name="clausesTree"></param> /// <param name="sent"></param> /// <returns></returns> public void searchActor() { LongOperationAttribut actor = new LongOperationAttribut(); for (int i = 0; i < clausesTree.rels.Count; i++) { try { //(new Rules.Actor.PODL).check(clausesTree, i, sent, stats, actor); } catch (Exception ex) { log += ex.Message + "\r\n"; } /* * if (clausesTree.rels[i].Name == "ПРИЛ-СУЩ")//составной * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr + " V " + * sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "СУЩ-ЧИСЛ")//уточнить, точно ли числительное попадает в оператор * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, * sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * //по Им падежу * if (clausesTree.rels[i].Name == "ГЕНИТ_ИГ")//составной * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr + " V " + * sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "ОДНОР_ИГ") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "ПРИЧ_СУЩ") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "Р_С_ОДНОР_СУЩ") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "Р_С_ОДНОР_МС") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * if (clausesTree.rels[i].Name == "ПРИЛ_ПОСТПОЗ") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * } * //по Им падежу * if (clausesTree.rels[i].Name == "СУЩ_ОБС_ПРИЛ") * { * actor.addEAttr(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * }*/ } ep.actor = actor; }
/// <summary> /// Поиск наименования действия /// </summary> /// <param name="clausesTree"></param> /// <param name="sent"></param> /// <returns></returns> public void searchAction() { LongOperationAttribut action = new LongOperationAttribut(); for (int i = 0; i < clausesTree.rels.Count; i++) { try { // (new Rules.Action.PODL).check(clausesTree, i, sent, stats, action); //(new Rules.Action.PRIAM_DOP).check(clausesTree, i, sent, stats, action); } catch (Exception ex) { log += ex.Message + "\r\n"; } /* * if (clausesTree.rels[i].Name == "НАРЕЧ_ГЛАГОЛ") * { * action.addElementaryAttribut(sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr, ""); * markedWords.Add(clausesTree.rels[i].SourceItemNo, "Action"); * } * if (clausesTree.rels[i].Name == "ПЕР_ГЛАГ_ИНФ")//составной * { * ElementaryAttribut a1 = * new ElementaryAttribut("",sent.get_Word(clausesTree.rels[i].SourceItemNo).WordStr); * ElementaryAttribut a2 = * new ElementaryAttribut("",sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * action.addBreaksOfAttributs(a1, a2, "+"); * markedWords.Add(clausesTree.rels[i].SourceItemNo, "Action"); * markedWords.Add(clausesTree.rels[i].TargetItemNo, "Action"); * } * if (clausesTree.rels[i].Name == "ОДНОР_ИНФ")//составной * { * action.addEAttr(sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr, "AND"); * }*/ } ep.action = action; }
/// <summary> /// Поиск объекта, над которым выполняется действие /// </summary> /// <param name="clausesTree"></param> /// <param name="sent"></param> /// <returns></returns> public void searchObjectForAction() { LongOperationAttribut OFA = new LongOperationAttribut(); for (int i = 0; i < clausesTree.rels.Count; i++) { try { //Rules.OFA.PRIAM_DOP.check(clausesTree, i, sent, stats, OFA); } catch (Exception ex) { log += ex.Message + "\r\n"; } /* * if (clausesTree.rels[i].Name == "НАРЕЧ_ГЛАГОЛ") * { * OFA.addEAttr(sent.get_Word(clausesTree.rels[i].TargetItemNo).WordStr); * }*/ } ep.objectForAction = OFA; }