public string GetNormValues() { List <Pullenti.Ner.ReferentToken> li = this.CreateRefenetsTokensWithRegister(null, false); if (li == null || (li.Count < 1)) { return(null); } Pullenti.Ner.Measure.MeasureReferent mr = li[li.Count - 1].Referent as Pullenti.Ner.Measure.MeasureReferent; if (mr == null) { return(null); } return(mr.ToString(true, null, 0)); }
public static Pullenti.Semantic.SemObject CreateNumber(Pullenti.Semantic.SemGraph gr, Pullenti.Ner.Measure.Internal.NumbersWithUnitToken num) { List <Pullenti.Ner.ReferentToken> rs = num.CreateRefenetsTokensWithRegister(null, null, false); if (rs == null || rs.Count == 0) { return(null); } Pullenti.Ner.Measure.MeasureReferent mr = rs[rs.Count - 1].Referent as Pullenti.Ner.Measure.MeasureReferent; Pullenti.Semantic.SemObject sem = new Pullenti.Semantic.SemObject(gr); gr.Objects.Add(sem); sem.Tokens.Add(num); sem.Morph.NormalFull = (sem.Morph.NormalCase = mr.ToString(true, null, 0)); sem.Typ = Pullenti.Semantic.SemObjectType.Noun; sem.Measure = mr.Kind; for (int i = 0; i < sem.Morph.NormalCase.Length; i++) { char ch = sem.Morph.NormalCase[i]; if (char.IsDigit(ch) || char.IsWhiteSpace(ch) || "[].+-".IndexOf(ch) >= 0) { continue; } sem.Quantity = new Pullenti.Semantic.SemQuantity(sem.Morph.NormalCase.Substring(0, i).Trim(), num.BeginToken, num.EndToken); sem.Morph.NormalCase = sem.Morph.NormalCase.Substring(i).Trim(); if (num.Units.Count == 1 && num.Units[0].Unit != null) { sem.Morph.NormalFull = num.Units[0].Unit.FullnameCyr; if (sem.Morph.NormalFull == "%") { sem.Morph.NormalFull = "процент"; } } break; } sem.Concept = mr; return(sem); }