/// <summary> /// Given an input, provide a normalized output /// </summary> /// <param name="input">The string to be normalized</param> /// <param name="isUserInput">True if the string being normalized is part of the user input path - /// flags that we need to normalize out * and _ chars</param> /// <returns>The normalized string</returns> public string Normalize(string input, bool isUserInput) { StringBuilder result = new StringBuilder(); // objects for normalization of the input Normalize.ApplySubstitutions substitutor = new AIMLbot.Normalize.ApplySubstitutions(this.bot); Normalize.StripIllegalCharacters stripper = new AIMLbot.Normalize.StripIllegalCharacters(this.bot); string substitutedInput = substitutor.Transform(input); // split the pattern into it's component words string[] substitutedWords = substitutedInput.Split(" \r\n\t".ToCharArray()); // Normalize all words unless they're the AIML wildcards "*" and "_" during AIML loading foreach (string word in substitutedWords) { string normalizedWord; if (isUserInput) { normalizedWord = stripper.Transform(word); } else { if ((word == "*") || (word == "_")) { normalizedWord = word; } else { normalizedWord = stripper.Transform(word); } } //result.Append(normalizedWord.Trim() + " "); result.Append(normalizedWord.Trim());//中文 } //return result.ToString().Replace(" ", " "); // make sure the whitespace is neat return(result.ToString().Trim()); //中文 }
/// <summary> /// Given an input, provide a normalized output /// </summary> /// <param name="input">The string to be normalized</param> /// <param name="isUserInput">True if the string being normalized is part of the user input path - /// flags that we need to normalize out * and _ chars</param> /// <returns>The normalized string</returns> public string Normalize(string input, bool isUserInput) { StringBuilder result = new StringBuilder(); // objects for normalization of the input Normalize.ApplySubstitutions substitutor = new AIMLbot.Normalize.ApplySubstitutions(this.bot); Normalize.StripIllegalCharacters stripper = new AIMLbot.Normalize.StripIllegalCharacters(this.bot); string substitutedInput = substitutor.Transform(input); // split the pattern into it's component words string[] substitutedWords = substitutedInput.Split(" \r\n\t".ToCharArray()); // Normalize all words unless they're the AIML wildcards "*" and "_" during AIML loading foreach (string word in substitutedWords) { string normalizedWord; if (isUserInput) { normalizedWord = stripper.Transform(word); } else { if ((word == "*") || (word == "_")) { normalizedWord = word; } else { normalizedWord = stripper.Transform(word); } } result.Append(normalizedWord.Trim() + " "); } return result.ToString().Replace(" "," "); // make sure the whitespace is neat }