示例#1
0
        public IEnumerable <string> InsertStToCc()
        {
            var dict = Interval.CreateContainDict(CcList.Cast <IInterval>().ToList(), SylList.Cast <IInterval>().ToList());
            List <IInterval> stList = StList.Cast <IInterval>().ToList();

            foreach (var item in dict)
            {
                string sentence   = StringProcess.CleanupTag(CcList[item.Key].Text);
                int    sntLength  = sentence.Length;
                var    sylList    = item.Value.Select(x => SylList[x] as IInterval).ToList();
                var    cleanList  = sylList.Select(x => x.Value()).Where(x => !StringProcess.IsTag(x)).ToList();
                int    count      = cleanList.Count();
                bool   suffixFlag = count < sentence.Length && ValidSuffix(sentence, count);
                if (sentence.Length == 0)
                {
                    continue;
                }
                if (count == sntLength || suffixFlag)
                {
                    var newList = suffixFlag ? IntervalTransform(ReorgString(sentence), sylList) : IntervalTransform(sentence, sylList);
                    var merged  = Interval.PadIntervals(newList.ToList(), stList);

                    string trans = string.Join(" ", merged);
                    yield return(trans);
                }
            }
        }
示例#2
0
        public static void RemoveTagsFromFile(string tagPath, string cleanPath)
        {
            var list = File.ReadLines(tagPath).Select(x => StringProcess.CleanupTag(x));

            File.WriteAllLines(cleanPath, list);
        }