Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bigram search in treebanks #242

Open
JeltevanBoheemen opened this issue Jul 1, 2021 · 1 comment
Open

Bigram search in treebanks #242

JeltevanBoheemen opened this issue Jul 1, 2021 · 1 comment

Comments

@JeltevanBoheemen
Copy link
Contributor

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.

@JeltevanBoheemen
Copy link
Contributor Author

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:

https://paqu.let.rug.nl:8068/xpath?db=welnieta&xpath=%2F%2Fnode%5B%40lemma%3D%22wel%22+and+%0D%0A+++++++%25e%25%3D%2F%2Fnode%5B%40lemma%3D%22niet%22%5D%2F%25b%25%5D%0D%0A&mt=std&xn=20

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:

https://paqu.let.rug.nl:8068/xpath?db=childesdutch&xpath=%2F%2Fnode%5B%40lemma%3D%22me%22+and+%0D%0A+++++++%25e%25%3D%2F%2Fnode%5B%40pt%3D%22n%22%5D%2F%25b%25%5D&mt=std&xn=20

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)
)]

https://paqu.let.rug.nl:8068/xpath?db=welnieta&xpath=%2F%2Fnode%5B%28some+%24x+in+.%2F%2Fnode%5B%40lemma%3D%22wel%22%5D%2C++%24y+in+.%2F%2Fnode%5B%40lemma%3D%22niet%22%5D%0D%0A++++++++satisfies+%28%24x%2F%40end+%3D+%24y%2F%40begin%29%0D%0A+++++++%29%5D&mt=std&xn=20

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant