public static List <ReadElement> ParseReadElement(JmdictEntity entry)
        {
            JArray             readArray    = JArray.Parse(entry.ReadElement);
            List <ReadElement> readElements = new List <ReadElement>();

            foreach (var read in readArray)
            {
                readElements.Add(new ReadElement((JObject)read));
            }
            return(readElements);
        }
Exemple #2
0
        private void FindUntokenWordInDict()
        {
            bool            isInDict     = false;
            string          previousWord = null;
            WordInformation word         = null;

            for (int index = 0; index < currentTokenizedSentence.Length; index++)
            {
                string unTokenized = currentTokenizedSentence.Substring(0, index + 1);
                if (JmdictEntity.HasJapWord(unTokenized + "*", japDict))
                {
                    previousWord = unTokenized;
                    isInDict     = true;
                }
                else
                {
                    if (isInDict)
                    {
                        isInDict = false;
                        while (!String.IsNullOrWhiteSpace(previousWord))
                        {
                            if (JmdictEntity.HasJapWord(previousWord, japDict))
                            {
                                word = GetUntokenWord(previousWord);
                                word.IsInDictionary = true;
                                unTokenizedWords.Add(word);
                                currentTokenizedSentence = currentTokenizedSentence.Remove(0, previousWord.Length);
                                isInDict = true;
                                break;
                            }
                            previousWord = previousWord.Remove(previousWord.Length - 1);
                        }
                    }
                    break;
                }
            }

            if (!isInDict)
            {
                word = GetUntokenWord(currentTokenizedSentence[0].ToString());
                unTokenizedWords.Add(word);
                currentTokenizedSentence = currentTokenizedSentence.Remove(0, 1);
            }
            else if (word == null)
            {
                word = GetUntokenWord(previousWord);
                word.IsInDictionary = true;
                unTokenizedWords.Add(word);
                currentTokenizedSentence = currentTokenizedSentence.Remove(0, previousWord.Length);
            }
        }
 private static void AddSuruVerb(WordInformation word, Database dictionary, string conjungation, Dictionary <int, JmdictEntity> entries)
 {
     if (word.Surface.Equals("すれば", StringComparison.OrdinalIgnoreCase))
     {
         var list = JmdictEntity.GetJapMatchVerb(word.BaseForm, dictionary);
         AddDictionaryEntry(list, entries, conjungation);
     }
     else
     {
         var entry = JmdictEntity.GetSpecialSuruVerb(dictionary);
         entry.Conjugation            = conjungation;
         entries[entry.EntrySequence] = entry;
     }
 }
        private static List <SenseElement> ParseSenseElement(JmdictEntity entry)
        {
            List <SenseElement> senseElements = new List <SenseElement>();
            var senseArray = JArray.Parse(entry.SenseElement);
            int order      = 1;

            foreach (var sense in senseArray)
            {
                var senseElement = new SenseElement((JObject)sense, order);
                senseElements.Add(senseElement);
                order++;
            }
            return(senseElements);
        }
Exemple #5
0
        private bool CheckInDictionary(string currentSurface, string currentBaseform, string reading, string pronun)
        {
            AppendWordPart(currentSurface, reading, pronun, currentBaseform);
            surface.Append("*");

            string searchWord = String.Concat(surface.ToString(), " OR ", baseform.ToString());
            bool   isHave     = JmdictEntity.HasJapWord(searchWord, dictionary);

            if (!isHave)
            {
                surface.Remove(surface.Length - 1, 1);
                RemoveLastWordPath();
                return(false);
            }
            else
            {
                surface.Remove(surface.Length - 1, 1);
                return(true);
            }
        }
        private static List <KanjiElement> ParseKanjiElement(JmdictEntity entry)
        {
            if (entry.KanjiElement == null)
            {
                return(null);
            }
            JArray kanjiArray = JArray.Parse(entry.KanjiElement);

            if (kanjiArray == null)
            {
                return(null);
            }

            List <KanjiElement> kanjiElements = new List <KanjiElement>();

            foreach (var kanji in kanjiArray)
            {
                kanjiElements.Add(new KanjiElement((JObject)kanji));
            }
            return(kanjiElements);
        }
        private static void AddIchidanVerbDictionaryEntry(string searchWord, Database dictionary, Dictionary <int, JmdictEntity> entries, string conjungation)
        {
            var list = JmdictEntity.GetJapMatchIChidan(searchWord, dictionary);

            AddDictionaryEntry(list, entries, conjungation);
        }
        private static void AddAllDictionaryEntry(string searchWord, Database dictionary, Dictionary <int, JmdictEntity> entries)
        {
            var list = JmdictEntity.GetJapMatchAll(searchWord, dictionary);

            AddDictionaryEntry(list, entries, null);
        }
        private static void AddPossibleGodanVerbsDictionaryEntry(List <string> searchWord, Database dictionary, Dictionary <int, JmdictEntity> entries, string conjungation)
        {
            var list = JmdictEntity.GetJapMatchListWordAndPOS(searchWord, JmdictEntity.POS_GODAN, dictionary);

            AddDictionaryEntry(list, entries, conjungation);
        }