public void DisambiguateTextTest() { //myCache = Loader.CreateCache(); Assert.IsNotNull(myCache); Assert.AreEqual(ProjId.UiName, myCache.ProjectId.UiName); Assert.AreEqual(26, myCache.LangProject.AllPartsOfSpeech.Count); Assert.AreEqual(323, myCache.LangProject.LexDbOA.Entries.Count()); Assert.AreEqual(4, myCache.LangProject.InterlinearTexts.Count); var text = myCache.LangProject.InterlinearTexts.Where(t => t.Title.BestAnalysisAlternative.Text == "Part 4").First(); var itext = text.Owner as IText; String AndFile = Path.Combine(TestDataDir, "Text.and"); var textDisam = new TextDisambiguation(itext, TextPart3, AndFile); var defaultAgent = myCache.LanguageProject.DefaultUserAgent; // Before disambiguation Assert.AreEqual(18, text.ParagraphsOS.Count); var para = text.ParagraphsOS.ElementAtOrDefault(1) as IStTxtPara; Assert.NotNull(para); var segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); var analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // got Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(2); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(2) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // are (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(1); // they Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(4) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // want Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // to (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(3); // be (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(4); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(5); // and Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(6); // healthy Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(7); // and Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(8); // happy Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(9); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(16) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // got (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(2); // to (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(3); // go Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(4); // to (ambiguous) Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.IsNull(analysis.Analysis); analysis = segment.AnalysesRS.ElementAt(5); // the Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(6); // party Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(7); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); textDisam.Disambiguate(myCache); //After disambiguation para = text.ParagraphsOS.ElementAtOrDefault(1) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // got Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(2) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // are Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // they Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(4) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // want Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // to Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // be Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(4); // married Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(5); // and Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(6); // healthy Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(7); // and Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(8); // happy Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(9); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(16) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); analysis = segment.AnalysesRS.ElementAt(0); // we Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // got Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // to Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(3); // go Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(4); // to Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(5); // the Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(6); // party Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(7); // punctuation Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); }
public void DisambiguateText2Test() { //myCache = Loader.CreateCache(); Assert.IsNotNull(myCache); Assert.AreEqual(ProjId.UiName, myCache.ProjectId.UiName); Assert.AreEqual(30, myCache.LangProject.AllPartsOfSpeech.Count); Assert.AreEqual(10912, myCache.LangProject.LexDbOA.Entries.Count()); Assert.AreEqual(119, myCache.LangProject.InterlinearTexts.Count); var text = myCache.LangProject.InterlinearTexts.Where(t => t.Title.BestAnalysisAlternative.Text == "PCPATR 3 Ron's testing").First(); var itext = text.Owner as IText; String AndFile = Path.Combine(TestDataDir, "Text2.and"); var textDisam = new TextDisambiguation(itext, Text2Testing, AndFile); var defaultAgent = myCache.LanguageProject.DefaultUserAgent; // Before disambiguation Assert.AreEqual(2, text.ParagraphsOS.Count); var para = text.ParagraphsOS.ElementAtOrDefault(0) as IStTxtPara; Assert.NotNull(para); Assert.AreEqual(3, para.SegmentsOS.Count); var segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); Assert.AreEqual(7, segment.AnalysesRS.Count); var analysis = segment.AnalysesRS.ElementAt(0); // " Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(1); // ' Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(2); // سلام Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("سلام", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(3); // ، Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(4); // گفتم Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("گفتم", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(5); // '" Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(6); // .. Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); segment = para.SegmentsOS.ElementAtOrDefault(1); Assert.AreEqual(4, segment.AnalysesRS.Count); analysis = segment.AnalysesRS.ElementAt(0); // :. Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(1); // چطور Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("چطور", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(2); // هستید Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("هستید", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(3); // ؟ Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); // there is one more segment but no need to test for it para = text.ParagraphsOS.ElementAtOrDefault(1) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); Assert.AreEqual(3, segment.AnalysesRS.Count); analysis = segment.AnalysesRS.ElementAt(0); // ، Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(1); // باش Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("باش", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(2); // ! Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); textDisam.Disambiguate(myCache); //After disambiguation para = text.ParagraphsOS.ElementAtOrDefault(0) as IStTxtPara; Assert.NotNull(para); Assert.AreEqual(3, para.SegmentsOS.Count); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); Assert.AreEqual(7, segment.AnalysesRS.Count); analysis = segment.AnalysesRS.ElementAt(0); // " Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual("hello", analysis.ShortName); Assert.NotNull(analysis.Analysis); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // ' Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID); Assert.NotNull(analysis.Analysis); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // سلام Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("سلام", analysis.ShortName); IWfiWordform wfiWordform = analysis as IWfiWordform; Assert.IsNull(analysis.Analysis); Assert.AreEqual(18, wfiWordform.AnalysesOC.Count); analysis = segment.AnalysesRS.ElementAt(3); // ، Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(4); // گفتم Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("گفتم", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(5); // '" Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); analysis = segment.AnalysesRS.ElementAt(6); // .. Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); segment = para.SegmentsOS.ElementAtOrDefault(1); Assert.AreEqual(4, segment.AnalysesRS.Count); analysis = segment.AnalysesRS.ElementAt(0); // :. Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.NotNull(analysis.Analysis); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // چطور Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual("you are", analysis.ShortName); Assert.NotNull(analysis.Analysis); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(2); // هستید Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("هستید", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(3); // ؟ Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); para = text.ParagraphsOS.ElementAtOrDefault(1) as IStTxtPara; Assert.NotNull(para); segment = para.SegmentsOS.FirstOrDefault(); Assert.NotNull(segment); Assert.AreEqual(3, segment.AnalysesRS.Count); analysis = segment.AnalysesRS.ElementAt(0); // ، Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID); Assert.AreEqual("be!", analysis.ShortName); Assert.NotNull(analysis.Analysis); Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent)); analysis = segment.AnalysesRS.ElementAt(1); // باش Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID); Assert.AreEqual("باش", analysis.ShortName); analysis = segment.AnalysesRS.ElementAt(2); // ! Assert.AreEqual(PunctuationFormTags.kClassId, analysis.ClassID); }