public override void Analyse(LineCollection lines) { if (lines == null) { return; } manager = new LuceneManager(); if (!manager.ExistSchema("address")) { manager.AddSchema("address"); } var analyzeIndexList = new List <AnalyzeIndex>(); foreach (var line in lines) { foreach (var sentence in line.SentenceList) { foreach (var word in sentence.WordList) { if (word.SpellWord != null) { if (word.SpellWord.Root != null) { var adresList = AddressControl(word); if (adresList != null) { if (adresList.Count > 0) { var analyze = new AnalyzeIndex(); analyze.AnalyzeIndexCollection.AddRange(adresList); analyze.LineNumber = lines.IndexOf(line); analyze.WordNumber = sentence.WordList.IndexOf(word); analyze.SentenceNumber = line.SentenceList.IndexOf(sentence); analyzeIndexList.Add(analyze); } } } } } } } ClearAddressIndex(ref analyzeIndexList, lines); }
internal abstract bool Control(INlpAnalyzeIndex analyze, LineCollection lines, AnalyzeIndex index);
internal override bool Control(INlpAnalyzeIndex analyze, LineCollection lines, AnalyzeIndex index) { if (index.WordNumber >= lines[index.LineNumber].SentenceList[index.SentenceNumber].WordList.Count - 1) { return(false); } var nextWord = lines[index.LineNumber].SentenceList[index.SentenceNumber].WordList[index.WordNumber + 1]?.SpellWord?.Root?.Text?.ToLower(); if (nextWord == "mahalle") { return(true); } else if (nextWord == "mah") { return(true); } else if (nextWord == "mah.") { return(true); } return(false); }