1 juli 2020

  1. Video-overleg
    • camera en microfoon voor pc
  2. AlpinoGraph
    • voorlopig alleen met globale corpora
    • documentatie
      • vele TODOs
      • definitie extra attributen updaten
    • link naar help-pagina’s rechtsboven op de pagina zetten
    • lokale help-pagina, bijv. met info over geïnstalleerde corpora
    • site met vrije corpora, zoals alpinotreebank.dact, alpinotreebank.zip
      • verwijzing in helptekst in AlpinoGraph in Docker
    • menu met voorbeelden aanpassen
      1. woordreeksen en/of woordcombinaties
      2. woordpaar-relaties
      3. Alpino-relaties
      4. UD-relaties
      5. typische graafrelaties, zoals een node met meerdere parents
      6. heterogene relaties
    • toevoegen aan spod-voorbeelden: reeksvormers
      • zie beneden
      • positie van head gebruiken, zo mogelijk
    • snellere file-server
      • alle globale corpora uit PaQu invoeren, behalve Lassy Groot: NL-Wiki
      • huidig gebruik: 1,6T, 74%
    • zoeken naar woorden via verwante lemma’s
  3. Zowel in Alpino als in AlpinoGraph
    • onderscheid herkennen van constructies zoals:
      1. het rode huis en het groene
      2. het rode en het groene huis
  4. Werklog

Reeksvormers

Per 24 juni

Dit is een aardig begin. Er moeten minimaal twee crd’s en twee cnj’s zijn, en er moet een crd vooraan staan. Die crd vooraan is gewoonlijk de eerste node die genummerd wordt met een id onder de conj.

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(:nw)
match (:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(:nw)
where n1.id = n.id + 1
return n

Maar je krijgt vrij veel fouten. Met extra tests filter je die er uit:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n

Die tests met begin zijn nodig omdat de ids niet altijd oplopend zijn genummerd. In SPOD in PaQu gaat dat ook fout. Daar wordt deze zin ook niet gevonden.

Ook met tests op begin erbij mis je er nog een paar die wel goed zijn, zoals deze:

Hiermee kun je zien welke items er door de toegevoegde tests worden uitgefilterd:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(:nw)
match (:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(:nw)
where n1.id = n.id + 1
return n.sentid, n.id

except

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n.sentid, n.id

Per 1 juli

Kijk naar beginpositie van head, als dat er is:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel*0..1{rel:'hd'}]-()<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->()-[:rel*0..1{rel:'hd'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n.sentid, n.id

Nu wordt deze wel gevonden:

… maar deze nog steeds niet:

En je krijgt een aantal valse hits, zoals:

Test de verschillen:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel*0..1{rel:'hd'}]-()<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->()-[:rel*0..1{rel:'hd'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n.sentid, n.id

except

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n.sentid, n.id
alpinograph