def test_should_have_paths_for_ques(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_question_particles() self.morpheme_container_map = self.predefined_paths._morpheme_container_map QUES = SyntacticCategory.QUESTION # last one ends with transition to derivation state self.assert_defined_path(u'mı', QUES, None, u'mı(mı)+Ques+Pres+A1sg(yım[yım])', u'mı(mı)+Ques+Pres+A2sg(sın[sın])', u'mı(mı)+Ques+Pres+A3sg', u'mı(mı)+Ques+Pres+A1pl(yız[yız])', u'mı(mı)+Ques+Pres+A2pl(sınız[sınız])', u'mı(mı)+Ques+Pres+A3pl(lar[lar])', u'mı(mı)+Ques+Past(ydı[ydı])+A1sg(m[m])', u'mı(mı)+Ques+Past(ydı[ydı])+A2sg(n[n])', u'mı(mı)+Ques+Past(ydı[ydı])+A3sg', u'mı(mı)+Ques+Past(ydı[ydı])+A1pl(k[k])', u'mı(mı)+Ques+Past(ydı[ydı])+A2pl(nız[nız])', u'mı(mı)+Ques+Past(ydı[ydı])+A3pl(lar[lar])', u'mı(mı)+Ques+Narr(ymış[ymış])+A1sg(ım[ım])', u'mı(mı)+Ques+Narr(ymış[ymış])+A2sg(sın[sın])', u'mı(mı)+Ques+Narr(ymış[ymış])+A3sg', u'mı(mı)+Ques+Narr(ymış[ymış])+A1pl(ız[ız])', u'mı(mı)+Ques+Narr(ymış[ymış])+A2pl(sınız[sınız])', u'mı(mı)+Ques+Narr(ymış[ymış])+A3pl(lar[lar])')
def test_should_have_paths_for_ques(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_question_particles() self.morpheme_container_map = self.predefined_paths._morpheme_container_map QUES = SyntacticCategory.QUESTION # last one ends with transition to derivation state self.assert_defined_path( u'mı', QUES, None, u'mı(mı)+Ques+Pres+A1sg(yım[yım])', u'mı(mı)+Ques+Pres+A2sg(sın[sın])', u'mı(mı)+Ques+Pres+A3sg', u'mı(mı)+Ques+Pres+A1pl(yız[yız])', u'mı(mı)+Ques+Pres+A2pl(sınız[sınız])', u'mı(mı)+Ques+Pres+A3pl(lar[lar])', u'mı(mı)+Ques+Past(ydı[ydı])+A1sg(m[m])', u'mı(mı)+Ques+Past(ydı[ydı])+A2sg(n[n])', u'mı(mı)+Ques+Past(ydı[ydı])+A3sg', u'mı(mı)+Ques+Past(ydı[ydı])+A1pl(k[k])', u'mı(mı)+Ques+Past(ydı[ydı])+A2pl(nız[nız])', u'mı(mı)+Ques+Past(ydı[ydı])+A3pl(lar[lar])', u'mı(mı)+Ques+Narr(ymış[ymış])+A1sg(ım[ım])', u'mı(mı)+Ques+Narr(ymış[ymış])+A2sg(sın[sın])', u'mı(mı)+Ques+Narr(ymış[ymış])+A3sg', u'mı(mı)+Ques+Narr(ymış[ymış])+A1pl(ız[ız])', u'mı(mı)+Ques+Narr(ymış[ymış])+A2pl(sınız[sınız])', u'mı(mı)+Ques+Narr(ymış[ymış])+A3pl(lar[lar])')
def setUp(self): super(PredefinedPathsTest, self).setUp() logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) self.predefined_paths = PredefinedPaths(self.root_map, self.suffix_graph)
def test_should_have_paths_for_irregular_pronouns(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_herkes() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN self.assert_defined_path(u'herkes', PRON, None, u'herkes(herkes)+Pron+A3sg+Pnon')
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) suffix_graph = BasicSuffixGraph() suffix_graph.initialize() word_root_finder = WordRootFinder(self.root_map) self.parser = ContextlessMorphologicalParser(suffix_graph, None, [word_root_finder])
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) suffix_graph = BasicSuffixGraph() suffix_graph.initialize() self.mock_brute_force_noun_root_finder = BruteForceVerbRootFinder() self.parser = ContextlessMorphologicalParser(suffix_graph, None, [self.mock_brute_force_noun_root_finder])
def test_should_have_paths_for_iceri_disari(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_iceri_disari() self.morpheme_container_map = self.predefined_paths._morpheme_container_map NOUN = SyntacticCategory.NOUN self.assert_defined_path(u'içer', NOUN, None, u'i\xe7er(i\xe7eri)+Noun+A3sg+Pnon+Loc(de[de])', u'i\xe7er(i\xe7eri)+Noun+A3sg+Pnon+Abl(den[den])', u'i\xe7er(i\xe7eri)+Noun+A3sg+P3sg(si[si])') self.assert_defined_path(u'dışar', NOUN, None, u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+Pnon+Loc(da[da])', u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+Pnon+Abl(dan[dan])', u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+P3sg(s\u0131[s\u0131])')
def test_should_parse_proper_nouns_TDK(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) # TODO: implementing these features is almost impossible without context and historical data # tests based on TDK # http://www.tdk.gov.tr/index.php?option=com_content&view=article&id=187:Noktalama-Isaretleri-Aciklamalar&catid=50:yazm-kurallar&Itemid=132 # Özel adlara getirilen iyelik, durum ve bildirme ekleri kesme işaretiyle ayrılır self.assert_parse_correct(u"Kayseri'm", u'Kayseri(Kayseri)+Noun+Prop+Apos+A3sg+P1sg(+Im[m])+Nom') self.assert_parse_correct(u"Türkiye'mizin", u'Türkiye(Türkiye)+Noun+Prop+Apos+A3sg+P1sg(+ImIz[miz])+Gen(+nIn[nin])') self.assert_parse_correct(u"Muhibbi'nin", u'Muhibbi(Muhibbi)+Noun+Prop+Apos+A3sg+Pnon+Gen(+nIn[in])') self.assert_parse_correct(u"Emre'yi") self.assert_parse_correct(u"Şinasi'yle") self.assert_parse_correct(u"Alman'sınız") self.assert_parse_correct(u"Kırgız'ım") self.assert_parse_correct(u"Karakeçili'nin") self.assert_parse_correct(u"Cebrail'den") self.assert_parse_correct(u"Samanyolu'nda") self.assert_parse_correct(u"Eminönü'nde") self.assert_parse_correct(u"Ahmet'miş") self.assert_parse_correct(u"Ahmet'ti") # Sonunda 3. teklik kişi iyelik eki olan özel ada, bu ek dışında başka bir iyelik eki getirildiğinde kesme işareti konmaz self.assert_parse_correct(u"Boğaz_Köprümüz") self.assert_parse_correct(u"Boğaz_Köprümüzün") self.assert_parse_correct(u"Kuşadamızda") # Kurum, kuruluş, kurul, birleşim, oturum ve iş yeri adlarına gelen ekler kesmeyle ayrılmaz: self.assert_parse_correct(u"Türk_Dil_Kurumundan") self.assert_parse_correct(u"Başbakanlığa") # Özel adlara getirilen yapım ekleri, çokluk eki ve bunlardan sonra gelen diğer ekler kesmeyle ayrılmaz self.assert_parse_correct(u"Türklük") self.assert_parse_correct(u"Türkleşmek") self.assert_parse_correct(u"Türkçü") self.assert_parse_correct(u"Türkçülük") self.assert_parse_correct(u"Türkçe") self.assert_parse_correct(u"Avrupalı") self.assert_parse_correct(u"Avrupalılaşmak") self.assert_parse_correct(u"Mehmetler") self.assert_parse_correct(u"Mehmetlere") self.assert_parse_correct(u"Mehmetgil") self.assert_parse_correct(u"Mehmetgile") self.assert_parse_correct(u"Türklerin") self.assert_parse_correct(u"Türkçenin") self.assert_parse_correct(u"Müslümanlıkta") # Kişi adlarından sonra gelen saygı ve unvan sözlerine getirilen ekleri ayırmak için konur: self.assert_parse_correct(u"Nihat_Bey'e") self.assert_parse_correct(u"Ayşe_Hanım'dan") self.assert_parse_correct(u"Enver_Paşa'ya")
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) suffix_graph = BasicSuffixGraph() suffix_graph.initialize() self.mock_brute_force_noun_root_finder = BruteForceVerbRootFinder() self.parser = ContextlessMorphologicalParser( suffix_graph, None, [self.mock_brute_force_noun_root_finder])
def test_should_generate_transitions(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.assert_transitions_generated( u'elmaya', u'elma(elma)+Noun+A3sg+Pnon+Dat(+yA[ya])', [ (u'elma', u'elma(elma)+Noun'), (u'elma', u'elma(elma)+Noun+A3sg'), (u'elma', u'elma(elma)+Noun+A3sg+Pnon'), (u'elmaya', u'elma(elma)+Noun+A3sg+Pnon+Dat(+yA[ya])'), ] ) self.assert_transitions_generated( u'armudu', u'armud(armut)+Noun+A3sg+Pnon+Acc(+yI[u])', [ (u'armud', u'armud(armut)+Noun'), (u'armud', u'armud(armut)+Noun+A3sg'), (u'armud', u'armud(armut)+Noun+A3sg+Pnon'), (u'armudu', u'armud(armut)+Noun+A3sg+Pnon+Acc(+yI[u])'), ] ) self.assert_transitions_generated( u'yapabildiklerimizden', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])+Abl(dAn[den])', [ (u'yap', u'yap(yapmak)+Verb'), (u'yapabil', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])'), (u'yapabil', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos'), (u'yapabildik', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])'), (u'yapabildikler', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])'), (u'yapabildiklerimiz', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])'), (u'yapabildiklerimizden', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])+Abl(dAn[den])') ] ) self.assert_transitions_generated( u'yaptırttıramazmışız', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])+A1pl(+Iz[ız])', [ (u'yap', u'yap(yapmak)+Verb'), (u'yaptır', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])'), (u'yaptırt', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])'), (u'yaptırttır', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])'), (u'yaptırttıra', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])'), (u'yaptırttırama', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])'), (u'yaptırttıramaz', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])'), (u'yaptırttıramazmış', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])'), (u'yaptırttıramazmışız', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])+A1pl(+Iz[ız])') ] )
def test_should_have_paths_for_pronouns_bura_sura_ora(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_ora_bura_sura_nere() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN self.assert_defined_path(u'or', PRON, None, u'or(ora)+Pron+A3sg+Pnon+Loc(da[da])', u'or(ora)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path(u'bur', PRON, None, u'bur(bura)+Pron+A3sg+Pnon+Loc(da[da])', u'bur(bura)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path(u'şur', PRON, None, u'şur(şura)+Pron+A3sg+Pnon+Loc(da[da])', u'şur(şura)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path(u'ner', PRON, SecondarySyntacticCategory.QUESTION, u'ner(nere)+Pron+Ques+A3sg+Pnon+Loc(de[de])', u'ner(nere)+Pron+Ques+A3sg+Pnon+Abl(den[den])')
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) self.cloned_root_map = copy(self._org_root_map) suffix_graph = CopulaSuffixGraph(BasicSuffixGraph()) suffix_graph.initialize() predefined_paths = PredefinedPaths(self.cloned_root_map, suffix_graph) predefined_paths.create_predefined_paths() word_root_finder = WordRootFinder(self.cloned_root_map) self.parser = ContextlessMorphologicalParser(suffix_graph, predefined_paths, [word_root_finder])
def test_should_have_paths_for_pronouns_with_implicit_possession(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_bazilari_bazisi() self.predefined_paths._create_predefined_path_of_kimileri_kimisi_kimi() self.predefined_paths._create_predefined_path_of_birileri_birisi_biri() self.predefined_paths._create_predefined_path_of_hicbirisi_hicbiri() self.predefined_paths._create_predefined_path_of_birbiri() self.predefined_paths._create_predefined_path_of_cogu_bircogu_coklari_bircoklari() self.predefined_paths._create_predefined_path_of_birkaci() self.predefined_paths._create_predefined_path_of_cumlesi() self.predefined_paths._create_predefined_path_of_digeri_digerleri() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN self.assert_defined_path(u'bazıları', PRON, None, u'bazıları(bazıları)+Pron+A3sg+P3sg', u'bazıları(bazıları)+Pron+A3sg+P1pl(mız[mız])', u'bazıları(bazıları)+Pron+A3sg+P2pl(nız[nız])') self.assert_defined_path(u'bazısı', PRON, None, u'bazısı(bazısı)+Pron+A3sg+P3sg') self.assert_defined_path(u'kimileri', PRON, None, u'kimileri(kimileri)+Pron+A3sg+P3sg', u'kimileri(kimileri)+Pron+A3sg+P1pl(miz[miz])', u'kimileri(kimileri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'kimisi', PRON, None, u'kimisi(kimisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'kimi', PRON, None, u'kimi(kimi)+Pron+A3sg+P3sg', u'kimi(kimi)+Pron+A3sg+P1pl(miz[miz])', u'kimi(kimi)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'birileri', PRON, None, u'birileri(birileri)+Pron+A3sg+P3sg', u'birileri(birileri)+Pron+A3sg+P1pl(miz[miz])', u'birileri(birileri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'birisi', PRON, None, u'birisi(birisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'biri', PRON, None, u'biri(biri)+Pron+A3sg+P3sg', u'biri(biri)+Pron+A3sg+P1pl(miz[miz])', u'biri(biri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'hiçbirisi', PRON, None, u'hiçbirisi(hiçbirisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'hiçbiri', PRON, None, u'hiçbiri(hiçbiri)+Pron+A3sg+P3sg', u'hiçbiri(hiçbiri)+Pron+A3sg+P1pl(miz[miz])', u'hiçbiri(hiçbiri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'birbiri', PRON, None, u'birbiri(birbiri)+Pron+A3sg+P3sg', u'birbiri(birbiri)+Pron+A1pl+P1pl(miz[miz])', u'birbiri(birbiri)+Pron+A2pl+P2pl(niz[niz])') self.assert_defined_path(u'birbir', PRON, None, u'birbir(birbiri)+Pron+A3pl+P3pl(leri[leri])') self.assert_defined_path(u'çoğu', PRON, None, u'çoğu(çoğu)+Pron+A3sg+P3sg', u'çoğu(çoğu)+Pron+A3sg+P1pl(muz[muz])', u'çoğu(çoğu)+Pron+A3sg+P2pl(nuz[nuz])') self.assert_defined_path(u'birçoğu', PRON, None, u'birçoğu(birçoğu)+Pron+A3sg+P3sg', u'birçoğu(birçoğu)+Pron+A3sg+P1pl(muz[muz])', u'birçoğu(birçoğu)+Pron+A3sg+P2pl(nuz[nuz])') self.assert_defined_path(u'çokları', PRON, None, u'çokları(çokları)+Pron+A3sg+P3pl') self.assert_defined_path(u'birçokları', PRON, None, u'birçokları(birçokları)+Pron+A3sg+P3pl') self.assert_defined_path(u'birkaçı', PRON, None, u'birkaçı(birkaçı)+Pron+A3sg+P3sg', u'birkaçı(birkaçı)+Pron+A3sg+P1pl(mız[mız])', u'birkaçı(birkaçı)+Pron+A3sg+P2pl(nız[nız])') self.assert_defined_path(u'cümlesi', PRON, None, u'cümlesi(cümlesi)+Pron+A3sg+P3sg') self.assert_defined_path(u'diğeri', PRON, None, u'diğeri(diğeri)+Pron+A3sg+P3sg', u'diğeri(diğeri)+Pron+A3sg+P1pl(miz[miz])', u'diğeri(diğeri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'diğerleri', PRON, None, u'diğerleri(diğerleri)+Pron+A3sg+P3pl', u'diğerleri(diğerleri)+Pron+A3sg+P1pl(miz[miz])', u'diğerleri(diğerleri)+Pron+A3sg+P2pl(niz[niz])')
def test_should_have_paths_for_hepsi(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_hepsi() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN # last one ends with transition to derivation state self.assert_defined_path(u'hepsi', PRON, None, u'hepsi(hepsi)+Pron+A3pl+P3pl+Nom', u'hepsi(hepsi)+Pron+A3pl+P3pl+Acc(ni[ni])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Dat(ne[ne])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Loc(nde[nde])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Abl(nden[nden])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Ins(yle[yle])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Gen(nin[nin])', u'hepsi(hepsi)+Pron+A3pl+P3pl+AccordingTo(nce[nce])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Nom') # last one ends with transition to derivation state self.assert_defined_path(u'hep', PRON, None, u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Nom', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Acc(i[i])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Dat(e[e])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Loc(de[de])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Abl(den[den])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Ins(le[le])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Gen(in[in])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+AccordingTo(ce[ce])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Nom', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Nom', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Acc(i[i])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Dat(e[e])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Loc(de[de])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Abl(den[den])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Ins(le[le])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Gen(in[in])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+AccordingTo(ce[ce])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Nom')
def test_should_have_paths_for_hepsi(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_hepsi() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN # last one ends with transition to derivation state self.assert_defined_path( u'hepsi', PRON, None, u'hepsi(hepsi)+Pron+A3pl+P3pl+Nom', u'hepsi(hepsi)+Pron+A3pl+P3pl+Acc(ni[ni])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Dat(ne[ne])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Loc(nde[nde])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Abl(nden[nden])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Ins(yle[yle])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Gen(nin[nin])', u'hepsi(hepsi)+Pron+A3pl+P3pl+AccordingTo(nce[nce])', u'hepsi(hepsi)+Pron+A3pl+P3pl+Nom') # last one ends with transition to derivation state self.assert_defined_path( u'hep', PRON, None, u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Nom', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Acc(i[i])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Dat(e[e])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Loc(de[de])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Abl(den[den])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Ins(le[le])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Gen(in[in])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+AccordingTo(ce[ce])', u'hep(hepsi)+Pron+A1pl+P1pl(imiz[imiz])+Nom', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Nom', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Acc(i[i])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Dat(e[e])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Loc(de[de])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Abl(den[den])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Ins(le[le])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Gen(in[in])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+AccordingTo(ce[ce])', u'hep(hepsi)+Pron+A2pl+P2pl(iniz[iniz])+Nom')
def test_should_have_paths_for_iceri_disari(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_iceri_disari() self.morpheme_container_map = self.predefined_paths._morpheme_container_map NOUN = SyntacticCategory.NOUN self.assert_defined_path( u'içer', NOUN, None, u'i\xe7er(i\xe7eri)+Noun+A3sg+Pnon+Loc(de[de])', u'i\xe7er(i\xe7eri)+Noun+A3sg+Pnon+Abl(den[den])', u'i\xe7er(i\xe7eri)+Noun+A3sg+P3sg(si[si])') self.assert_defined_path( u'dışar', NOUN, None, u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+Pnon+Loc(da[da])', u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+Pnon+Abl(dan[dan])', u'd\u0131\u015far(d\u0131\u015far\u0131)+Noun+A3sg+P3sg(s\u0131[s\u0131])' )
def test_should_have_paths_for_pronouns_bura_sura_ora(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_ora_bura_sura_nere() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN self.assert_defined_path(u'or', PRON, None, u'or(ora)+Pron+A3sg+Pnon+Loc(da[da])', u'or(ora)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path(u'bur', PRON, None, u'bur(bura)+Pron+A3sg+Pnon+Loc(da[da])', u'bur(bura)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path(u'şur', PRON, None, u'şur(şura)+Pron+A3sg+Pnon+Loc(da[da])', u'şur(şura)+Pron+A3sg+Pnon+Abl(dan[dan])') self.assert_defined_path( u'ner', PRON, SecondarySyntacticCategory.QUESTION, u'ner(nere)+Pron+Ques+A3sg+Pnon+Loc(de[de])', u'ner(nere)+Pron+Ques+A3sg+Pnon+Abl(den[den])')
def test_should_generate_transitions(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.assert_transitions_generated( u'elmaya', u'elma(elma)+Noun+A3sg+Pnon+Dat(+yA[ya])', [ (u'elma', u'elma(elma)+Noun'), (u'elma', u'elma(elma)+Noun+A3sg'), (u'elma', u'elma(elma)+Noun+A3sg+Pnon'), (u'elmaya', u'elma(elma)+Noun+A3sg+Pnon+Dat(+yA[ya])'), ]) self.assert_transitions_generated( u'armudu', u'armud(armut)+Noun+A3sg+Pnon+Acc(+yI[u])', [ (u'armud', u'armud(armut)+Noun'), (u'armud', u'armud(armut)+Noun+A3sg'), (u'armud', u'armud(armut)+Noun+A3sg+Pnon'), (u'armudu', u'armud(armut)+Noun+A3sg+Pnon+Acc(+yI[u])'), ]) self.assert_transitions_generated( u'yapabildiklerimizden', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])+Abl(dAn[den])', [(u'yap', u'yap(yapmak)+Verb'), (u'yapabil', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])'), (u'yapabil', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos'), (u'yapabildik', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])' ), (u'yapabildikler', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])' ), (u'yapabildiklerimiz', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])' ), (u'yapabildiklerimizden', u'yap(yapmak)+Verb+Verb+Able(+yAbil[abil])+Pos+Noun+PastPart(dIk[dik])+A3pl(lAr[ler])+P1pl(+ImIz[imiz])+Abl(dAn[den])' )]) self.assert_transitions_generated( u'yaptırttıramazmışız', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])+A1pl(+Iz[ız])', [(u'yap', u'yap(yapmak)+Verb'), (u'yaptır', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])'), (u'yaptırt', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])'), (u'yaptırttır', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])' ), (u'yaptırttıra', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])' ), (u'yaptırttırama', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])' ), (u'yaptırttıramaz', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])' ), (u'yaptırttıramazmış', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])' ), (u'yaptırttıramazmışız', u'yap(yapmak)+Verb+Verb+Caus(dIr[tır])+Verb+Caus(t[t])+Verb+Caus(dIr[tır])+Verb+Able(+yA[a])+Neg(mA[ma])+Aor(z[z])+Narr(mIş[mış])+A1pl(+Iz[ız])' )])
def test_should_have_paths_for_pronouns_with_implicit_possession(self): parser_logger.setLevel(logging.DEBUG) suffix_applier_logger.setLevel(logging.DEBUG) self.predefined_paths._create_predefined_path_of_bazilari_bazisi() self.predefined_paths._create_predefined_path_of_kimileri_kimisi_kimi() self.predefined_paths._create_predefined_path_of_birileri_birisi_biri() self.predefined_paths._create_predefined_path_of_hicbirisi_hicbiri() self.predefined_paths._create_predefined_path_of_birbiri() self.predefined_paths._create_predefined_path_of_cogu_bircogu_coklari_bircoklari( ) self.predefined_paths._create_predefined_path_of_birkaci() self.predefined_paths._create_predefined_path_of_cumlesi() self.predefined_paths._create_predefined_path_of_digeri_digerleri() self.morpheme_container_map = self.predefined_paths._morpheme_container_map PRON = SyntacticCategory.PRONOUN self.assert_defined_path( u'bazıları', PRON, None, u'bazıları(bazıları)+Pron+A3sg+P3sg', u'bazıları(bazıları)+Pron+A3sg+P1pl(mız[mız])', u'bazıları(bazıları)+Pron+A3sg+P2pl(nız[nız])') self.assert_defined_path(u'bazısı', PRON, None, u'bazısı(bazısı)+Pron+A3sg+P3sg') self.assert_defined_path( u'kimileri', PRON, None, u'kimileri(kimileri)+Pron+A3sg+P3sg', u'kimileri(kimileri)+Pron+A3sg+P1pl(miz[miz])', u'kimileri(kimileri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'kimisi', PRON, None, u'kimisi(kimisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'kimi', PRON, None, u'kimi(kimi)+Pron+A3sg+P3sg', u'kimi(kimi)+Pron+A3sg+P1pl(miz[miz])', u'kimi(kimi)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path( u'birileri', PRON, None, u'birileri(birileri)+Pron+A3sg+P3sg', u'birileri(birileri)+Pron+A3sg+P1pl(miz[miz])', u'birileri(birileri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'birisi', PRON, None, u'birisi(birisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'biri', PRON, None, u'biri(biri)+Pron+A3sg+P3sg', u'biri(biri)+Pron+A3sg+P1pl(miz[miz])', u'biri(biri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'hiçbirisi', PRON, None, u'hiçbirisi(hiçbirisi)+Pron+A3sg+P3sg') self.assert_defined_path(u'hiçbiri', PRON, None, u'hiçbiri(hiçbiri)+Pron+A3sg+P3sg', u'hiçbiri(hiçbiri)+Pron+A3sg+P1pl(miz[miz])', u'hiçbiri(hiçbiri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path(u'birbiri', PRON, None, u'birbiri(birbiri)+Pron+A3sg+P3sg', u'birbiri(birbiri)+Pron+A1pl+P1pl(miz[miz])', u'birbiri(birbiri)+Pron+A2pl+P2pl(niz[niz])') self.assert_defined_path( u'birbir', PRON, None, u'birbir(birbiri)+Pron+A3pl+P3pl(leri[leri])') self.assert_defined_path(u'çoğu', PRON, None, u'çoğu(çoğu)+Pron+A3sg+P3sg', u'çoğu(çoğu)+Pron+A3sg+P1pl(muz[muz])', u'çoğu(çoğu)+Pron+A3sg+P2pl(nuz[nuz])') self.assert_defined_path(u'birçoğu', PRON, None, u'birçoğu(birçoğu)+Pron+A3sg+P3sg', u'birçoğu(birçoğu)+Pron+A3sg+P1pl(muz[muz])', u'birçoğu(birçoğu)+Pron+A3sg+P2pl(nuz[nuz])') self.assert_defined_path(u'çokları', PRON, None, u'çokları(çokları)+Pron+A3sg+P3pl') self.assert_defined_path(u'birçokları', PRON, None, u'birçokları(birçokları)+Pron+A3sg+P3pl') self.assert_defined_path(u'birkaçı', PRON, None, u'birkaçı(birkaçı)+Pron+A3sg+P3sg', u'birkaçı(birkaçı)+Pron+A3sg+P1pl(mız[mız])', u'birkaçı(birkaçı)+Pron+A3sg+P2pl(nız[nız])') self.assert_defined_path(u'cümlesi', PRON, None, u'cümlesi(cümlesi)+Pron+A3sg+P3sg') self.assert_defined_path(u'diğeri', PRON, None, u'diğeri(diğeri)+Pron+A3sg+P3sg', u'diğeri(diğeri)+Pron+A3sg+P1pl(miz[miz])', u'diğeri(diğeri)+Pron+A3sg+P2pl(niz[niz])') self.assert_defined_path( u'diğerleri', PRON, None, u'diğerleri(diğerleri)+Pron+A3sg+P3pl', u'diğerleri(diğerleri)+Pron+A3sg+P1pl(miz[miz])', u'diğerleri(diğerleri)+Pron+A3sg+P2pl(niz[niz])')
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO) logger.setLevel(logging.INFO)
def setUp(self): logging.basicConfig(level=logging.INFO) parser_logger.setLevel(logging.INFO) suffix_applier_logger.setLevel(logging.INFO)