private Tuple <int, int, int> count(List <_WordInnfo> l1) { /******************* * 特殊单字词比重 * 这 那 会 能 才 * ****************/ int sr = 0; /************* * 词性相似度 * *****************/ int f = 0; /************** * 单字词个数 * *************************/ int s = 0; foreach (var item in l1) { if (item.Name.Length == 1) { s++; if (CharHelper.IsFirstSingleWord(item.Name[0])) { sr += 3; } else if (CharHelper.IsSecondSingleWord(item.Name[0])) { sr += 2; } else if (CharHelper.IsThirdSingleWord(item.Name[0])) { sr++; } } else { if (item.Length == 2) { /******************************************** * 比较二字词构词规则可信度 * n+n 3 * v+v 3 * a+a 3 * a+n 2 * adv+v 2 * a+v 1 * ********************************/ if (_provider.SingleDic.ContainsKey(item.Name[0]) && _provider.SingleDic.ContainsKey(item.Name[1])) { var a = _provider.GetWordInfoFromSingleDic(item.Name[0]).MaxType; var b = _provider.GetWordInfoFromSingleDic(item.Name[1]).MaxType; if (a.GetBigType() == b.GetBigType()) { f += 3; } else if (a.IsAdjective() && b.IsNoun()) { f += 2; } else if (a.IsAdverb() && b.IsVerb()) { f += 2; } else if (a.IsAdverb() && b.IsAdjective()) { f += 1; } else if (a.IsAdjective() && b.IsVerb()) { f += 1; } } } } } return(new Tuple <int, int, int>(sr, s, f)); }