Exemplo n.º 1
0
 /// <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;
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 4
0
        /// <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;
        }
Exemplo n.º 5
0
 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);
 }