Subject: Re: [xsl] Efficient dictionary lookup From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 22 Mar 2012 21:44:37 +0000 |
On 22/03/2012 21:39, Martin Holmes wrote: > HI all, > > As part of a small pilot project, I'm implementing a set of spelling > normalization rules applied through XSLT 2.0 using Saxon 9. One > operation that happens extremely frequently is a dictionary lookup; > basically I'm checking a word form to see if it appears in a > spell-checker dictionary. > > The dictionary currently consists of a whitespace-separated text string > (although it could be formatted any way I choose), and I've been using > fn:matches() and fn:contains() to check whether or not the form appears > in the dictionary: > > <xsl:function name="f:wordExists" as="xs:boolean"> > <xsl:param name="inString" as="xs:string"/> > <xsl:value-of select="contains($dictModern, concat(' ', > lower-case($inString), ' '))"/> > </xsl:function> > > <xsl:function name="f:wordExists" as="xs:boolean"> > <xsl:param name="inString" as="xs:string"/> > <xsl:value-of select="matches($dictModern, concat('\s', $inString), > '\s', 'i')"/> > </xsl:function> > > Both options appear to be very costly in terms of time, and I'm > wondering what the most efficient way to do this might be. Is there a > faster way to do text lookups like this? > > Ultimately I guess I'll implement this as an external Java process, but > for the moment I'm working with XSLT, and I'd like to get some speed > improvement if I can. > > All help appreciated, > Martin >
If your dictionary is in a file say dict.xml <words> <word>one</word> <word>hello</word> </words>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Efficient dictionary lookup, Martin Holmes | Thread | [xsl] Re: Efficient dictionary look, Martin Holmes |
[xsl] Efficient dictionary lookup, Martin Holmes | Date | [xsl] loop without switching contex, Fred Christian |
Month |