Uploaded image for project: 'cTAKES'
  1. cTAKES
  2. CTAKES-310

Dictionary lookup permutations sort issue

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 3.2.0
    • 3.2.1
    • None

    Description

      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--; }

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              chenpei Pei Chen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: