Cześć. Jaką bibliotekę najlepiej wykorzystać do zliczania poszczególnych słów w plikach .json, czy też do sortowania kilku plików w zależności od zawartości JSON'ów? Dodam, że aplikacja pisana jest w Spring Boot.
0
2
Zliczanie słów w pliku tekstowym to są 4 linijki kodu. Java to nie JS gdzie na coś takiego robi się "bibliotekę".
0
Chodzi mi o coś, co wypisze najczęściej użyte słowa w tych plikach razem z ich ilością.
6
No i gdzie masz problem konkretnie? Zliczenie wystąpień słów w pliku:
public static Map<String, Long> countWords(String filepath) throws IOException {
return Files.lines(Paths.get(filepath))
.flatMap(line -> Stream.of(line.split("\\s+")))
.collect(Collectors.groupingBy(
Function.identity(),
Collectors.counting()
));
}
Dla danego pliku zwróci ci mapę słwo->liczba wystąpień. Jeśli chcesz z tego wybrać tylko N najbardziej licznych to np.
public static List<Map.Entry<String, Long>> getTopN(Map<String, Long> counts, int n) {
return counts.entrySet()
.stream()
.sorted(Comparator.<Map.Entry<String, Long>>comparingLong(Map.Entry::getValue).reversed())
.limit(n)
.collect(Collectors.toList());
}
Dla mapy zwróconej z pierwszej funkcji oraz wartości N zwróci ci posortowaną listę krotek (słowo, licznik).
Serio uważasz że te kilka linijek trzeba znaleźć w jakiejś bibliotece? :D
0
Przed chwilą skończyłem to pisać, choć w dużo bardziej prymitywny sposób :D Dzięki ;)