importjava.util.*;classTabelaFrequencias2{/** * Note que várias palavras podem ter a mesma freqüência. Portanto, * não podemos usar um Map < Integer, String > e sim um * Map < Integer, Set < String > >. */publicstaticvoidmain(String[]args){Stringtexto="Considerai os lírios, como eles crescem; não trabalham, nem "+" fiam; e digo-vos que nem ainda Salomão, em toda a sua glória, se vestiu "+" como um deles. E, se Deus assim veste a erva que hoje está no campo e "+" amanhã é lançada no forno, quanto mais a vós, homens de pouca fé? Não "+" pergunteis, pois, que haveis de comer, ou que haveis de beber, e não "+" andeis inquietos.";String[]palavras=texto.split("[ ,;.:?-]+");Map<String,Integer>tabFreq=newTreeMap<String,Integer>();for(inti=0;i<palavras.length;++i){Stringpalavra=palavras[i];Integerfreq=tabFreq.get(palavra);if(freq==null){freq=0;}tabFreq.put(palavra,freq+1);}System.out.println("Ordenando (ordem decrescente) por freqüências");Map<Integer,Set<String>>tabInv=newTreeMap<Integer,Set<String>>(newComparator<Integer>(){publicintcompare(Integeri1,Integeri2){return-i1.compareTo(i2);}});// Invertendo a tabela for(Map.Entry<String,Integer>tab:tabFreq.entrySet()){Integerfreq=tab.getValue();Stringpalavra=tab.getKey();if(!tabInv.containsKey(freq)){tabInv.put(freq,newTreeSet<String>());}tabInv.get(freq).add(palavra);}for(Integerfreq:tabInv.keySet()){System.out.println("Palavras com a freqüência "+freq);System.out.println(" "+tabInv.get(freq));}}}
T
thingol
O código acima supõe que “Não” != “não”; se a sua análise requer que “Não” == “não”, então você deve adaptar um pouco (talvez converter todas as palavras para minúsculas).
N
nnewtonn
Valeu pelo código…acho q vai ser muito útil.
Aproveitando, alguem conhece outra forma de fazer análise de frequencia?