[ 
https://issues.apache.org/jira/browse/LUCENE-3714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13190539#comment-13190539
 ] 

Dawid Weiss commented on LUCENE-3714:
-------------------------------------

I thought you had a solution that collects top-N, but your patch selects one 
(best) matching solution only. I don't know how you planned to go around 
selecting top-N, but in my understanding (at that moment) top-N selection is 
not going to work via recursive scan because an output at the given level 
doesn't tell you much about which arcs to follow. 

I can see how this can be solved by picking the arc/direction with the "next 
smallest/largest" output among all arcs traversed so far but this will be more 
complex and I cannot provide any bounds on how large the queue can be or what 
the   worst case lookup then is. I do have a feeling a degenerate example can 
be devised, but then I also have a feeling these are uncommon in practice.

Sorting arcs by score doesn't help if you use the pq -- you need to add all of 
them to the pq and then pick the smallest path. In a way it is like what you 
did, but the pq is maintaining fast access to the next-smaller-cost path. 
Another feeling is that the PQ can be bound to a maximum size of N? Every arc 
leads to at least one leaf so while traversing you'd drop those arcs that 
definitely would have fallen out of the first N smallest/largest weights... 
Yes, this could work. I'd still try to devise a degenerate example to see what 
the cost of maintaining the PQ can be.
                
> add suggester that uses shortest path/wFST instead of buckets
> -------------------------------------------------------------
>
>                 Key: LUCENE-3714
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3714
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: modules/spellchecker
>            Reporter: Robert Muir
>         Attachments: LUCENE-3714.patch, out.png
>
>
> Currently the FST suggester (really an FSA) quantizes weights into buckets 
> (e.g. single byte) and puts them in front of the word.
> This makes it fast, but you lose granularity in your suggestions.
> Lately the question was raised, if you build lucene's FST with 
> positiveintoutputs, does it behave the same as a tropical semiring wFST?
> In other words, after completing the word, we instead traverse min(output) at 
> each node to find the 'shortest path' to the 
> best suggestion (with the highest score).
> This means we wouldnt need to quantize weights at all and it might make some 
> operations (e.g. adding fuzzy matching etc) a lot easier.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to