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); }
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); }
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); }