/// <summary> /// 将两个term合并为一个全新的term /// </summary> /// <param name="from"></param> /// <param name="to"></param> /// <param name="termNatures"></param> /// <returns></returns> public static Term MakeNewTermNum(Term from, Term to, TermNatures termNatures) { var term = new Term(from.Name + to.Name, from.Offe, termNatures); term.TermNatures.NumAttr = @from.TermNatures.NumAttr; TermLink(term, to.To); TermLink(term.From, term); return term; }
public static void InsertTerm(Term[] terms, List<Term> tempList, TermNatures nr) { var sb = new StringBuilder(); var offe = tempList[0].Offe; foreach (var item in tempList) { sb.Append(item.Name); terms[item.Offe] = null; } var term = new Term(sb.ToString(), offe, TermNatures.Nr); InsertTermNum(terms, term); }
public override void InitValue(string[] split) { Index = int.Parse(split[0]); Base = int.Parse(split[2]); Check = int.Parse(split[3]); Status = byte.Parse(split[4]); if (Status > 1) { Name = split[1]; Natures = new TermNatures(TermNature.setNatureStrToArray(split[5]), Index); } else { Natures = new TermNatures(TermNature.NULL); } }
/// <summary> /// 传入一组。词对词语进行。词性标注 /// </summary> /// <param name="words"></param> /// <param name="offe"></param> /// <returns></returns> public static List<Term> Recognition(List<string> words, int offe) { var terms = new List<Term>(words.Count); var tempOffe = 0; foreach (var word in words) { // 获得词性 , 先从系统辞典。在从用户自定义辞典 var ansjItem = DatDictionary.GetItem(word); TermNatures tn; if (ansjItem.Natures != TermNatures.Null) { tn = ansjItem.Natures; } else { string[] @params; if ((@params = UserDefineLibrary.GetParams(word)) != null) { tn = new TermNatures(new TermNature(@params[0], 1)); } else if (WordAlert.IsEnglish(word)) { tn = TermNatures.En; } else if (WordAlert.IsNumber(word)) { tn = TermNatures.M; } else { tn = TermNatures.Null; } } terms.Add(new Term(word, offe + tempOffe, tn)); tempOffe += word.Length; } new NatureRecognition(terms).Recognition(); return terms; }
private void MakeNewTerm() { var sb = new StringBuilder(); for (var j = _offe; j <= _endOffe; j++) { if (_terms[j] != null) { sb.Append(_terms[j].Name); } } var termNatures = new TermNatures(new TermNature(_tempNature, _tempFreq)); var term = new Term(sb.ToString(), _offe, termNatures) {SelfScore = -1*_tempFreq}; TermUtil.InsertTerm(_terms, term); }