Open JeltevanBoheemen opened 3 years ago
Het DACT cookbook geeft een query om bigrammen op te sporen.
To find occurrences of a bigram, e.g. “wel niet”, use:
//node[@lemma="wel" and %e%=//node[@lemma="niet"]/%b%]
(in deze query kunnen we de macros %e% en %b% vervangen door @end en @begin, resp.)
Dit werkt in PaQu maar niet in GrETEL (versie 3, versie 4). De reden is dat in PaQu iedere query losgelaten wordt op een syntactische structuur voor een individuele zin, terwijl in GrETEL de query wordt toegepast op een hele treebank. (althans, dat is de enige manier waarop ik de resultaten hieronder kan begrijpen).
GrETEL zoekt namelijk naar knopen met lemma=”wel” waarvan de waarde van end gelijk is aan de waarde van begin van een knoop met lemma=’niet’ in de hele treebank . Ik heb een testtreebank gemaakt met drie zinnen
hij doet het wel hij doet het nog niet Hij doet het nog wel niet
En de query toegepast op deze treebank geeft inderdaad een correct resultaat in PaQu:
maar in GrETEL werkt het anders. Dezelfde query (zonder number(), want dat is niet nodig hier) https://gretel.hum.uu.nl/ng/xpath-search?currentStep=2&xpath=%2F%2Fnode%5B@lemma%3D%22wel%22%20and%20%0D%0A%20%20%20%20%20%20%20@end%3D%2F%2Fnode%5B@lemma%3D%22niet%22%5D%2F@begin%5D%0D%0A&selectedTreebanks=%7B%22gretel%22:%7B%22welniet%22:%5B%22WELNIET_ID_WELNIET%22%5D%7D%7D&retrieveContext=0
toegepast op dezelfde treebank vindt twee resultaten, nl. in de derde zin (terecht) maar ook ‘wel’ in de eerste zin omdat in de tweede zin het woord begin van ‘niet’ gelijk is aan end van ‘wel’ in de eerste zin
Ik was zelf op zoek naar bigrammen me + noun:
//node[@lemma="me" and %e%=//node[@pt="n"]/%b%]
In PaQu gaat dat goed, bijv toegepast op CHILDES:
maar in GrETEL (toegepast op VanKampen) levert dat veel onterechte resultaten: https://gretel.hum.uu.nl/ng/xpath-search?currentStep=2&xpath=%2F%2Fnode%5B@lemma%3D%22me%22%20and%20%0D%0A%20%20%20%20%20%20%20@end%3D%2F%2Fnode%5B@pt%3D%22n%22%5D%2F@begin%5D%0D%0A&selectedTreebanks=%7B%22gretel%22:%7B%22VanKampen%22:%5B%22VANKAMPEN_ID_VANKAMPEN%22,%22VANKAMPEN_ID_VANKAMPEN_LAURA%22,%22VANKAMPEN_ID_VANKAMPEN_SARAH%22%5D%7D%7D&retrieveContext=0
Er zijn misschien wel verbeteringen mogelijk, bijv.
//node[(some $x in .//node[@lemma="wel"], $y in .//node[@lemma="niet"] satisfies ($x/@end = $y/@begin) )]
maar dergelijke queries worden ueberhaupt niet ondersteund in GrETEL (wel in PaQu)
Voor bigrammen is het probleem niet zo acuut, want ik zie niet hoe je ooit een match kan krijgen met de twee woorden van de bigram. De match is altijd met een van die woorden of met een overkoepelende node. Dus waarschijnlijk is het verstandiger dit helemaal niet te proberen met Xpath. Maar misschien moeten we wel overwegen GrETEL zo aan te passen dat ie op dezelfde manier werkt als PaQu, d.w.z. iedere query wordt toegepast op de structuur van een individuele zin, niet op de hele treebank. Ik heb geen idee hoe dat het best gerealiseerd wordt, met name wat het betekent voor de indexen (om het zoeken niet al te langzaam te laten zijn)
Gretel behaves differently from PaQu when performing bigram search. This is presumably because the query is evaluated against the entire treebank, rather than against each sentence tree.