Ejemplo n.º 1
0
        private static Dictionary <string, double> GetCharSuggs(MappingSequence mappingSequences, string pinglishWord, int index, Dictionary <string, double> charSuggs, int prefixGram, int postfixGram)
        {
            var tmpSuggs = GetSuggsForKey(mappingSequences, pinglishWord, index, prefixGram, postfixGram);

            charSuggs = Union(charSuggs, tmpSuggs);
            return(charSuggs);
        }
Ejemplo n.º 2
0
        private static Dictionary <string, double> GetSuggsForKey(MappingSequence mappingSequences, string pinglishWord, int index, int prefixGram, int postfixGram)
        {
            var prefix = MappingSequence.GetPrefixForIndex(pinglishWord, index, prefixGram);

            if (prefix.Length != prefixGram)
            {
                return(new Dictionary <string, double>());
            }

            var postfix = MappingSequence.GetPostfixForIndex(pinglishWord, index, postfixGram);

            if (postfix.Length != postfixGram)
            {
                return(new Dictionary <string, double>());
            }

            var ch = pinglishWord[index];

            Dictionary <string, double> charSuggs = null;

            try
            {
                // TODO: If Key does not exist ?!
                var listOfAllSuggs = mappingSequences[ch, prefix, postfix];

                if (listOfAllSuggs != null)
                {
                    charSuggs = listOfAllSuggs.ToDictionary(sug => sug.Key, sug => (sug.Value * Math.Pow(PinglishConverterConfig.PowerFactor, prefixGram + postfixGram)));
                }
                else
                {
                    charSuggs = new Dictionary <string, double>();
                }
            }
            catch (KeyNotFoundException ex)
            {
                throw ex;
            }

            return(charSuggs);
        }