Ejemplo n.º 1
0
def agent(dbcon=False):
    """
     """

    LogNewDeprel('Create the agent category in SN')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable = 'ru_conll', ConditionColumns={'deprel':('агент',)})
    simpleupdate(thisSearch, dbcon, deprel='agent',dbtable='ru_conll')
Ejemplo n.º 2
0
def rel(dbcon=False):
    """
    Relatiivilauseiden tapauksessa SN-jäsennin ja TDT-jäsennin eroavat toisistaan
    poikkeuksellisen paljon. Syynä on TDT-jäsennyksen monikerroksisuus:
    TDT-analysoidussa aineistossa relatiivipronominit saavat ikään kuin kaksi
    dependenssianalyysia. Ensimmäisessä kerroksessa relatiivipronominit tulkitaan 
    relatiivilauseen sisäisesti, jolloin ne voidaan luokitella mihin tahansa
    kategoriaan, mikä niille lauseessa kuuluisi. Toisessa kerroksessa -- joka jää
    voimaan, kun aineisto on ajettu jäsentimen läpi -- relatiivipronominit
    analysoidaan *rel*-luokkaan kuuluviksi [@haverinen2013tdt, 30--31]. SN-jäsennin
    ei tee vastaavaa eroa, vaan käyttää suoraan niitä kategorioita, jotka
    TDT-jäsennyksessä kuuluvat ensimmäiseen, lopputuloksen ulkopuolelle jäävään
    kerrokseen.

    Analyysin kannalta SN-jäsentimen kaltainen yksikerroksinen lopputulos
    vaikuttaisi intuitiivisesti mielekkäämmältä: yksittäiset lauseet ovat
    vertailukelpoisempia, kun ei tehdä eroa sen suhteen, onko kyseessä
    relatiivilause, vai jokin muu lausetyyppi. Teknisesti on kuitenkin haastavaa
    muuttaa TDT:n rel-tyypiksi analysoituja elementtejä takaisin niiden ensimmäisen
    kerroksen mukaisiksi dependenssityypeiksi. Huomattavasti yksinkertaisempaa on
    muuttaa SN-analyysia: relatiivipronominien dependenssityyppi muutetaan
    muotoon *rel* riippumatta siitä, mikä se on alkuperäisen jäsennyksen mukaisesti.

    """

    LogNewDeprel('Create the rel category in SN')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable = 'ru_conll', ConditionColumns={'lemma':('который','чьей','' )})
    simpleupdate(thisSearch, dbcon, deprel='agent',dbtable='ru_conll')
Ejemplo n.º 3
0
def nommod_own(dbcon=False):
    """"Create the category of nommod_own in SN
    NEEDS ADJUSTMENTS, Something's probably being left out 
    ------------------------------
    """
    featset = Featset()
    LogNewDeprel('Create the category of nommod_own in the SN data')
    thisSearch = makeSearch(database=dbcon.dbname,dbtable='ru_conll', ConditionColumns={'token':('у',),'deprel':('1-компл',)}, headcond = {'column':'lemma','values':('быть','есть', 'бывать', 'нет','мало','много')})
    simpleupdate(thisSearch, dbcon, deprel='nommod-own',dbtable='ru_conll')
Ejemplo n.º 4
0
def prdctv(dbcon=False):
    """Koska ajanilmauksen sijainnin määrittelyn kannalta olisi hyödyllistä erottaa predikatiivit muista
    verbin täydennyksistä, pyrin kontrastiivisessa analyysitasossa tarkentamaan SN-jäsennyksen prisvjaz-
    kategoriaa. Tämä tapahtuu erottamalla omaksi prdctv-luokakseen sellaiset prisvjaz-kategorian sanat,
    jotka eivät ole prepositioita. Prepositioilla ilmaistavat prisvjaz-dependentit puolestaan liitetään edellä
    määriteltyyn nommod-kategoriaan."""

    LogNewDeprel('Create the prdctv category in SN')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable = 'ru_conll', ConditionColumns={'deprel':('присвяз',), '!pos':('S',)})
    simpleupdate(thisSearch,dbcon,deprel='prdctv',dbtable='ru_conll')
