Hi Kim, Pei, I don't think that I changed anything to which Kim is referring, just a couple of other things that happen to be in the same segment. From the attached it looks like Kim's change is to copy a list and sort the copy, while mine were moving the sort from an inner to outer loop. At any rate, whatever I did I did a year and a half ago and I'm concentrating on the new lookup these days.
Sean ________________________________________ From: Pei Chen [chen...@apache.org] Sent: Friday, September 05, 2014 12:17 PM To: dev@ctakes.apache.org Subject: Re: Permutations Hi Kim, Thanks for pointing that out. https://issues.apache.org/jira/browse/CTAKES-310 has been opened for this. If you commit the changes, we can see if we can include in the 3.2.1 patch release. I was looking at the changelist for this file, and it may look like some of these optimizations may have been intentional by Sean so he may have some more insight in this bit of the logic. On Thu, Sep 4, 2014 at 6:22 PM, Kim Ebert <kim.eb...@perfectsearchcorp.com> wrote: > Hi All, > > I was reviewing the use of permutations, and I noticed that we sorted > the permutation list before creating the string to do the concept lookup > with. It also appears that we were sorting the object that was stored in > the parent list. > > I've made a few changes, and now it appears I can discover some > additional concepts based upon the permutations. > > Let me know what you think of the following changes. > > Thanks, > > Kim > > === modified file > 'ctakes-dictionary-lookup/src/main/java/org/apache/ctakes/dictionary/lookup/algorithms/FirstTokenPermutationImpl.java' > --- > ctakes-dictionary-lookup/src/main/java/org/apache/ctakes/dictionary/lookup/algorithms/FirstTokenPermutationImpl.java > 2014-07-31 22:00:48 +0000 > +++ > ctakes-dictionary-lookup/src/main/java/org/apache/ctakes/dictionary/lookup/algorithms/FirstTokenPermutationImpl.java > 2014-09-04 18:39:59 +0000 > @@ -210,11 +210,12 @@ > final List<List<Integer>> permutationList = iv_permCacheMap.get( > permutationIndex ); > for ( List<Integer> permutations : permutationList ) { > // Moved sort and offset calculation from inner (per > MetaDataHit) iteration 2-21-2013 spf > - Collections.sort( permutations ); > + List<Integer> permutationsSorted = (List) > ((ArrayList)permutations).clone(); > + Collections.sort( permutationsSorted ); > int startOffset = firstWordStartOffset; > int endOffset = firstWordEndOffset; > - if ( !permutations.isEmpty() ) { > - int firstIdx = permutations.get( 0 ); > + if ( !permutationsSorted.isEmpty() ) { > + int firstIdx = permutationsSorted.get( 0 ); > if ( firstIdx <= firstTokenIndex ) { > firstIdx--; > } > @@ -222,7 +223,7 @@ > if ( firstToken.getStartOffset() < firstWordStartOffset ) { > startOffset = firstToken.getStartOffset(); > } > - int lastIdx = permutations.get( permutations.size() - 1 ); > + int lastIdx = permutationsSorted.get( > permutationsSorted.size() - 1 ); > if ( lastIdx <= firstTokenIndex ) { > lastIdx--; > } > > > -- > Kim Ebert > 1.801.669.7342 > Perfect Search Corp > http://www.perfectsearchcorp.com/ >