Changeset 2313


Ignore:
Timestamp:
2001-04-14T12:37:34+12:00 (23 years ago)
Author:
daven
Message:

added method for sorting the term frequency
Map so that we display them in descending order,
most frequent first. I suppose this could be a preference

  • but someone else can do that :-)
Location:
trunk/java-client/org/nzdl/gsdl/service
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/java-client/org/nzdl/gsdl/service/NzdlResponse.java

    r2232 r2313  
    2222
    2323import java.util.HashMap;
     24import java.util.TreeMap;
    2425import java.util.HashSet;
    2526import java.util.Map;
     
    4950  private corbaFilterResponse m_response = null;
    5051  private NzdlResultSet m_resultSet = null;
    51   private Map m_frequencies = null;
     52  private TreeMap m_frequencies = null;
    5253  private List m_queryTerms = null;
    5354
     
    173174  private void parseTermsInfo( corbaTermInfo [] _termsInfo ) {
    174175    String term = null;
    175     m_frequencies = new HashMap();
     176    m_frequencies = new TreeMap();
    176177    m_queryTerms = new ArrayList();
    177178    for (int i=0; i<_termsInfo.length; i++) {
  • trunk/java-client/org/nzdl/gsdl/service/NzdlResultSet.java

    r2283 r2313  
    2525import java.util.List;
    2626import java.util.ArrayList;
     27import java.util.Map.*;
    2728import java.util.HashMap;
     29import java.util.TreeMap;
     30import java.util.SortedMap;
     31import java.util.TreeSet;
    2832import java.util.HashSet;
    2933import java.util.ListIterator;
    3034import java.util.Iterator;
     35import java.util.Comparator;
    3136
    3237/**
     
    4853
    4954  /* The key is the query term, the value its frequency */
    50   private Map m_frequencies = null;
     55  private TreeMap m_frequencies = null;
    5156
    5257  /*
     
    6772
    6873  public String getTermFrequencyString() {
    69     StringBuffer buf = new StringBuffer();
    70     Iterator iter = m_frequencies.keySet().iterator();
    71     while(iter.hasNext()) {
    72       Object next = iter.next();
    73       buf.append(' ').append(next).append(':').
    74     append(m_frequencies.get(next));
    75     }
    76     return buf.toString();
    77   }
     74      return constructTermFrequencyString(null);
     75  }
     76
     77    /*
     78     * display term frequency results in descending frequency order
     79     */
     80
     81    public String getOrderedTermFrequencyString() {
     82     class DescendingOrder implements Comparator {
     83        public int compare(Object o1, Object o2) {
     84        return -((Comparable)o1).compareTo(o2);
     85        }
     86    }
     87    return constructTermFrequencyString(new DescendingOrder());
     88    }
     89
     90
     91    private String constructTermFrequencyString(Comparator comparator) {
     92
     93    TreeMap freqOrder = new TreeMap(comparator);
     94    Iterator iter = m_frequencies.entrySet().iterator();
     95    while (iter.hasNext()) {
     96        Map.Entry mapEntry = (Map.Entry) iter.next();
     97        freqOrder.put( mapEntry.getValue(), mapEntry.getKey());
     98    }
     99
     100    StringBuffer buf = new StringBuffer();
     101    iter = freqOrder.keySet().iterator();
     102    while(iter.hasNext()) {
     103        Object next = iter.next();
     104        System.err.println("" + next);
     105        buf.append(freqOrder.get(next)).append(':').append(next).append(' ').append(' ');
     106    }
     107    return buf.toString();
     108    }
    78109
    79110  /**
     
    121152   * @param freqs a map of the term frequencies. The map key is the query term.
    122153   */
    123   public void setTermFrequencies( Map _freqs ) {
     154  public void setTermFrequencies( TreeMap _freqs ) {
    124155    m_frequencies = _freqs;
    125156  }
Note: See TracChangeset for help on using the changeset viewer.