I have the following Xquery
code:
for $w in $words
let $freq := (count($corpus[. eq $w]) div count($content2[text() eq $w]))
order by $freq descending
return <tr><td>{$w}</td><td>{$freq}</td></tr>
$words
is some distinct words that appears (may appear multiple times) in $corpus
. $content2
is some another bag of words. Variables and division is not that important.
This xquery
lists some frequency calculation of words, ordered.
What I want to do is limit the results by 10. I tried to use positional values but as it gives me the position of the word in the word list, it didnt work out..
Any help?
The number of results can e.g. be limited as follows:
(for $w in $words
let $freq := (count($corpus[. eq $w]) div count($content2[text() eq $w]))
order by $freq descending
return <tr><td>{$w}</td><td>{$freq}</td></tr>
)[position() = 1 to 10]
Use subsequence($sequence, $start, $records)
to return a subset of results, starting at record $start
(be aware XQuery counts from 1) returning records
items. Have a look at "Limiting Result Sets" XQuery Wikibooks Page. An example of how to apply the function copied from this page:
let $sorted-people :=
for $person in collection($collection)/person
order by $person/last-name/text()
return $person
for $person at $count in subsequence($sorted-people, $start, $records)
return
<li>{ $person/last-name/text() }</li>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With