Ejemplo n.º 5
0
def advmod(dbcon=False):
    """ Muokkaan SN-jäsennyksen obst-kategoriaa ja
    TDT-jäsennyksen advmod-kategoriaa siten, että kontrastiiviseen jäsennykseen
    luodaan oma advmod-luokkansa. Tähän luokkaan rajataan SN-jäsennyksestä ne
    obst-kategorian sanat, joiden sanaluokka on adverbi (ja jotka
    automaattisesti ovat myös verbin dependenttejä) ja TDT-jäsennyksestä ne
    advmod-kategorian sanat, jotka ovat verbin dependenttejä.
    """

    LogNewDeprel('Create the advmod category in sn')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable='ru_conll', ConditionColumns={'deprel':('обст',),'pos':('R',)}, headcond={'column':'pos','values': ('V',)})
    simpleupdate(thisSearch,dbcon,deprel='advmod',dbtable='ru_conll')
Ejemplo n.º 6
0
def adpos(dbcon=False):
    """
    Kuten esimerkeistä @parsers1fi--@parsers1ru havaittiin, TDT- ja SN-jäsentimet
    eroavat lähtökohtaisesti siinä, miten adpositiorakenteiden pääsana
    määritellään. Kontrastiivinen jäsennys seuraa tältä osin SN-jäsennyksen
    jäsennystapaa, niin että TDT-tapauksissa riippuvuussuunta käännetään.
    Adpositioluokan nimi on kuitenkin TDT-analyysin mukaisesti *adpos*.
    SN-analyysissa prepositiot analysoidaan omalla luokallaan *предл*. Ongelmia
    aiheuttaa kuitenkin se, että SN-analysoitu aineisto sisältää myös
    adpositiorakenteita, jotka on analysoitu квазиагент-luokkaan.
    """

    LogNewDeprel('Create the adpos category in SN')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable = 'ru_conll', ConditionColumns={'deprel':('предл',)})
    simpleupdate(thisSearch, dbcon, deprel='adpos',dbtable='ru_conll')
Ejemplo n.º 7
0
def prtcl(dbcon=False):
    """
    SN-analyysissä kieltopartikkelit on
    luokiteltu kategoriaan ogranitš, johon kuuluvat myös käytännössä kaikki muut partikkelit konditionaalin
    12ilmaisevaa by-partikkelia lukuun ottamatta. Ogranitš-luokka siirretään sellaisenaan kontrastiiviseen
    analyysitasoon ja nimetään uudelleen tunnisteella prtcl. Tähän luokkaan yhdistetään myös alun
    perin analit-kategoriaan luokitellut by-partikkelit

    Partikkelit SN-datassa voivat olla:
    предик сент-предик 1-компл неакт-компл колич-огран сент-соч обст предл аппоз релят подч-союзн ROOT разъяснит опред эксплет вспом композ пролепт атриб оп-опред сравнит вводн соч-союзн кратн квазиагент аналит соотнос 2-компл ном-аппоз огранич сочин примыкат 3-компл присвяз сравн-союзн 
    """

    LogNewDeprel('Create the prtcl category in SN')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable = 'ru_conll', ConditionColumns={'deprel':('огранич','аналит'), 'pos':('Q',)})
    simpleupdate(thisSearch, dbcon, deprel='prtcl',dbtable='ru_conll')
Ejemplo n.º 8
0
def attr(dbcon=False):
    """Kaikkiin kielen tilanteisiin tarkoitettujen jäsenninten on luonnollisesti pyrittävä mahdollisimman
    suureen tarkkuuteen myös alemman tason dependenssisuhteissa. Tämän vuoksi erilaisia substantiivia tai
    adjektiivia määrittäviä sanoja kuvataan melko monilla alaluokilla. Näitä ovat TDT-jäsennyksessä muun
    muassa luokat amod, det ja quantmod. SN-jäsennyksessä vastaavan tason kategorioita ovat esimerkiksi
    opred, appos, ja utotšn.

    Tämän tutkimuksen kannalta näillä suhteilla ei useinkaan ole suurta merkitystä, sillä oleellista on
    erotella elementtejä, joiden suhteen ajanilmausten sijaintia olisi mielekästä määrittää. Tämän vuoksi
    kontrastiiviseen analyysikerrokseen muodostuu erittäin suuri alempien dependenssitasojen luokka, jota
    merkitään nimityksellä attr."""

    #kvaziagent pitää vielä miettiä!
    LogNewDeprel('create the attr category in sn')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable='ru_conll', ConditionColumns={'deprel':('опред', 'квазиагент', 'атриб', 'аппоз', 'разъяснит', 'количест', 'сравн-союзн', 'сравнит', 'вспом', 'соотнос', 'колич-вспом', 'электив', 'оп-опред', 'уточн', 'колич-огран', 'аппрокс-колич', 'кратн', 'нум-аппоз', 'эллипт', 'распред', 'композ')}, headcond = {'column':'pos','values':('a','n','p')})
    simpleupdate(thisSearch,dbcon,deprel='attr',dbtable='ru_conll')
Ejemplo n.º 9
0
def nommod(dbcon=False):
    """
    Kun muut luokat analysoitu, loput verbin täydennykset ja määritteet tähän luokkaan.
    
    TDT- ja SN-jäsennysten erilaiset periaatteelliset lähtökohdat näkyvät siinä, että SN-jäsennin luokittelee
    omaan obst-kategoriaansa elementit, jotka määrittävät verbiä tai muuta pääsanaa adverbiaalin tavoin.
    Näin esimerkiksi virkkeen 29 notšju saa luokakseen obst, mutta virkkeen 30 yönä tulee määritellyksi
    edelleen nommod-luokkaan.
    
    Ne prisvjaz-luokan elementit, jotka muodostetaan prepositioiden kautta, liitetään tähän.
    """

    featset = Featset()
    LogNewDeprel('Create the nommod category in sn')
    deprels = ('1-компл', '2-компл', '3-компл', '4-компл', '5-компл','обст','присвяз')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable='ru_conll', ConditionColumns={'deprel':deprels,'contr_deprel':('gdep',)})
    simpleupdate(thisSearch,dbcon,deprel='nommod',dbtable='ru_conll')
Ejemplo n.º 10
0
def infcomp(dbcon=False):
    """Muokkaan kontrastiivista analyysikerrosta varten SN-analyysiä siten, että
    kaikki infinitiivit, jotka eivät ole lauseen pääsanan asemassa, 
    luokitellaan infcomp-kategoriaan
    (mukaanlukien verbillä ilmaistavat subjektit)

    Kuten nesessiivilauseiden osalta, tukeudun myös apuverbien kohdalla SN-analyysin mukaiseen malliin ja
    määrittelen kontrastiivisessa analyysikerroksessa pääsanaksi apuverbin ja dependentiksi pääverbin. Tästä
    seuraa, että apuverbin dependenssityyppi on joko ROOT tai jokin sivu- tai rinnasteisen lauseen pääsanan
    kategoria, jolloin pääverbille on erikseen määriteltävä oma kategoriansa – tällaiseksi soveltuu edellä
    SN-aineiston infinitiivisubjektien yhteydessä määritelty infcomp-luokka. TDT-analyysin kannalta tämä
    tarkottaa sitä, että kieltoverbien kantama informaatio lauseen kielteisyydestä katoaa kontrastiivisesta
    analyysikerroksesta. Myös TDT:n aux-, auxpass- ja SN:n analit-kategoriat poistuvat
    """

    featset = Featset()
    LogNewDeprel('Create the infcomp category in SN')
    thisSearch = makeSearch(database=dbcon.dbname,dbtable='ru_conll',  ConditionColumns={'deprel':('предик','1-компл','2-компл','аналит'),'pos':('V',),'feat':featset.inf})
    simpleupdate(thisSearch, dbcon, deprel='infcomp',dbtable='ru_conll')
Ejemplo n.º 11
0
def obj(dbcon=False):
    """" Toiseksi SN-analysoidun aineiston jäsennystä on tarkennettava niin, että
    siihenkin luodaan oma kategoriansa objekteille. 
    
    Teknisesti tämä ei ole erityisen
    vaikeaa, sillä objekteiksi voitaneen melko aukottomasti määrittää
    SN-analysoidusta aineistosta ne kompl1-luokkaan sijoitetut sanat, jotka a) ovat
    verbistä riippuvia nomineja ja b) on morfologisessa analyysissa luokiteltu joko
    akkusatiivisijaisiksi feminiineiksi/neutreiksi tai genetiivisijaisiksi
    elollisiksi maskuliineiksi/monikkomuodoiksi. 
    
    Luotavaan objektikategoriaan
    liitetään myös alkuperäisen SN-analyysin *dliteln*-luokka, joka sisältää
    akkusatiivissa käytettyjä keston ajanilmauksia.  Tämä ratkaisu on yhtenevä sen
    kanssa, miten TDT-analyysi käsittelee objektinsijaisia määrän adverbiaaleja
    (tarkemmin ks. ).
    """

    featset = Featset()
    LogNewDeprel('Create the category of object in the SN data')
    thisSearch = makeSearch(database=dbcon.dbname, dbtable='ru_conll', ConditionColumns={'feat':featset.NounAcc,'deprel':('1-компл','2-компл','длительн')}, headcond = {'column':'pos','values':('V',)})
    simpleupdate(thisSearch, dbcon, deprel='obj',dbtable='ru_conll')