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); } } }
public static void RemoveTagsFromFile(string tagPath, string cleanPath) { var list = File.ReadLines(tagPath).Select(x => StringProcess.CleanupTag(x)); File.WriteAllLines(cleanPath, list); }